【问题标题】:SAML with Django authentication带有 Django 身份验证的 SAML
【发布时间】:2014-05-05 07:03:41
【问题描述】:

我正在使用托管在 AWS 上的 Django 和 nginx。我正在尝试使用他们的 idp 与一所大学集成以进行 SAML 身份验证。关于 SO 有很多过时的答案,但还有什么与当前标准更相关的吗?

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

我看到的一些事情是:

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

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

【问题讨论】:

    标签: django saml-2.0


    【解决方案1】:

    SAML 是两个方面:

    • IDP -> 身份提供方 -> 即大学
    • SP -> 服务提供商 -> 即您的应用程序

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

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

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

    【讨论】:

    • 这可行,但我发现了一个更新和维护良好的项目。
    • 嘿 KVISH,我正在解决与 Django 项目实现 SAML SSO 完全相同的问题。你最终使用了什么解决方案?
    • @Aman 不确定您是否看到它,但他们回答了自己的问题并指向 djangosaml2。
    【解决方案2】:

    我找到的项目如下:

    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 中。

    【讨论】:

    • 更新:djangosaml2 一年多没有更新,缺乏对 Python3 和 Django 1.9 的支持。
    • 我在 django 1.9.4 的生产环境中使用它。我能够做出改变以支持它。 Python 3 我还没有测试过,所以我不确定。
    • @kvish,我有一个关于使用 djangosaml2 获取我无法弄清楚的元数据的问题。你介意帮助我吗?我已经在djangosaml2 github 上发布了我的问题
    • 链接的项目不再维护。但是,可以使用维护良好的分支on GitHub
    【解决方案3】:

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

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

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

    【讨论】:

    • 你能分享一个你使用这个包的例子吗
    • 我只是为此苦苦挣扎了一下,这对我们的项目很有帮助。在我们的 docker 容器中对依赖项进行排序有点痛苦,但是一旦我们完成了,它就像一个魅力(对我们的用例进行了一些修改)。
    • 如果需要签名响应不要使用这个模块,一旦这个模块doesn't support证书/密钥
    【解决方案4】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多