2016-04-26 9 views
1

Ich habe eine Grails-Anwendung mit Spring SAML und WSO2 IS als IdP.Umleiten Benutzer auf die Anmeldeseite nach SP Sitzung Timeout

Nach dem Sitzungszeitlimit aktualisiert die Benutzeroberfläche die Seite und der Benutzer wird zur Anmeldeseite umgeleitet. Dies geschieht, um sensible Informationen davor zu schützen, dass sie von anderen Personen gesehen werden, falls der Benutzer die Seite für längere Zeit verlässt.

Aber nachdem wir SSO implementiert haben, funktioniert dieser Mechanismus nicht mehr - nachdem die Session-Timeout-Seite neu geladen wurde und IDP sie automatisch erneut authentifiziert.

Wie ich verstehe, gibt es zwei Sitzungen: IdPs und SPs. Und wenn die Sitzung von SP ungültig ist, sind IDPs noch am Leben.

Ist es möglich, Benutzer nach Sitzungstimeout auf die SSO-Anmeldeseite umzuleiten? Gibt es Best Practices für die Behandlung von Sitzungstimeouts mit SSO?

+0

Was ist die Identity Server-Version, die Sie verwenden? Haben Sie SP auf dem Identitätsserver mithilfe der Identity Server-Verwaltungskonsole erstellt? –

+0

@ChamilaWijayarathna Ich benutze V4.6.0. Ja, SP wurde auf der Seite "Neuen Dienstanbieter registrieren" unter Verwendung der IS-Verwaltungskonsole –

Antwort

0

Es sieht aus wie es imposible ist Sitzungen zu synchronisieren SSO verwenden, so entschied ich mich für SP-Sitzung und IdP Sitzung den gleichen Wert zu setzen. Es ist keine perfekte Lösung, aber zumindest ist das Verhalten ähnlich wie erwartet

1

Damit dieses Szenario funktioniert, muss Ihr SP eine Abmeldungsanforderung ausgeben. Spring SAML unterstützt einzelne und lokale Abmeldungen. Im Falle der lokalen Abmeldung sind weder die anderen SP-Sitzungen betroffen noch IDP, nur die aktuelle SP-Sitzung wird ausgeloggt. Im Fall des einmaligen Abmeldens weist IDP alle SP an, die Sitzung zu beenden, und dann wird auch die IDP-Sitzung beendet. In jedem Fall muss eine Anfrage von Ihrem SP kommen, wenn die Sitzung abläuft.

Weitere Informationen finden Sie hier: http://docs.spring.io/autorepo/docs/spring-security-saml/1.0.x-SNAPSHOT/reference/htmlsingle/#configuration-logout

+0

registriert, aber was ist, wenn mehrere SPs vorhanden sind? ist nicht seltsam, dass der Benutzer nach Sitzungstimeout nicht authentifiziert wird und auf die SSO-Anmeldeseite umgeleitet werden sollte, aber in den anderen SPs ist dieser Benutzer authentifiziert? Ist das nicht die Idee von SSO? –

+0

@TarasKohut Werfen Sie einen Blick auf response.assertion.authnStatement.sessionNotOnOfAfter, aber das hängt alles mit Ihrer SP-Implementierung zusammen. Aus Sicht des SP müssen Sie IdP möglicherweise ausdrücklich anweisen, das Abmelden durchzuführen. Wenn dies eine globale Abmeldung ist, benachrichtigt IdP die anderen SPs, dass sie ihre Sitzung ebenfalls beenden müssen. – Nikolai

+0

Ich habe versucht, Ihre Lösung, aber nach SP fordert lokale Abmeldung Benutzer wird auf die Anmeldeseite umgeleitet, und weil SSO-Sitzung lebt, SP ist erneut authentifiziert. Es scheint, dass es unmöglich ist, ohne automatische Anmeldung auf die Anmeldeseite umgeleitet zu werden, bis eine globale Sitzung existiert. Oder fehlt mir etwas? –