django-shibboleth模块可用于从IdP获取属性并将它们映射到Django认证系统中的用户。大部分工作是由Shibboleth本身完成的,只需要少量代码进行映射。
包装可从这里。
linuxsoft.cern.ch/internal/repos/ai6-stable/x86_64/os/Packages/django-shibsso-0.1-1.noarch.rpm
或从这里来源。
linuxsoft.cern.ch/internal/repos/ai6-stable/source/SRPMS/django-shibsso-0.1-1.src.rpm
按照有关设置本地的Shibboleth服务提供商的Shibboleth的指令( SP)与IdP一起使用。
在http.conf文件或您自己在conf中的应用程序配置。d,创建以下条目。
<Location /shibboleth>
AuthType shibboleth
ShibRequireSession On
ShibUseHeaders On
require valid-user
</Location>
这应该会导致/ shibboleth的URL被定向到IdP登录页面。成功登录后,将返回一个404页面。
添加配置,将应用替换为应用的名称。
<Location "/">
SetHandler mod_python
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE app.settings
PythonDebug Off
</Location>
这会在通过/ shibboleth URL登录后导致以下错误。 当前URL Shibboleth.sso/ADFS与其中任何一个都不匹配。
要解决此问题,您需要将以下内容添加到配置中。
<Location /Shibboleth.sso>
SetHandler None
</Location>
/var/log/shibboleth/transaction.log应该告诉你什么属性被释放。
你需要什么功能?你只能对一个IdP进行身份验证,还是需要DS,WAYF,联邦,工件解析,注销等? – JimB
优秀的问题!这个特定的项目将需要DS,WAYF等。 – user1007116
特别是如果您要使用的不仅仅是基本的SAML功能,我会坚持我的答案的第一部分,并且同意@hrnt。结合shibboleth本地SP将是最可靠的路线。 – JimB