API 参考

单点登录 API

单点登录:登录路由、身份提供者和策略

HTTP 参考。 由后端契约生成。浏览以下端点或下载 OpenAPI。

此分组有 13 个操作,由 api/openapi.yaml 生成。可按路径、操作或认证筛选。每个端点都会列出其输入;展开后可查看请求模板和响应代码。模板需要您自己的值和符合架构的请求体。

用你的值替换大写占位符。对于JSON请求,请保存符合request.json模式的请求体。Cookie示例使用经过身份验证会话的本地Cookie存储。

单点登录:登录路由、身份提供者和策略

POST/api/sso/discovery

发现控制台 SSO

告知入口页面某个电子邮件地址如何登录或注册。sso、required 和 provider_name 仅由地址的域名决定,依据是已启用身份提供者连接的组织的已验证域名:当此类组织持有该域名时,sso 为 true。当该组织要求单点登录时,required 为 true,这会拒绝该域名的密码和通行密钥登录(createDashboardSession 返回 sso_required);其紧急访问管理员保留通行密钥登录。provider_name 是该连接的显示名称,仅在 sso 为 true 时出现。当现有人员持有该地址(无论是否已验证)时,account 为 true,无人持有时为 false:为 true 时页面让该人员登录,在为 false 且 sso 为 false 时提供注册(POST /api/signups)。

按客户端地址限制。

身份验证
无
请求主体
SSODiscoveryRequest
操作 ID
discoverDashboardSSO

请求主体字段

字段描述
email(必填,字符串)人员输入的地址。只读取其域名。minLength:3 maxLength:254 格式:"email"
请求模板和响应
shell · 请求模板
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/sso/discovery'

响应

状态含义正文和头部
200该域名的单点登录响应。SSODiscovery(application/json);头部:Cache-Control、RateLimit-Policy、RateLimit
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
429

稳定的 rate_limited 问题。仅在权威 Retry-After 间隔后重试。固定窗口拒绝还包括适用的 RateLimit-Policy 和 RateLimit 成员;并发和字节预算拒绝省略这些可选披露。

问题 (application/problem+json);头部:Retry-After,RateLimit-Policy,RateLimit
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
POST/api/sso/starts

开始控制台 SSO

通过持有该地址域名的组织的身份提供者发起一次单点登录,并返回提供者的地址,页面会跳转到该地址。响应设置 __Host-screenrig-sso Cookie(HttpOnly、Secure、SameSite=Strict、Path=/、10 分钟),用于将此浏览器绑定到该登录。

对 OIDC 连接请求使用带 PKCE S256、nonce 和 response_mode form_post 的授权码流程;SAML 连接收到 HTTP-Redirect AuthnRequest。

提供者通过向该连接的 /api/sso/oidc/{connection_id}/callback 或 /api/sso/saml/{connection_id}/acs 提交来响应,登录在 /api/sso/finish 结束。return_to 是登录后落到的 /dashboard/ 下的路径;缺省时落到 /dashboard/。invitation_token 是人员登录后该登录所接受的邀请。prompt none 要求提供者静默登录,当需要人员操作时,会在 /dashboard/#sso_error=interaction_required 结束;prompt login 让提供者再次认证该人员。

域名没有已启用连接的地址返回 not_found。按客户端地址限制。

身份验证
无
请求主体
SSOStartRequest
操作 ID
startDashboardSSO

请求主体字段

字段描述
email(必填,字符串)人员输入的地址。其域名决定组织的连接。minLength:3 maxLength:254 格式:"email"
return_to(可选,字符串)登录后落到的 /dashboard/ 下的路径。缺省时落到 /dashboard/;任何其他值返回 invalid_request。minLength:1 maxLength:512 模式:"^/dashboard/"
invitation_token(可选,字符串)登录在人员登录后为其接受的邀请。模式:"^[A-Za-z0-9_-]{43}$"
prompt(可选,字符串)none 要求提供者静默登录且不传递登录提示,因此 email 只用于选择域名;login 让其再次认证该人员。允许:“none”、“login”
请求模板和响应
shell · 请求模板
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/sso/starts'

响应

状态含义正文和头部
200要跳转到的身份提供者的地址,以及事务 Cookie。SSOStart(application/json);头部:Cache-Control、Set-Cookie、RateLimit-Policy、RateLimit
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
429

稳定的 rate_limited 问题。仅在权威 Retry-After 间隔后重试。固定窗口拒绝还包括适用的 RateLimit-Policy 和 RateLimit 成员;并发和字节预算拒绝省略这些可选披露。

问题 (application/problem+json);头部:Retry-After,RateLimit-Policy,RateLimit
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
POST/api/sso/oidc/{connection_id}/callback

接收控制台 SSO OIDC 回调

某个连接的 OIDC 重定向 URI。身份提供者从另一个站点向此处提交(response_mode form_post),因此不会带上控制台 Cookie。该路由不会让任何人登录:它返回一个页面,该页面从控制台源向 /api/sso/finish 提交相同的成员和连接 id,事务 Cookie 在该源上送达。

响应只会完成由此连接发起的登录;任何其他响应都会在 /dashboard/#sso_error=bad_state 结束。当提供者的发现文档设置了 authorization_response_iss_parameter_supported 时,不带 iss 的响应(RFC 9207)会在 /dashboard/#sso_error=verification_failed 结束。

该页面运行一个由 nonce 保护的内联脚本,并带有一个 noscript 按钮;其 Content-Security-Policy 为严格模式,Cache-Control 为 no-store,Referrer-Policy 为 no-referrer。没有任何连接持有的 id 返回 not_found。

身份验证
无
请求主体
object
操作 ID
receiveDashboardSSOOIDCCallback

参数

名称发送必需?描述
connection_id路径必填

请求主体字段

字段描述
state(必填,字符串)maxLength:512
code(可选,字符串)maxLength:8192
error(可选,字符串)maxLength:200
error_description(可选,字符串)maxLength: 2048
iss(可选,字符串)maxLength: 2048
请求模板和响应
shell · 请求模板
curl --request POST --header 'Content-Type: application/x-www-form-urlencoded' --data-binary '@request.bin' 'https://screenrig.ai/api/sso/oidc/CONNECTION_ID/callback'

响应

状态含义正文和头部
200将提供者的响应提交到 /api/sso/finish 的页面。字符串(text/html);头部:Cache-Control、Referrer-Policy、Content-Security-Policy
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
GET/api/sso/saml/{connection_id}

获取控制台 SSO SAML 元数据

某个连接的 SAML 服务提供者元数据。其 entityID 是此路由的地址,其断言使用者服务是 /api/sso/saml/{connection_id}/acs,使用 HTTP-POST 绑定。身份提供者管理员导入它,或从连接的 service_provider 复制相同的值。没有任何连接持有的 id 返回 not_found。

身份验证
无
请求主体
无
操作 ID
getDashboardSSOSAMLMetadata

参数

名称发送必需?描述
connection_id路径必填
请求模板和响应
shell · 请求模板
curl --request GET 'https://screenrig.ai/api/sso/saml/CONNECTION_ID'

响应

状态含义正文和头部
200服务提供者元数据文档。字符串(application/samlmetadata+xml)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
POST/api/sso/saml/{connection_id}/acs

接收控制台 SSO SAML 断言

某个连接的 SAML 断言使用者服务。身份提供者从另一个站点向此处提交,因此不会带上控制台 Cookie。该路由不会让任何人登录:它返回一个页面,该页面从控制台源将 SAMLResponse、其 RelayState 和连接 id 提交到 /api/sso/finish,事务 Cookie 在该源上送达。

响应只会完成由此连接发起的登录。该页面运行一个由 nonce 保护的内联脚本,并带有一个 noscript 按钮;其 Content-Security-Policy 为严格模式,Cache-Control 为 no-store,Referrer-Policy 为 no-referrer。没有任何连接持有的 id 返回 not_found。

身份验证
无
请求主体
object
操作 ID
receiveDashboardSSOSAMLAssertion

参数

名称发送必需?描述
connection_id路径必填

请求主体字段

字段描述
SAMLResponse(必填,字符串)maxLength:1048576
RelayState(可选,字符串)maxLength:512
请求模板和响应
shell · 请求模板
curl --request POST --header 'Content-Type: application/x-www-form-urlencoded' --data-binary '@request.bin' 'https://screenrig.ai/api/sso/saml/CONNECTION_ID/acs'

响应

状态含义正文和头部
200将提供者的响应提交到 /api/sso/finish 的页面。字符串(text/html);头部:Cache-Control、Referrer-Policy、Content-Security-Policy
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
POST/api/sso/finish

完成控制台 SSO

在控制台源上完成单点登录,__Host-screenrig-sso Cookie 在此送达。表单为 state、响应所对应的连接,以及回调页面复制的身份提供者的响应:OIDC 为 code、error、error_description 和 iss,SAML 为 SAMLResponse(state 即 RelayState)。

该路由将 state 绑定到 Cookie,拒绝为发起登录所用连接以外的其他连接而到达的响应,验证提供者的令牌或断言,应用账户接管和关联规则,检查组织的登录策略,并返回 303。

登录、续期或重新认证会创建 auth_method 为 sso 的控制台会话;该会话自本次登录起持续 24 小时,不会因使用而延长。它会接受登录所携带的邀请,设置 __Host-screenrig-dashboard Cookie,使事务 Cookie 过期,并重定向到 return_to 或 /dashboard/。

关联会将该身份添加到已登录人员的账户并保留其会话。测试会把结果记录在连接上(last_test),不会让任何人登录。每次失败同样返回 303,跳转到 /dashboard/#sso_error=<code>,绝不返回问题文档。

代码包括 no_email、email_unverified、domain_not_allowed、account_exists(该人员照常登录,并从其账户中关联)、managed_elsewhere、subject_mismatch、not_provisioned、sso_required、staff_account、expired、bad_state、interaction_required(静默续期需要人员操作)、provider_refused、provider_unavailable、verification_failed 和 deactivated(SSOErrorCode)。

身份验证
ssoTransaction
请求主体
object
操作 ID
finishDashboardSSO

请求主体字段

字段描述
connection_id(可选,字符串)maxLength:128
state(必填,字符串)maxLength:512
code(可选,字符串)maxLength:8192
error(可选,字符串)maxLength:200
error_description(可选,字符串)maxLength: 2048
iss(可选,字符串)maxLength: 2048
SAMLResponse(可选,字符串)maxLength:1048576
请求模板和响应
shell · 请求模板
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/x-www-form-urlencoded' --data-binary '@request.bin' 'https://screenrig.ai/api/sso/finish'

响应

状态含义正文和头部
303重定向到 return_to 或 /dashboard/ 并设置会话 Cookie;登录未完成时则重定向到 /dashboard/#sso_error=<code>。无正文;头部:Location、Cache-Control、Set-Cookie
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
POST/api/session/sso-starts

开始控制台会话 SSO

为已登录人员发起一次单点登录,并返回身份提供者的地址,与 POST /api/sso/starts 对某个地址所做的相同,同时设置 __Host-screenrig-sso Cookie。intent renew 会在 24 小时结束之前静默(prompt none)续期通过单点登录登录的会话;控制台在 12 小时过去后执行此操作。intent reauth 让提供者再次认证该人员(prompt login),从而使会话获得 sso 证明所需的近期登录。intent link 将人员在提供者处的身份关联到其现有账户。renew 和 reauth 需要通过单点登录登录的会话,link 需要在该人员已验证域名上存在已启用的连接;否则返回 resource_conflict。return_to 是 /dashboard/ 下的路径。

身份验证
dashboardSession
请求主体
SessionSSOStartRequest
操作 ID
startDashboardSessionSSO

请求主体字段

字段描述
intent(必填,字符串)

renew:静默续期单点登录会话。reauth:再次认证该人员,用于 sso 证明。link:将人员在提供者处的身份关联到其账户。允许:“renew”、“reauth”、“link”

return_to(可选,字符串)要返回的 /dashboard/ 下的路径。缺省时返回 /dashboard/。minLength:1 maxLength:512 模式:"^/dashboard/"
请求模板和响应
shell · 请求模板
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/session/sso-starts'

响应

状态含义正文和头部
200要跳转到的身份提供者的地址,以及事务 Cookie。SSOStart(application/json);头部:Cache-Control、Set-Cookie
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
409

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
GET/api/organizations/{org_id}/identity-provider

控制台组织获取身份提供者

指定管理员读取组织的单点登录连接:其协议和提供者、要在身份提供者处输入的服务提供者值(OIDC 重定向 URI、SAML 实体 ID、断言使用者服务和元数据地址)、其登录策略以及最近一次测试的结果。

客户端密钥绝不返回;client_secret_set 说明是否已存储密钥。当组织持有已验证域名,且通过连接的当前身份(其 issuer、租户、实体 ID 和 kind)完成了一次测试或真实登录后,ready_to_require 为 true;仅当其为 true 时才接受 Require SSO。ETag 携带修订版本。

没有连接的组织返回 not_found。其他人会像在其他组织管理员路由上一样被拒绝。仅限人员;智能体和持有者凭证无路由。

身份验证
dashboardSession
请求主体
无
操作 ID
dashboardOrganizationsGetIdentityProvider

参数

名称发送必需?描述
org_id路径必填
请求模板和响应
shell · 请求模板
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/identity-provider'

响应

状态含义正文和头部
200组织的连接。IdentityProvider(application/json);头部:Cache-Control、ETag
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
403

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
PUT/api/organizations/{org_id}/identity-provider

控制台组织设置身份提供者

指定管理员创建组织的连接或更改该连接;一个组织只有一个连接。

If-Match 携带来自 GET 的连接修订版本,组织没有连接时为 0,且为必填;过期的值返回 revision_conflict 及 current_revision。201 表示创建,200 表示更改。proof 为必填:绑定到类型为 identity_provider_change、以组织 id 作为 subject_id 的重新认证的新的通行密钥或密码证明,或来自 10 分钟内通过单点登录登录的会话的 {type: sso}(否则返回 reauthentication_required)。

预设为 entra 的 OIDC 接受 tenant_id 并据此构建 issuer;预设为 generic 则接受 issuer。省略 oidc.client_secret 会保留已存储的密钥。

对于 SAML,会读取 metadata_xml 以获得身份提供者的实体 ID、登录地址和签名证书,idp_entity_id、idp_sso_url 和 certificates_pem 则直接给出这些值;certificates_pem 会替换已存储的列表,该列表最多容纳 4 个,以便轮换期间新证书可与旧证书重叠。

Require SSO 生效期间,更改身份(issuer、租户、实体 ID 或 kind)返回 resource_conflict,证书和客户端密钥的轮换则被允许;在其生效之外,更改身份会使 ready_to_require 变为 false,直到测试或登录成功。返回该连接及其 ETag。仅限人员;智能体和持有者凭证无路由。

创建第一个连接(If-Match 0)属于单点登录,Enterprise 计划包含该功能;计划不含该功能的组织会被拒绝并返回 feature_not_in_plan(402)。

更改已有的连接(例如轮换证书或客户端密钥,或刷新元数据)、读取、测试和移除连接在每个计划中都开放,并且已有的连接会继续让人员登录。

身份验证
dashboardSession
请求主体
IdentityProviderWrite
操作 ID
dashboardOrganizationsSetIdentityProvider

参数

名称发送必需?描述
org_id路径必填
If-Matchheader必填来自 GET 的连接修订版本,可带引号,创建时为 0。

请求主体字段

字段描述
kind(必填,字符串)允许:“oidc”、“saml”
preset(必填,字符串)允许:“entra”、“generic”
名称(必填,字符串)minLength:1 maxLength:80
jit(可选,布尔值)在首次登录时,若无人持有该地址,则创建一个人员。缺省时保留已存储的值,新连接取 true。
oidc(可选,IdentityProviderOIDCWrite)
saml(可选,IdentityProviderSAMLWrite)
proof(必填,DashboardProof)
请求模板和响应
shell · 请求模板
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/identity-provider'

响应

状态含义正文和头部
200更改后的连接。IdentityProvider(application/json);头部:Cache-Control、ETag
201新的连接。IdentityProvider(application/json);头部:Cache-Control、ETag
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
402feature_not_in_plan — 单点登录属于 Enterprise 计划;该问题指明功能、账户所在的计划和 required_plan。问题 (application/problem+json)
403

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
409

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
412revision_conflict — If-Match 已过期;错误的 current_revision 包含当前版本。问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
删除/api/organizations/{org_id}/identity-provider

控制台组织移除身份提供者

指定管理员在提供新的证明后移除组织的连接(请求体携带 proof,与 PUT 相同)。Require SSO 生效期间(包括已计划移除但尚未执行时)返回 resource_conflict,组织没有连接时返回 not_found。仅限人员;智能体和持有者凭证无路由。

身份验证
dashboardSession
请求主体
控制台播放证明请求
操作 ID
dashboardOrganizationsRemoveIdentityProvider

参数

名称发送必需?描述
org_id路径必填

请求主体字段

字段描述
proof(必填,DashboardProof)
请求模板和响应
shell · 请求模板
curl --request DELETE --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/identity-provider'

响应

状态含义正文和头部
204连接已移除。无正文
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
403

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
409

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
POST/api/organizations/{org_id}/identity-provider/tests

控制台组织测试身份提供者

指定管理员通过组织的连接发起测试登录,以便在强制使用之前证明其可用。它返回身份提供者的地址供页面跳转,并设置 __Host-screenrig-sso Cookie。

提供者的响应在 /api/sso/finish 结束,它会把结果记录在连接上(last_test;成功后 ready_to_require 才会变为 true),并让浏览器返回控制台。测试不会让任何人登录。没有连接的组织返回 not_found。仅限人员;智能体和持有者凭证无路由。

身份验证
dashboardSession
请求主体
无
操作 ID
dashboardOrganizationsTestIdentityProvider

参数

名称发送必需?描述
org_id路径必填
请求模板和响应
shell · 请求模板
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/identity-provider/tests'

响应

状态含义正文和头部
200要跳转到的身份提供者的地址,以及事务 Cookie。SSOTestStart(application/json);头部:Cache-Control、Set-Cookie
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
403

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
PUT/api/organizations/{org_id}/sso-policy

控制台组织设置 SSO 策略

指定管理员开启或关闭 Require SSO,并指定应急管理员。required true 会拒绝组织已验证域名下的密码和通行密钥登录(sso_required),并且需要已验证域名以及连接上的 ready_to_require,否则返回 resource_conflict;它会递增 policy_revision。required false 不会立即解除该要求:它会安排在请求后 72 小时移除(enforcement_ends_at),并向每位管理员发送电子邮件,DELETE .../sso-policy/removal 可取消该移除。break_glass_user_ids 最多指定 2 名持有通行密钥的指定管理员,否则返回 invalid_request;在要求使用 SSO 期间,他们保留通行密钥登录,每次此类登录都会被审计。

If-Match 携带 policy_revision 且为必填;过期的值返回 revision_conflict 及 current_revision。proof 为必填:绑定到类型为 sso_policy_change、以组织 id 作为 subject_id 的重新认证的新的通行密钥或密码证明,或来自 10 分钟内通过单点登录登录的会话的 {type: sso}。

返回该策略及其 ETag。仅限人员;智能体和持有者凭证无路由。设置 required true 属于单点登录,Enterprise 计划包含该功能;计划不含该功能的组织会被拒绝并返回 feature_not_in_plan(402)。required false 始终被接受,已开启的 Require SSO 在关闭之前保持强制执行。

身份验证
dashboardSession
请求主体
SSOPolicyWrite
操作 ID
dashboardOrganizationsSetSSOPolicy

参数

名称发送必需?描述
org_id路径必填
If-Matchheader必填来自 GET identity-provider 的 policy_revision,可带引号。

请求主体字段

字段描述
required(必填,布尔值)true 要求使用单点登录。false 会安排在请求后 72 小时移除,并向每位管理员发送电子邮件。
break_glass_user_ids(必填,数组)最多 2 名持有通行密钥的指定管理员。该列表会替换已存储的列表。
proof(必填,DashboardProof)
请求模板和响应
shell · 请求模板
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/sso-policy'

响应

状态含义正文和头部
200当前生效的策略。SSOPolicy(application/json);头部:Cache-Control、ETag
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
402feature_not_in_plan — 单点登录属于 Enterprise 计划;该问题指明功能、账户所在的计划和 required_plan。问题 (application/problem+json)
403

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
409

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
412revision_conflict — If-Match 已过期;错误的 current_revision 包含当前版本。问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
删除/api/organizations/{org_id}/sso-policy/removal

控制台组织取消 SSO 移除

任何指定管理员都可取消 Require SSO 的已计划移除,使其保持生效。没有已计划的移除时不发生任何变化。返回该策略。仅限人员;智能体和持有者凭证无路由。

身份验证
dashboardSession
请求主体
无
操作 ID
dashboardOrganizationsCancelSSORemoval

参数

名称发送必需?描述
org_id路径必填
请求模板和响应
shell · 请求模板
curl --request DELETE --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/sso-policy/removal'

响应

状态含义正文和头部
200当前生效的策略。SSOPolicy(application/json);头部:Cache-Control、ETag
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
403

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
404

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
默认

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)