IdP 配置说明

1. 概述

1.1 功能简介

自定义接口的整体配置与 SAML 2 类似,只是支持的加密算法与密钥的形式存在差异:

  • 在 SAML 中支持 SHA 系列算法,而自定义接口中支持 HMAC-SHA 系列算法;
  • 在 SAML 中要求填写包含公钥的基于 X.509 格式的证书,而自定义接口中需要填写的是一个普通的密钥字符串,长度最大为 128。

1.2 IdP 的四项职责

基于配置的 IdP 信息,客户可以通过开发自己的 IdP 与九数云对接,从而实现单点登录。IdP 的作用如下:

  1. 接收由用户浏览器发起的认证请求(该请求基于九数云后端生成的重定向链接);
  2. 基于其在九数云的配置与开发文档中提到的规范,验证请求的合法性;
  3. 从 Session 中获取当前成员的相关信息,封装及签发 Token;
  4. 将 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 重放风险。
  • 认证密钥为对称密钥,不得写入前端代码或公开仓库。

咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验