2017-02-25 5 views
1

Ich bin ziemlich neu in dieser Welt und habe viel in den letzten zwei Wochen gelernt.Zum Auf den Punkt, ich bin eine Lösung für Service Provider Initiated SSO (auf der Anwendung) die Unterstützung mehrerer Idps. Ich benutze onelogins Javascript-Bibliothek und konfigurierte das Beispiel-Kit, um unseren eigenen Identity-Provider zu verwenden, um eine Authentifizierungsanfrage/-antwort zu erzeugen, um das Protokoll zu verstehen.SP Init SSO mit Javasaml

Im Folgenden sind die Fragen, die ich brauche, um weiter zu verstehen. Plesae beraten.

identifizieren Kunden Idp

  1. Wie bereits erwähnt, wird unsere Anwendung die sso Fluss initiieren und sollten mehrere IDP unterstützen. Ich suche nach einer gemeinsamen geschützten Ressource für die Kunden diesen Fluss zu initiieren.Am i falsch, so zu denken? wie die Verwendung von Abfragezeichenfolgen, um IDP zu unterscheiden und zu identifizieren. https://www.myapp.com?param=customerid
  2. Ich habe auch gelernt, dass die Anwendung URLs Sub-Domain Informationen enthalten, die zu einem einzigartigen Kunden abgebildet wird die Idp.How zu identifizieren, kann ich das umsetzen?
  3. Gibt es noch andere Ansätze? ohne die Benutzer zu fragen, einen Bezeichner auszuwählen.

Benutzer

In meiner Lösung kann App-Benutzernamen aus dem sso Benutzernamen unterschiedlich sein. Ich habe gelernt, dass ich die IDP-Anbieter anfordern kann, um meinen Anwendungsbenutzernamen als Attribut in der SAML-Antwort über den Kundenbenutzerspeicher anzugeben.

  1. Kann Kunde sp Anwendungsbenutzername als Querystring (wie in Frage 1) senden?
  2. Gibt es einen anderen Ansatz, um den Benutzernamen für die SP-Anwendung zu erhalten? wieder ohne die Benutzer zu fragen, zu identifizieren.

Vielen Dank für Ihr Wissen und Ihre Führung.

Antwort

1

Wenn ein einfaches SAML-basiertes WebSSO ausgeführt wird (keine Kontoverknüpfung), erfolgt die Authentifizierung (also eine Benutzeridentifikation) nur auf der IdP-Seite, nicht auf der SP-Seite. Der SP "nur" konsumiert die Behauptung über die authentifizierte Identität. Die Assertion kann Attributanweisungen enthalten, die der SP (Anwendung) verwenden kann, um Identitäten lokalen "Benutzerprofilen" zuzuordnen. Die Standard-SAML-Metadaten bieten keine Möglichkeit zu definieren, welche Attributanweisungen gesendet werden sollen. Sie müssen dies also mit den Administratoren des IdPs verhandeln.

IDP-Erkennung kann auf verschiedene Arten erfolgen, SAML-Spezifikation spricht über den bevorzugten IdP-Cookie.

Sie können entweder eine Liste von IdPs anzeigen, aus denen der Benutzer auswählen kann, oder einige Informationen aus der HTTP-Anfrage verwenden, um ein paar schlaue Ratschläge zu geben.

+0

Ty Bernard. Was meinst du mit einfachem SAML-basiertem WebSSO? Gibt es hier einen anderen Ansatz? Ich muss noch mit dem Admin des Idps sprechen. Daher würde ich wirklich mehr Wissen darüber schätzen. – rrunique

+0

SAML würde auch so genannte Kontoverknüpfung (die manchmal auch Föderation genannt wird) ermöglichen. In diesem Fall haben Sie zwei Identity-Silos, einen auf der IdP-Seite und einen auf der SP-Seite, und die Accounts sollten miteinander verknüpft sein. Um dies zu erreichen, wird das 'persistente' NameIdFormat verwendet, das ein Hinweis für den SP sein könnte, einen Authentifizierungsdialog bereitzustellen.Wenn authentifiziert wird, wird bei beiden Entitäten eine Kontoverknüpfung eingerichtet, und in der Zukunft wird nur ein undurchsichtiger Handle ausgetauscht. Wenn der SP diesen undurchsichtigen Handle in zukünftigen Behauptungen von dem IdP empfängt, weiß er, mit welcher Identität er verbunden ist. –