Django und Shibboleth
Ich bin die Untersuchung der Optionen für die Verwendung von Shibboleth in eine Django-Bereitstellung. Von dem, was ich gefunden habe, sieht es etwas spärlich. Kann jeder Kommentar über die folgenden?
-
Ist jemand mit der django_shibboleth-Modul (siehe http://code.arcs.org.au/gitorious/django/django-shibboleth/trees/1.1)? Wenn ja, welche Erfahrungen haben Sie mit diesem Modul?
-
SAML-2-Implementierungen für Django (z.B. django-saml2-sp) und Python im Allgemeinen (z.B., pysaml2) scheinen etwas experimentell und enthalten nur wenig Dokumentation. Kennt jemand stabile SAML-2-Lösungen für Django/Python?
Vielen Dank im Voraus für jede Hilfe!!!
- Welche Funktionen brauchen Sie? Wird Sie immer nur authentifizieren gegen einen einzigen IdP, oder benötigen Sie DS, WAYF, Föderation, Artefakt-Auflösung, logout, und so weiter?
- Ausgezeichnete Fragen! Dieses Projekt benötigen, DS, WAYF, etc.
- Vor allem, wenn du gehst zu verwenden, die mehr als die grundlegenden SAML-features, würde ich stick mit dem ersten Teil meiner Antwort, und Stimme mit @hrnt. Die Einbeziehung der shibboleth-native SP wird der zuverlässigste Weg.
- Kann ich das django-Modul für mehrere Idps ? ich brauche für die Verwendung von Shibboleth für meinen django web-site ? was tun Sie sugest ? apache-Modul oder django-Modul? meine Anforderung ist die Verwendung mehrerer idps.
- als ich sagte in meiner Antwort, das django-Modul benötigt apache mod_shib. Sie müssen Sie beide.
- Ist diese Unterstützung für mehrere idps und ich muss wissen, wo Lagere ich die unterschiedlichen Datenbanken
- mod_shib hat die standard-shib SP seit Jahren, und ist wirklich die kanonische Implementierung der alles unterstützt von shibboleth; also ja, Sie können mehrere IdPs, die direkt oder über eine Föderation. Ich weiß nicht, was du meinst mit "andere Datenbanken", aber diese Kommentare sind nicht wirklich der Ort für dieses Gespräch.
- diesen link code.Bögen.org.au/gitorious/django/django-shibboleth/Bäume/1.1 funktioniert nicht jetzt, nicht u haben keine nützlichen tutorial link für django/shibboleth-integration
- Ich denke, zogen Sie den code. Der link in meiner Antwort verweist auf das aktuelle repo.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde empfehlen die Verwendung der Shibboleth Nativen SP (apache mod_shib). Es ist gut getestet, hat einen großen Kundenstamm und ist sehr stabil.
Ich warf einen kurzen Blick auf die django_shibboleth - Modul, und es scheint, dass es hängt davon ab, mod_shib, und nicht im SAML-auf seinen eigenen. In dieser Hinsicht, das Modul ist sehr einfach, und wahrscheinlich funktioniert gut.
ich habe nicht gesehen, alle komplett (oder weitgehend abgeschlossen) python SAML2-Implementierungen, und keine, die dem aktiven Projekt.Das xml-security und crypto-Anforderungen sind ein Schmerz in python, und dieser trägt wahrscheinlich auf das fehlen von Bibliotheken.[EDIT - ich werde widerrufen Teil, dass] Die pysaml2 Bibliothek hat einige Entwicklung-Aktivität, und sieht ziemlich komplett aus, ein flüchtiger Blick. Es verwendet die xmlsec1 binäre direkt für Signaturen und Verschlüsselung, und damit der sich nicht auf veraltete Bindungen. Dies ist wahrscheinlich Ihre beste Wette für die Verwendung von SAML2 direkt in python im moment.
Während ich don ' T haben Erfahrung mit Django+Shibboleth, ich habe einige mit "plain" Shibboleth.
Wenn der Apache hat mod_shibboleth richtig konfiguriert, dann integrieren Sie es mit einer web-app ist relativ trivial. Überprüfen Sie heraus die django_shibboleth Modul und man kann es sich nicht enthalten, dass viel code.
Insbesondere, wenn Sie mod_shibboleth bereits ausgeführt, nicht von einem Drittanbieter verwenden, die SAML-2-Bibliothek. Diese bringen eine Menge unnötiger Komplexität.
Einen django-ein shibboleth-Modul zur Verfügung, welches genutzt werden kann, um Attribute aus einem IdP und ordnen Sie diese Benutzer in die Django-auth-system. Die meiste Arbeit ist getan durch Shibboleth selbst, mit nur einer kleinen Menge von code, der benötigt wird für die Zuordnung.
Die Verpackung ist von hier.
linuxsoft.cern.ch/intern/repos/ai6-stabil/x86_64/os/Packages/django-shibsso-0.1-1.noarch.U /min
oder die Quelle von hier.
linuxsoft.cern.ch/intern/repos/ai6-stable/source/SRPMS/django-shibsso-0.1-1.src.U /min
Folgen Sie den Shibboleth-Anweisungen für die Einrichtung Ihres lokalen Shibboleth Service Provider (SP) für die Verwendung mit einem IdP.
In der http.conf-Datei oder Ihre eigenen app-Konfiguration in conf.d, erstellen Sie den folgenden Eintrag.
Dadurch sollte die URLs /shibboleth-gerichtet an den IdP-login-Seite. Nach der erfolgreichen Anmeldung auf eine 404-Seite zurückgegeben werden.
Fügen Sie der Konfiguration, Ersatz app mit dem Namen Ihrer app.
Dadurch sollte die folgende Fehlermeldung nach dem login über den /die shibboleth-URL.
Die aktuelle URL, Shibboleth.sso/ADFS, nicht mit diesen.
Dieses problem zu lösen, müssen Sie Folgendes hinzufügen, um der Konfiguration.
/var/log/shibboleth/Transaktion.log sollte Ihnen sagen, welche Attribute veröffentlicht werden.
SetHandler None
auf "/Shibboleth.sso", Neuordnung, wie der Apache lädt Module auch helfen können. Ich stieß auf die ähnliche situation mit mod_passenger + mod_shib2. Zum Beispiel, wenn mod_shib2 geladen ist nachdem mod_passenger dann "/Shibboleth.sso" location ist behandelt von Passagier-app (das ist nicht das gewünschte Verhalten). Wenn mod_shib2 geladen wird, bevor mod_passenger - alles funktioniert wie erwartet.