SAML与Django身份验证

KVI*_*ISH 15 django saml-2.0

我在AWS上使用Django和nginx.我正在尝试使用他们的idp与大学集成进行SAML身份验证.关于SO有很多过时的答案,但有没有与现行标准更相关的内容?

我见过的许多应用程序都适用于django 1.2及更低版本.具体来说,我正在寻找能够通过一些中间件或其他任何东西更轻松地管理SAML身份验证的资源.

我见过的一些事情是:

https://github.com/unomena/django-saml2-idp

https://github.com/WiserTogether/django-saml2-sp

KVI*_*ISH 11

我找到的项目如下:

https://bitbucket.org/lgs/djangosaml2/overview

该项目使用psaml2进行SAML支持.Pysaml2可以在这里找到:

https://github.com/rohe/pysaml2

请记住,djangosaml2可能不会使用最新版本的pysaml2.我测试了它,它的工作正常.

UPDATE

djangosaml2适用于最新版本pysaml2,但请确保添加此行以使其工作:

SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
Run Code Online (Sandbox Code Playgroud)

这应该在你的settings.py.


wol*_*ski 5

SAML 是两个方面:

  • IDP -> 身份提供方 -> 即大学
  • SP -> Service Provider -> 即你的应用程序

听起来这就是你想要的:https : //github.com/WiserTogether/django-saml2-sp

您必须考虑到 SAML 作为标准很复杂,因此您可能会发现让图书馆与大学中的 SAML 实现对话的问题。您还必须从他们那里获取身份提供者证书公钥,并要求他们使用特定的实体 ID 在他们这边添加您的应用程序。当您开始管理其中的几个时,它会变得复杂。

您可能还想查看Auth0 之类的东西来处理所有这些 SAML 连接。有一个非常简单的 python 示例https://gist.github.com/woloski/8149412


小智 5

嗨,我刚刚创建了一个 django saml2 身份验证插件。

https://github.com/fangli/django-saml2-auth

与您的 SAML2 提供商集成非常容易,希望您喜欢。