我正在调查在Django部署中使用Shibboleth的选项。从我所发现的来看,事情看起来有点稀疏。有人能对以下内容发表评论吗?
- 有没有人在使用django_shibboleth模块(参见http://code.arcs.org.au/gitorious/django/django-shibboleth/trees/1.1)?如果有,你使用这个模块有什么经验?
- 针对Django(例如,django-saml 2-sp)和Python(例如,pysaml 2)的SAML 2实现似乎有些实验性,并且包含很少的文档。有人知道针对Django/Python的稳定的SAML 2解决方案吗?
提前感谢任何帮助!
3条答案
按热度按时间kninwzqo1#
我推荐使用Shibboleth Native SP(apache mod_shib)。它经过了很好的测试,拥有庞大的用户群,并且非常稳定。
我快速查看了一下django_shibboleth模块,它似乎依赖于mod_shib,并且自己不做任何SAML。在这方面,该模块非常简单,并且可能工作得很好。
我还没有看到任何完整的(或大部分完整的)python SAML2实现,也没有一个是活跃的项目。xml安全性和加密要求是python的一个痛苦,这可能导致缺乏库。
[EDIT pysaml2库有一些开发活动,粗略一看看起来相当完整。它直接使用xmlsec1二进制文件进行签名和加密,因此不依赖任何过时的绑定。这可能是目前在python中直接使用SAML2的最佳选择。
olhwl3o22#
虽然我没有使用Django+Shibboleth的经验,但我有一些“普通”Shibboleth。
如果你的Apache已经正确配置了mod_shibboleth,那么将它与Web应用集成是相对简单的。查看django_shibboleth模块,你可以看到它并不包含那么多代码。
特别是,如果你已经运行了mod_shibboleth,不要使用第三方的SAML 2库,因为这会带来很多不必要的复杂性。
vfhzx4xs3#
一个
django-shibboleth
模块可以用来从IdP获取属性,并将它们Map到Django auth系统中的用户。大部分工作都是由Shibboleth自己完成的,只需要少量的代码进行Map。按照Shibboleth说明设置本地Shibboleth服务提供商(SP)以与IdP一起使用。
在http.conf文件或conf.d中您自己的应用程序配置中,创建以下条目。
字符串
这将导致指向/shibboleth的URL被定向到IdP登录页面。成功登录后,将返回404页面。
添加配置,将app替换为您的app名称。
型
在通过/shibboleth URL登录后,这将导致以下错误。当前URL Shibboleth.sso/ADFS与这些URL中的任何一个都不匹配。
要解决此问题,您需要在配置中添加以下内容。
型
/var/log/shibboleth/transaction.log
应该告诉你释放了哪些属性。