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页面。
添加配置,将 app 替换为您的应用名称。
<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 应该告诉你释放了哪些属性。