SAML 集成
应用系统将原有的用户登录认证代码修改为:当检查到用户未登录时,转发用户的登录请求到统一身份管理系统的 SAML 单点登录地址。
统一身份管理系统完成用户认证操作后,调用应用系统提供的回调地址,发送身份认证结果。应用系统分析认证结果,判断是否允许用户登录。
应用配置
在统一身份管理系统,需要为第三方应用配置下列信息:
- 回调地址:用于接收用户认证结果
- 证书信息:用于验证
SAML请求的数字签名,保证消息的真实性、完整性。 - 认证地址:转发用户登录请求的地址
- 应用标识:应用系统在统一身份管理系统中的注册标识
- 身份格式:用于指明身份标识的格式
接口说明
方式1:基于API单点登录
URL 请求路径和方法
Path: /idp/saml/sso
Method: GET
HTTP 请求
查询参数:
| 字段 | 属性 | 是否必须 | 描述 |
|---|---|---|---|
| SAMLRequest | SAML 请求数据 | 是 | 业务系统(客户端)发起的 SAML 登录请求 |
http
SAMLRequest=fVJBbtswEPwKsXeKNB3LCmE5cGIENZC2Rqz00BtNrRMCEqlwKbf9fSU7BtJDfSJAzuzMznBx97tt2BEjueBLmGQSGHobaudfS3ipHnkBjJLxtWmCxxJ8gLvlgkzbdHrVpzf%2FjO89UmLDHE%2F69FBCH70Ohhxpb1oknazerb4%2BaZVJ3cWQgg0NsBURxjQIPwRPfYtxh%2FHoLL48P5XwllJHWghn2qwJr3tDmFmv51JKQZ2wHxRg60HdeZNOC%2FyHVchiLkznxHEyHJ0wo3Ph6k6MhgVRALZZlzCbKJvXmPPbwyznNyq3vJiqA5%2Bqwpr97AYPeT4giXrc%2BDGWVIKSSnF5y%2BW8kjM9nWilsjwvfgLbfmx67%2Fw5z2ux7M8g0l%2Bqasu333cVsB%2BXXgYAnFPXJ%2FH4Ke7rY80lY1iqhfg04VLit4GyWW9D4%2Bwftmqa8OshoklD1Sn2COwxxNak6yLjjav54QTV3eiaEvoEYnnW%2FPevLP8CHTTP 响应
响应头(Header):
| 字段 | 值 | 是否必须 | 描述 |
|---|---|---|---|
| content-type | application/json;charset=UTF-8 | NO |
响应体(Body):
| 字段 | 类型 | 描述 |
|---|---|---|
| flag | boolean | 是否成功 |
| code | string | 返回码 |
| message | string | 返回消息 |
| data | object | 返回数据 |
响应示例:
json
{
"flag": true,
"code": "0x0000",
"message": "成功",
"data": {}
}方式2:基于门户单点登录
用户登录安全门户,点击应用图标。统一身份管理系统验证用户登录请求,构建 SAML 响应,发送给第三方应用。第三方应用需验证 SAML 响应的有效性。在有效性验证通过后,从 SAML 响应中提取用户身份信息,打开应用首页。
URL 请求路径和方法
Path: [第三方应用接口]
Method: GET
HTTP 请求
查询参数:
| 字段 | 属性 | 是否必须 | 描述 |
|---|---|---|---|
| SAMLResponse | SAML 响应数据 | 是 | 第三方应用接收的 SAML 登录响应 |
http
SAMLRequest=fVJBbtswEPwKsXeKNB3LCmE5cGIENZC2Rqz00BtNrRMCEqlwKbf9fSU7BtJDfSJAzuzMznBx97tt2BEjueBLmGQSGHobaudfS3ipHnkBjJLxtWmCxxJ8gLvlgkzbdHrVpzf%2FjO89UmLDHE%2F69FBCH70Ohhxpb1oknazerb4%2BaZVJ3cWQgg0NsBURxjQIPwRPfYtxh%2FHoLL48P5XwllJHWghn2qwJr3tDmFmv51JKQZ2wHxRg60HdeZNOC%2FyHVchiLkznxHEyHJ0wo3Ph6k6MhgVRALZZlzCbKJvXmPPbwyznNyq3vJiqA5%2Bqwpr97AYPeT4giXrc%2BDGWVIKSSnF5y%2BW8kjM9nWilsjwvfgLbfmx67%2Fw5z2ux7M8g0l%2Bqasu333cVsB%2BXXgYAnFPXJ%2FH4Ke7rY80lY1iqhfg04VLit4GyWW9D4%2Bwftmqa8OshoklD1Sn2COwxxNak6yLjjav54QTV3eiaEvoEYnnW%2FPevLP8CHTTP 响应
如果第三方应用验证 SAML 响应数据成功,则返回应用首页。
单点登出
URL 请求路径和方法
Path
/api/v2/app/authn/logout/${uid}/$
Method
POST
HTTP 请求
路径参数
| 字段 | 属性 | 是否必须 | 描述 |
|---|---|---|---|
| uid | 用户名 | 是 | 当前登录用户的用户名 |
| jti | 短令牌 | 是 | 当前登录用户的短令牌 |
请求头
| 字段 | 属性 | 是否必须 | 描述 |
|---|---|---|---|
| jti | 短令牌 | 是 | 当前登录用户的短令牌 |
示例
http
https://localhost:8000/api/v2/app/authn/logout/admin/5c6550cd-d9b9-4676-88f0-945f993d0a3bHTTP 响应
响应
json
{
"flag":true,
"code":"0x0000",
"message":"成功",
"data":null
}登出日志
登录安全控制台,访问审计管理-->用户登出,查看用户登出日志信息。
