SP:服务提供者,即注册的应用
IDP:身份提供者,即SSO服务
shareSecret:注册SP时配置的共享密钥
流程说明:
用户登录SSO系统后点击应用SP图标
IDP检查SP是否合法,是则生成一个随机code,并生成一个携带此code以及应用spId的url返回给用户浏览器
将上一步生成的url重定向至应用SP
SP获取url中的参数code以及spId,以此code、spId以及shareSecret为参数发送获取登录用户身份的请求
IDP验证code及ShareSecret是否合法,若合法则返回登录用户信息给SP
获取登录用户身份信息,用户进入该应用
流程说明:
用户点击访问应用SP的某个链接url
应用拦截该url,重定向至SSO服务frontService接口,注意拼接该应用注册时的id
IDP验证SP合法性,以及用户是否登录过SSO服务,已登录则生成一个随机code并生成一个携带此code以及应用spId的url返回给用户浏览器
将上一步生成的url重定向至应用SP
SP获取url中的参数code以及spId,以此code、spId以及shareSecret为参数发送获取登录用户身份的请求
IDP验证code及ShareSecret是否合法,若合法则返回登录用户信息给SP
获取登录用户身份信息,用户进入该应用
流程说明:
用户点击访问应用SP的某个链接url
应用拦截该url,重定向至SSO服务frontService接口,注意拼接该应用注册时的id
IDP验证SP合法性,以及用户是否登录过SSO服务,未登录则重定向至SSO服务登录页
用户登录SSO服务,点击应用SP图标
IDP检查SP是否合法,是则生成一个随机code,并生成一个携带此code以及应用spId的url返回给用户浏览器
将上一步生成的url重定向至应用SP
SP获取url中的参数code以及spId,以此code、spId以及shareSecret为参数发送获取登录用户身份的请求
IDP验证code及ShareSecret是否合法,若合法则返回登录用户信息给SP
获取登录用户身份信息,用户进入该应用
说明:由SP发起流程中第2步请求示例:
http://192.168.1.1:8080/uc/service/idp/sso/front/sp/5f9ceca4-b365-481e-a73a-2aa3c18f00f5
重定向URL:
http://example.com/app/sso?spId=7586ddca-c8f7-4266-96fb-92f772adb2b5&code=29534469-3ab8-4de3-acbd-4fedc57f1a0b
| 参数 | 参数说明 |
|---|---|
| spId | 注册应用id |
| code | 返回的code |
SP请求:
http://dksso.com/uc/service/idp/sso/easy/userInfo?spId=7586ddca-c8f7-4266-96fb-92f772adb2b5&code=29534469-3ab8-4de3-acbd-4fedc57f1a0b&sharedSecret=bbddc6bf-5090-4889-924e-47518580258b
IDP返回:
{
"success": true,
"errorCode": 0,
"data": {
"userId": "93ea76e2-2755-4ada-aef1-889ae0d6e158",
"loginName": "test",
"mobiles": [],
"roles": [],
"passwordUpdateTime": 1538033566000
},
"message": null
}