SAI 账号接入¶
应用可以通过 OpenID Connect(OIDC)接入 SAI 账号,由 SAI 完成登录和用户认证。应用负责自己的账号关系、权限和业务数据。
第三方应用须先完成登记和联调,再启用接入。公开文档不提供通用客户端凭据,也不开放匿名客户端注册。
从这里开始¶
- 申请接入,提交应用信息、准确的回调地址和所需资料范围。
- 实现登录,使用成熟 OIDC 库完成授权码与 PKCE 流程。
- 读取用户资料,按实际授权的 scope 解析 UserInfo。
- 处理续期和退出,验证撤销、故障恢复和原页面返回。
服务地址¶
| 项目 | 地址 |
|---|---|
| Issuer | https://id.open-sai.com/realms/sai |
| Discovery | https://id.open-sai.com/realms/sai/.well-known/openid-configuration |
| SAI 账号管理 | https://id.open-sai.com/realms/sai/account/ |
| SAI 文档 | https://www.open-sai.com/docs/ |
| 账号接入文档 | https://www.open-sai.com/docs/identity/ |
| 接口描述 | OpenAPI 3.1 JSON |
/realms/sai 是 issuer 的一部分。通过 Discovery 获取协议端点,校验其 issuer 与上表完全一致。
当前接入范围¶
| 能力 | 第三方接入方式 |
|---|---|
| 网页登录 | 登记后使用 Authorization Code,必须启用 PKCE S256 |
| 服务端客户端认证 | 优先 private_key_jwt;经登记可使用 client_secret_basic |
| 无法保密的客户端 | 单独评审,不能把客户端密钥放入浏览器或安装包 |
| 基本资料 | openid、profile、email,分别按登记及用户授权提供 |
| 扩展资料 | sai.profile 和 sai.profile.details 需说明用途并单独批准,当前字段见字段说明 |
| 在线续期、撤销、退出 | 使用 Discovery 中的标准端点及登记的退出回调 |
认证状态 sai.assurance |
单独申请并取得用户同意后,读取当前认证状态;不提供认证材料 |
| 机器身份、设备授权、离线访问 | 不属于普通网页接入范围,须单独申请,现有用户登录授权不包含这些权限 |
| Implicit、密码直传、PKCE plain、通配回调 | 第三方接入禁用 |
Discovery 可能列出 implicit、password、其他 grant、客户端认证方式或 plain。这些是协议引擎的能力声明,不代表你的客户端获准使用。实际权限由客户端登记决定,本指南只描述上表范围。
当前没有可对外承诺的稳定公开用户名、头像、个人简介等完整公开资料接口。请使用 (iss, sub) 关联账号,不将昵称、邮箱或计算节点用户名当作账号主键。
OIDC 登录不授予计算、组织、账务或其他业务权限。访问业务 API 需要该服务独立批准的 audience、scope 和当前业务授权。
接入验收¶
上线前至少验证:首次登录、已有 SSO 登录、用户拒绝授权、错误回调与 PKCE、重复授权码、资料未填写、刷新令牌轮换、撤销、退出回调及短时服务故障。使用你登记的客户端完成这些检查,其他应用可登录不能替代你的接入验收。
此站提供文档和机器可读描述,不在网页中收集真实客户端密钥、授权码或令牌。请在自己的测试环境验证请求。