我正在使用Python、Django、Django Rest框架和Django OAuth工具包(https://github.com/evonove/django-oauth-toolkit)创建单一登录(SSO)服务。SSO服务将是一个中心的、独立的应用程序,提供用户身份服务(将访问用户信息作为OAuth2保护的资源)。
Django OAuth工具包有助于实现OAuth2授权服务器。是否有类似的高质量Django或Python库可以帮助实现OAuth2客户端(请参见从https://www.rfc-editor.org/rfc/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 ---| |
+--------+ +---------------+(我希望主用例不会成为实现自己的问题,但是如果一个好的库提供了处理角落用例、错误、重试的方法,并且经过了很好的测试,那么重新发明将是一种耻辱。)
谢谢,
保罗。
发布于 2018-02-01 12:29:29
在找到并实施了解决方案之后,回来回答我自己的问题.
我选择的方法是阅读相关的RFCs (OAuth 2.0授权框架和OAuth 2.0授权框架:承载令牌的使用),并在请求-oauthlib OAuth-2工作流的帮助下实现解决方案。
我编写的Django应用程序的高级分解涉及创建:
Django应用程序是作为一个pip可安装的独立客户端实现的,它可以被需要单点登录的系统使用。
在Django Rest框架和Django OAuth工具包的帮助下实现的OAuth-2授权服务器为我的单一登录基础设施提供了中心。
https://stackoverflow.com/questions/47025007
复制相似问题