单点登录--OAuth2协议
2021-02-25 17:10:43 200 举报
单点登录(SSO)是一种允许用户使用一组凭据访问多个应用程序的身份验证过程。OAuth2是一种授权框架,允许第三方应用在用户的许可下访问其私有资源。OAuth2协议支持四种授权类型:授权码、简化授权码、密码和客户端凭据。 在单点登录中,OAuth2协议可以用于实现跨域身份验证。例如,用户可以通过一个主应用程序(如Google或Facebook)登录到多个子应用程序,而无需为每个子应用程序输入用户名和密码。这样,用户只需记住一个主凭据即可访问所有相关应用程序。
作者其他创作
大纲/内容
验证cookie
应用
用户没有单点登陆的全局会话,所以要呈现用户登陆表格
200 [id=***]
用户验证成功,创建一个包含TGT的凭证CASTGC,它在CAS服务器里对应一个单点登陆的全局会话
CAS server
GET https://cas.example.com/cas/oauth2.0/accessToken?code=ST-12345678&client_id=app123&client_secret=app456&grant_type=authorization_code&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcas%2Fcallback
展示CAS登陆表格
访问应用
GET https://app.example.com/?code=ST-12345678
浏览器
为用户建立会话,并在响应头中设置cookie
GET https://cas.example.com/cas/oauth2.0/profile?access_token=DEF123
200 [access_token=***&expires_in***]
验证用户
用户
200 [网页内容]
应用通过https的方 式去CAS server索要用户信息
应用通过https的方 式去CAS server验证code,并索要用来获取用户信息的凭证
Cookie:JSESSIONID=ABC1234567GET https://app.example.com/
Set-Cookie:CASTGC= TGT-2345678302 Location https://app.example.com/cas/callbackcode=ST-12345678
302 Location https://cas.example.com/cas/oauth2.0/authorize?client_id=app123&response_type=code&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcas%2Fcallback
展示应用内容
访问未授权,将重定向到CAS进行验证,uri参数redirect_uri=https%3A%2F%2Fapp.example.com%2Fcas%2Fcallback
GET https://app.example.com/
提交CAS登陆表格
CAS登陆表格
POST https://cas.example.com/cas/oauth2.0/authorize?redirect_uri=https%3A%2F%2Fapp.example.com%2Fcas%2Fcallback
GET https://cas.example.com/cas/oauth2.0/authorize?redirect_uri=https%3A%2F%2Fapp.example.com%2Fcas%2Fcallback
CAS返回一个包含用户id的字符串
请求体中携带用户名/密码
Set-Cookie:JSESSIONID=ABC1234567302 Location https://app.example.com/
CAS返回一个包含access_token的字符串

收藏

收藏
0 条评论
下一页