2017-04-11 2 views
0

Ich versuche, SAML einzurichten und ich habe SimpleSAMLphp sowohl für meinen Dienstanbieter als auch für meinen Identitätsanbieter verwendet. Um nun meinen Service Provider zu testen, habe ich ssocclecle als alternativen Identity Provider eingerichtet. Das Problem, das ich habe, ist, dass egal, was ich tue, es zu/anstelle des RelayState umleitet (was SimpleSAMLphp verwendet, um am Ende umzuleiten). Gibt es einen Teil des Standards, der dies anspricht? Sollte es immer umleiten zu/oder ist ssocircle ignoriert meine Parameter, wenn es nicht sein sollte?Wie verwende ich ssocircle als IDP und Umleitung zu einer Seite?

<a href="https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&spEntityID=https://myServer/simplesaml/module.php/saml/sp/metadata.php/sp2&RelayState=https://myServer/SAMLHandler.php?idp=2&destination=https://myServer/SAMLHandler.php?idp=2">Log in with ssocircle</a> 

Basierend auf den Antworten habe ich es auf die folgenden geändert, aber ich sehe immer noch die gleichen Ergebnisse.

<a href="https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&RelayState=https%3A%2F%2FmyServer%2FSAMLHandler.php%3Fidp%3D2&spEntityID=https%3A%2F%2FmyServer%2Fsimplesaml%2Fmodule.php%2Fsaml%2Fsp%2Fmetadata.php%2Fsp2">Log in with ssocircle</a> 

Hier sind die Reihenfolge der Links meinem Browser sieht: Ich

https://idp.ssocircle.com/sso/hos/AdPage.jsp?returnUrl=/sso/idpssoinit&metaAlias=%2Fpublicidp&RelayState=https%3A%2F%2FmyServer%2FSAMLHandler.php%3Fidp%3D2&spEntityID=https%3A%2F%2FmyServer%2Fsimplesaml%2Fmodule.php%2Fsaml%2Fsp%2Fmetadata.php%2Fsp2 

Klicken Sie dann auf eine Box, die ich bin kein Roboter sagt. Sie glauben mir nicht, also muss ich ein paar Bilder aussuchen. Dann lässt es mich weitermachen.

https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&spEntityID=https%3A%2F%2FmyServer%2Fsimplesaml%2Fmodule.php%2Fsaml%2Fsp%2Fmetadata.php%2Fsp2&relayState=https%3A%2F%2FmyServer%2FSAMLHandler.php%3Fidp%3D2&g-recaptcha-response=03AOP2lf7g9SbzDz_d3YQ7s-RpbtUTdlIntJ8PCr-jHHK97Wmua4xHYOzk0jwRbbzbPUJnigOjEoCDib4LTcacS_0rd0rSvEve2JBZoDh5BxKHOFXae2Eht_ZYK2mOG6tS3VEwXxbM4u7Bgc3l3OY3tan2cRenS1aUcHQHggvlr32Jd5POg5a1wHm5cPx-AhdnRZZC3X-8pU1VSgjq4w1IqNBmCRCPICPOGWdnLrdab0-VOIV0NYkMFS66kUUFb69sTAASudJNZUds-6IFtmT2uqxBcMqAw25MrVUUj1q7LUl5E7t79lqW9zRhXc94TvsBJcrI1pEEWghK 

Und schließlich

https://myServer/ 

Obwohl, wenn ich einen Würfel() -Aufruf in meinem AssertionConsumerService setzen, es stirbt. Wenn ich dann $ _REQUEST drucke, gibt es keinen RelayState.

Antwort

1

SAML und SSOCircle IDP unterstützt den RelayState-Parameter. Es wird zusammen mit der SAMLResponse-Nachricht als POST-Parameter gesendet. Bitte stellen Sie sicher, dass die Parameter korrekt URL-codiert sind.

Update: Für kostenlose SSOCircle-Konten leitet der IDP zu einer zusätzlichen Captcha-Seite um. Während der Umleitungen ist der Wert des RelayState auf dem Server verloren gegangen. Das Problem ist jetzt behoben. Bei bezahlten Abonnementkonten konnte das Verhalten nicht beobachtet werden, da diese Benutzer nicht zur Captcha-Seite weitergeleitet werden.

+1

Ich habe die Frage mit den URLs aktualisiert, die mein Browser aufruft. Ich habe die URL-Codierung geändert und sehe keinen Unterschied. – Andrew

+0

Das Fixieren der URL-Codierung und die detaillierte Flussbeschreibung halfen, das Problem anzugehen. Es sieht so aus, als ob der Parameter in der Captcha-Behandlung verloren geht. Mein Test basierte auf einem bezahlten Abonnement-Konto, das den "No Robot" -Abfang überspringt. Wie auch immer, bitte versuche es noch einmal, es hat jetzt für mich funktioniert. – Hos

+0

So funktioniert es nicht ohne ein kostenpflichtiges Abonnement? – Andrew

0

Urlcode zur Rettung; Wie würde ein Browser zwischen Parametern unterscheiden, die Teil der RelayState-URL sind oder Parameter, die Teil der SAML-Anfrage selbst sind?

+0

Also habe ich es geändert in 'Log in with ssocircle' und ich sehe das gleiche Ergebnis, eine Umleitung zu/ – Andrew

+0

gut, die spEntityID ist nicht urlencodiert und daher ist es nicht klar, ob der RelayState Parameter zur URL oder zur spEntityID gehört Parameterwert; In der Voreinstellung wäre dies jedoch der Fall; nur sicherstellen, dass url-encoding ist völlig korrekt –

+0

Ich glaube, es soll separat sein, wie wäre es in der ursprünglichen URL richtig behandelt werden? Warum sollte es nicht funktionieren? – Andrew

Verwandte Themen