python oauth2的方案

1.得到授权码code
2.获取access token
3.通过access token,获取OpenID
4.通过access token及OpenID调用API,获取用户授权信息

一般来说我们只是对于web应用做认证接入,认证后,在这个web应用的所有动作权限,都是在web应用本身做的。

单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。

登录

lemonldapng-sso.png

1.用户尝试访问受保护的应用程序,他的请求被Handler捕获
2.没有检测到SSO cookie,所以Handler将用户重定向到Portal
3.用户在Portal上进行身份验证
4.Portal检查认证
5.如果认证成功,Portal收集用户数据
6.Portal创建一个会话来存储用户数据
7.Portal获取会话密钥
8.Portal 使用会话密钥创建SSO cookie作为值
9.用户使用新的cookie重定向到受保护的应用程序
10.处理程序从cookie获取会话并获取会话
11.处理程序将用户数据存储在其缓存中
12.处理程序检查访问规则并将头发送到受保护的应用程序
13.受保护的应用程序向Handler发送响应
14.处理程序将响应发送给用户
然后处理程序将检查每个HTTP请求的SSO cookie。

登出

默认使用案例:
1.用户点击Portal中的注销链接
2.门户网站破坏会话,并用一个空的SSO cookie重定向用户本身
3.用户在门户上重定向,他的SSO cookie为空

LemonLDAP :NG也能够在受保护的应用程序上捕获注销请求,具有不同的行为:
SSO注销:请求不被转发到应用程序,只有 SSO会话被关闭
应用程序注销:请求被转发到应用程序,但SSO会话未关闭
SSO和应用程序注销:请求被转发到应用程序, SSO会话关闭
注销过程后,用户将在门户或配置的URL上重定向。

你可能感兴趣的:(python oauth2的方案)