使用Django身份验证的SAML

ou6hu8tu  于 2023-10-21  发布在  Go
关注(0)|答案(5)|浏览(127)

我正在使用AWS上托管的Django和Nginx。我正在尝试与一所大学集成,使用他们的idp进行SAML身份验证。关于SO有很多过时的答案,但是有什么与当前标准更相关的吗?
我见过的许多应用程序都是针对django 1.2或更低版本的。具体来说,我正在寻找能够让我更容易地通过中间件或其他任何东西来管理SAML身份验证的资源。
我看到的一些事情是:
https://github.com/unomena/django-saml2-idp
https://github.com/WiserTogether/django-saml2-sp

oprakyz7

oprakyz71#

我找到的项目如下:
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中。

qni6mghb

qni6mghb2#

SAML有两个方面:

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

听起来这是你想要的:https://github.com/WiserTogether/django-saml2-sp
您必须考虑到SAML作为一个标准是复杂的,因此您可能会发现在大学中让库与SAML实现进行对话的问题。您还必须从他们那里获得身份提供者证书公钥,并要求他们使用特定的实体ID将您的应用程序添加到他们这边。当你开始管理其中的几个时,事情就变得复杂了。
您可能还希望检查类似Auth0的东西来处理所有这些SAML连接。有一个非常简单的python示例https://gist.github.com/woloski/8149412

0ejtzxu1

0ejtzxu13#

我刚刚创建了一个django saml2认证插件。
https://github.com/fangli/django-saml2-auth
它很容易与您的SAML2提供程序集成,希望您喜欢。

smdnsysy

smdnsysy5#

据我检查目前的repos,这一个是工作和维护正常:https://github.com/grafana/django-saml2-auth

相关问题