IdP 配置说明
1. 概述
1.1 功能简介
自定义接口的整体配置与 SAML 2 类似,只是支持的加密算法与密钥的形式存在差异:
- 在 SAML 中支持 SHA 系列算法,而自定义接口中支持 HMAC-SHA 系列算法;
- 在 SAML 中要求填写包含公钥的基于 X.509 格式的证书,而自定义接口中需要填写的是一个普通的密钥字符串,长度最大为 128。
1.2 IdP 的四项职责
基于配置的 IdP 信息,客户可以通过开发自己的 IdP 与九数云对接,从而实现单点登录。IdP 的作用如下:
- 接收由用户浏览器发起的认证请求(该请求基于九数云后端生成的重定向链接);
- 基于其在九数云的配置与开发文档中提到的规范,验证请求的合法性;
- 从 Session 中获取当前成员的相关信息,封装及签发 Token;
- 将 Token 作为参数,将用户重定向回九数云。
2. 配置说明
2.1 URL 参数
IdP 服务与九数云间的 Token 传递基于 JWT 标准(可参考 jwt.io 官方介绍与中文入门教程)。
在配置来自九数云的认证请求或返回九数云的认证断言时,参数格式如下:
配置步骤 | 参数名 | 说明 |
由用户浏览器发起的认证请求 | request | 认证请求 Token,详见【2.2.1 认证请求】 |
state | 状态值,此值需原封不动地返回九数云,九数云通过此值来避免恶意的断言请求 | |
返回九数云的认证断言 | response | 认证断言 Token,详见【2.2.2 认证断言】 |
state | 状态值,来自认证请求 | |
redirect_uri | 重定向地址,可选项,需要进行 URL 编码 |
2.2 签名内容
2.2.1 认证请求(sso_req)
认证请求是指由用户浏览器发起的认证请求,IdP 需要根据您的安全级别自行验证。
参数名 | 说明 |
iss | 平台常量值 com.jiandaoyun,意指此请求由九数云发起 |
aud | 可选,管理员在九数云配置的 Issuer |
iat | 签名签发时间(通常 JWT 第三方库会包含此验证,无需手动实现验证逻辑) |
exp | 签名失效时间(通常 JWT 第三方库会包含此验证) |
type | 常量值 sso_req,意指此为一个单点登录认证请求 |
注:开发环境可以跳过 IdP 验证。
您实际收到的请求原文及其对应解码后的格式,如下图所示:

2.2.2 认证断言(sso_res)
九数云要求 IdP 在确认用户身份并将其重定向回九数云时,携带的 response 参数解码后对应的内容如下:
参数名 | 说明 |
aud | 平台常量值 com.jiandaoyun,意指此断言的接收方为九数云 |
exp | 签名失效时间 |
iat | 签名签发时间 |
iss | 可选,管理员在九数云配置的 Issuer |
nbf | 可选,签名生效时间 |
type | 常量值 sso_res,意指此为一个单点登录认证断言 |
username | 成员工号,此值应当与一个已经在九数云通讯录中激活的成员工号一致 |
redirect_uri | 重定向地址,可选,无需进行 URL 编码;若该参数存在,将覆盖 URL 中的同名参数 |
您实际发送的断言原文及其对应解码后的格式,如下图所示:
2.3 单点登出(slo_req)
单点登出请求参数格式与认证请求一致,并额外包含 jti 或 nameId 参数,但不包含 state 字段,Token 中的 type 为常量 slo_req。
3. 硬约束与注意事项
- state 必须原值回传,否则九数云会拒绝断言。
- username 必须对应已激活成员,否则登录失败。
- 建议 exp 与 iat 的间隔控制在 60 秒内,降低 Token 重放风险。
- 认证密钥为对称密钥,不得写入前端代码或公开仓库。

400-111-0890
在线咨询