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