【发布时间】:2014-05-05 07:03:41
【问题描述】:
我正在使用托管在 AWS 上的 Django 和 nginx。我正在尝试使用他们的 idp 与一所大学集成以进行 SAML 身份验证。关于 SO 有很多过时的答案,但还有什么与当前标准更相关的吗?
我见过的许多应用程序都适用于 django 1.2 及更低版本。具体来说,我正在寻找可以让我通过一些中间件或其他任何东西更轻松地管理 SAML 身份验证的资源。
我看到的一些事情是:
【问题讨论】:
我正在使用托管在 AWS 上的 Django 和 nginx。我正在尝试使用他们的 idp 与一所大学集成以进行 SAML 身份验证。关于 SO 有很多过时的答案,但还有什么与当前标准更相关的吗?
我见过的许多应用程序都适用于 django 1.2 及更低版本。具体来说,我正在寻找可以让我通过一些中间件或其他任何东西更轻松地管理 SAML 身份验证的资源。
我看到的一些事情是:
【问题讨论】:
SAML 是两个方面:
听起来这就是你想要的:https://github.com/WiserTogether/django-saml2-sp。
您必须考虑到 SAML 作为标准是复杂的,因此您可能会发现让图书馆与大学中的 SAML 实施进行对话时遇到问题。您还必须从他们那里获得身份提供者证书公钥,并要求他们将您的应用程序添加到他们身边,并带有特定的实体 ID。而当您开始管理其中的几个时,情况就会变得复杂。
您可能还想查看 Auth0 之类的内容来处理所有这些 SAML 连接。有一个非常简单的python示例https://gist.github.com/woloski/8149412
【讨论】:
我找到的项目如下:
https://bitbucket.org/lgs/djangosaml2/overview
该项目使用 psaml2 来支持 SAML。 Pysaml2 可以在这里找到:
https://github.com/rohe/pysaml2
请记住,djangosaml2 可能不会使用最新版本的 pysaml2。我测试了它,它工作正常。
更新
djangosaml2 适用于最新版本的pysaml2,但请确保添加此行以使其正常工作:
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
这应该在您的settings.py 中。
【讨论】:
您好,我刚刚创建了一个 django saml2 身份验证插件。
https://github.com/fangli/django-saml2-auth
与您的 SAML2 提供商集成非常容易,希望您喜欢。
【讨论】: