2016-06-17 10 views
0

Ich muss Shibboleth IdP einrichten, um Benutzername und Passwort für eine benutzerdefinierte Anwendung zu überprüfen.Shibboleth benutzerdefinierte Passwort Fluss

Unsere Anwendung stellt eine REST-API zur Verfügung, an die die Anmeldeinformationen eines Benutzers übergeben werden können. Bei Erfolg wird ein Fehler 401 oder ein JSON-Objekt mit einigen Benutzermetadaten zurückgegeben.

Ich konnte dies in SimpleSamlPHP IdP mit einer 30-Zeilen-Klasse erreichen, aber zu Shibboleth wechseln muss, habe ich eine harte Zeit finden Richtungen, um das gleiche dort zu tun.

Lesen der Dokumentation scheint die vorgeschlagene Lösung zu sein, ein benutzerdefiniertes Back-End für den Passwort-Login-Flow zu erstellen, aber die Wiki nicht im Detail zu erklären, wie dies zu tun ist.

Kann jemand mich auf einige Tutorials oder Beispielcode hinweisen, auf denen Dateien erstellt oder geändert werden müssen, um dies zu tun (sogar grundlegende Beispiele für die Überprüfung mit einer Anmeldeinformationsdatei oder Datenbank wäre in Ordnung)?

Antwort

0

Sie suchen einen [Externe Authentifizierung Fluss] (https://wiki.shibboleth.net/confluence/display/IDP30/ExternalAuthnConfiguration)

Ein Beispiel finden Sie in der shib-cas-authn3 Projekt (https://github.com/Unicon/shib-cas-authn3). Es verwendet den CAS-Server, um die Benutzer zu authentifizieren. Es erstellt dann eine IDP-Sitzung aus Informationen, die vom CAS abgerufen werden.

+0

Ich hoffte, den Passwort-Login-Flow zu verwenden und nur das Back-End von den verfügbaren (LDAP, JAAS, etc.) mit einem benutzerdefinierten zu ändern. Der externe Authflow scheint mehr Anpassungen zu erfordern. Liege ich falsch? – user3758232

+0

Sie müssen eine Klasse schreiben, die weiß, wie Sie mit Ihrem Service kommunizieren und sie in das IdP-spezifische Diagramm übersetzen. Sie können den Passwortfluss aktualisieren, um Ihre Klasse zu verwenden, aber Upgrades sind möglicherweise problematisch. –