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 参数
IdP 服务与简道云间的 Token 传递基于 JWT 标准。JWT 标准可以参考如下所示 2 篇文档:
在配置来自简道云的认证请求或者返回简道云的认证断言时,参数格式如下所示:
配置步骤 | 参数名 | 说明 |
来自简道云的认证请求 | request | 认证请求 Token,详见【2.2.1 认证请求】 |
state | 状态值, 此值需要原封不动的返回简道云, 简道云通过此值来避免恶意的断言请求 | |
返回简道云的认证断言 | response | 认证断言Token,详见【2.2.2 认证断言】 |
state | 状态值,来自认证请求 | |
redirect_uri | 重定向地址,可选项,需要进行 URL 编码 |
2.2 签名内容
2.2.1 认证请求
1)认证请求是指,对于来自简道云的认证请求,IdP 需要根据您的安全级别自行验证。
参数名 | 说明 |
iss | 常量值 “com.jiandaoyun”, 意指此请求由简道云发起 |
aud | 可选, 管理员在简道云配置的 Issuer |
iat | 签名签发时间(通常 JWT 第三方库会包含此验证, 无需手动实现验证逻辑) |
exp | 签名失效时间(通常 JWT 第三方库会包含此验证, 无需手动实现验证逻辑) |
type | 常量值 “sso_req”, 意指此为一个单点登录认证请求 |
注:开发环境可以跳过 Idp 验证。
2)您实际收到的请求原文及其对应解码后的格式,如下所示:
2.2.2 认证断言
1)简道云要求 IdP 在确认用户身份并将其重定向回简道云时,携带的 response 参数解码后对应的内容如下:
参数名 | 说明 |
aud | 常量值 “com.jiandaoyun”, 意指此断言的接收方为简道云 |
exp | 签名失效时间 |
iat | 签名签发时间 |
iss | 可选, 管理员在简道云配置的 Issuer |
nbf | 可选, 签名生效时间 |
type | 常量值 “sso_res”, 意指此为一个单点登录认证断言 |
username | 成员工号, 此值应当与一个已经在简道云通讯录中激活的成员工号一致 |
redirect_uri | 重定向地址, 可选, 无需进行 URL 编码, 若该参数存在, 将覆盖 URL 中的同名参数. |
2)您实际发送的断言原文及其对应解码后的格式,如下所示: