Pau*_*per 2 python django single-sign-on oauth-2.0 django-rest-framework
我正在使用Python,Django,Django Rest Framework和Django OAuth Toolkit(https://github.com/evonove/django-oauth-toolkit)创建一个单点登录(SSO)服务。SSO服务将是一个提供用户身份服务的中央独立应用程序(将对用户信息的访问作为OAuth2受保护的资源授予)。
Django OAuth Toolkit可帮助实现OAuth2授权服务器。是否有质量类似的Django或Python库,可以帮助实现OAuth2客户端(请参见以下https://tools.ietf.org/html/rfc6749#section-1.2的摘录)?
+--------+ +---------------+
| |--(A)- Authorization Request ->| Resource |
| | | Owner |
| |<-(B)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(C)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(D)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(E)----- Access Token ------>| Resource |
| | | Server |
| |<-(F)--- Protected Resource ---| |
+--------+ +---------------+
Run Code Online (Sandbox Code Playgroud)
(我希望主要用例对自己而言不会成为问题,但是如果一个好的库提供了处理极端情况,错误,重试并经过良好测试的方法,那么重新发明将是可耻的。)
谢谢,
保罗
找到并实施解决方案后一段时间再回答我自己的问题...
我选择的方法是阅读相关的RFC(《 OAuth 2.0授权框架》 和《 OAuth 2.0授权框架:承载令牌使用》),并在requests-oauthlib OAuth-2工作流程的帮助下实施解决方案。
我编写的最终Django应用程序的高级分类涉及创建:
Django应用程序已实现为可点子安装的独立客户端,可由需要单点登录的系统使用。
在Django Rest Framework和Django OAuth Toolkit的帮助下实现的OAuth-2授权服务器为我的单点登录基础架构提供了中心。
| 归档时间: |
|
| 查看次数: |
2768 次 |
| 最近记录: |