Python 中的 OpenID Connect 提供程序
Posted
技术标签:
【中文标题】Python 中的 OpenID Connect 提供程序【英文标题】:OpenID Connect Provider in Python 【发布时间】:2015-03-27 09:53:03 【问题描述】:我一直在寻找如何在 python 中实现 OpenID Connect 提供程序,我发现了由 Roland Hedberg (it's recommended by OpenID ) 制作的 this library。 但是我读过the docs、the examples,我认为对于没有太多知识的人来说,它的例子过于复杂(提供者、wsgi 和 cli 混合在一起)。
所以我的问题是:有谁知道更简单的示例或教程来实现这个库,还是我应该尝试在 OAuth2 库之上实现我的提供程序?
【问题讨论】:
我认为“OpenID 推荐”是一个强有力的声明。它们只是列出已提交给它们的实现。 【参考方案1】:这里有一些更新
罗兰 oidc 提供商 https://github.com/IdentityPython/oidc-op 和 rp https://github.com/IdentityPython/JWTConnect-Python-OidcRP
SATOSA(IAM 代理)oidcop 前端 https://github.com/UniversitaDellaCalabria/SATOSA-oidcop
【讨论】:
【参考方案2】:我以前也遇到过这个麻烦。在 OAuthlib 之上工作很痛苦(Roland lib 也很难理解),所以我决定从头开始。
django-oidc-provider 可以帮助您提供开箱即用的所有端点、数据和逻辑,以便将 OpenID Connect 功能添加到您的 Django 项目中。完全支持 Python 3 和 2。还有最新版本的 django。
在 GitHub 上查看:https://github.com/juanifioren/django-oidc-provider
有什么想知道的可以问。
【讨论】:
【参考方案3】:以防万一有人发现这个问题。我在 Authlib 上工作了很长时间,在 Authlib 之前我创建了 Flask-OAuthlib。使用 Authlib v0.6+,您可以轻松create an OpenID Connect service in Flask(Django 集成即将到来)。
以下是您可能需要的一些资源:
-
GitHub:https://github.com/lepture/authlib
OAuth 2 示例:https://github.com/authlib/example-oauth2-server
关于 OAuth 2 的文档:https://docs.authlib.org/en/latest/flask/oauth2.html
OpenID Connect 文档:https://docs.authlib.org/en/latest/flask/oidc.html
当有可用的 oidc 示例时,我会更新答案。
【讨论】:
以上是关于Python 中的 OpenID Connect 提供程序的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core OpenID Connect 中的单点注销
Okta 使用 OpenID Connect 配置中的公钥验证 JWT 令牌
IdentityServer:检查 OpenId Connect 中的身份验证策略中是不是存在范围
OpenID Connect 服务器流中的“state”参数可以防止啥攻击?