2014-03-28 8 views
10

Ich implementiere einen SAML 2.0 Service Provider, der Okta als Identity Provider verwendet. Ich möchte die ACS-URL (Assertion Consumer Service) konfigurieren, sodass SAML 2.0 von meiner Serviceanbieter-App in der Assertion berücksichtigt wird.SAML 2.0: Konfigurieren der Assertion Consumer Service URL

Ich stelle jedoch fest, dass der Okta-Identity-Provider stattdessen den in der Okta-Konfiguration konfigurierten SSO-Endpunkt sendet und das ACS ignoriert, das tatsächlich gesendet wurde. Auch bekomme ich einen Fehler, vielleicht stimmt der ACS von SP nicht mit den Metadaten dort überein.

Wenn die ACS-URL nicht der richtige Weg ist, um IDP eine kurze ID zu senden, damit sie in der Assertion reflektiert wird, welche anderen Mechanismen können für diesen Zweck verwendet werden.

Beispiel:

Die SAML 2.0 SAMLRequest von der SP App gesendet wird:

assertion_consumer_service_url: https: //host.com:port/saml/consume? EntityID = N & myName = username

Die Konfiguration auf Identity Provider hat die Meta-Daten:

Single Sign-on URL: https: //host.com:port/saml/consume?entityId=N

Beachten Sie, dass sich der myName von einer Anforderung zur nächsten ändert, da wir so überprüfen können, ob die Antwort name_id aufweist, die mit dem ursprünglichen gesendeten Benutzernamen übereinstimmt.

Wenn es für den Service Provider eine Möglichkeit gibt, den Identity Provider von einem SP-verwalteten Namen (wie z. B. dem Benutzernamen) bestätigen zu lassen, wäre das für unsere Bedürfnisse in Ordnung. Wie spezifiziert man das?

Dank

+1

Bitte stellen Sie nicht mehrere Fragen auf einmal, es ist besser, jedes Problem als eine separate Frage zu veröffentlichen. –

Antwort

9

In SAML wird der ACS angenommen für eine SP statisch sein. Um die Antwort mit der ursprünglichen AuthnRequest zu korrelieren, sollten Sie die ID der ausgehenden AuthnRequest speichern und dann die InResponseTo der empfangenen Antwort verwenden.

Der SP kann dem AuthnRequest einen Betreff hinzufügen und dem Idp mitteilen, welcher Benutzername authentifiziert werden soll. Es ist in Abschnitt 3.4.1 in der SAML2 Core spec definiert.