2

我是 OAuth2.0 和 OpenID 协议领域的初学者。我想为多个应用程序实现一个自定义服务器 - 提供程序。因此,将其用于单点登录 (SSO)。我想和python一起工作。到目前为止,我已经在 Python 中找到了四个包,用于 OAuth2.0 和 OpenID Connect 服务器实现:pyoidc、django-oidc-provider、OAuthlib 和 Authlib 的 Django OAuth Toolkit (DOT)。我试图阅读和理解 pyoidc,但它并不是那么有用和简单,缺少基本的东西。我已经尝试过 django-oidc-provider 并且我真的很满意,整个实现非常简单。因此,在这些试验之后,我只剩下 Django OAuth Toolkit(由 OAuthlib 提供)和 Authlib。有人试过吗?这些包是一样的吗?Authlib 是 OAuthlib 库的更新版本吗?到现在为止我唯一知道的信息,

*每一个答案或建议或个人经验都会非常有帮助,并且总是很感激!

再次感谢你的帮助。

4

1 回答 1

0

经过一些研究,我得出结论通常使用JWTs。和以前一样,我想使用GraphQL API,所以我正在寻找有关 JWT 身份验证的解决方案。我可能使用 Passport.js (passport-jwt) 或 Python 的其他东西。上面提到的所有库都可能不会被使用。

我只会将用户重定向到我的主应用程序,使用 JWT 对他们进行身份验证,然后将 JWT 返回给应用程序。在未来和部署之后,我可能还会为我的网站实现一个 OAuth2.0 提供程序。尽管这些软件包并没有真正帮助我,但我会向其他人推荐 Django OAuth Toolkit (DOT) 和 django-oidc-provider。但是,我也了解到 django-oidc-provider 只支持一个小而简单的 OAuth2.0 提供者的实现。Django OAuth Toolkit 提供了许多用于实现高级 OAuth2.0 身份验证服务器 (AS) 的选项,包括带有 PKCE(带有代码交换的证明密钥)的授权代码流,这是最安全的流。它还具有可扩展性,并且如果您愿意,它还具有包含大量自定义的出色文档。

*我给 Authlib 的支持发送了一封电子邮件,当然一周后没有人回复我。

于 2020-04-15T09:56:41.290 回答