Ich frage mich, ob ich das CAS- Protokoll oder OAuth verwenden soll + einen Authentifizierungsanbieter für die einmalige Anmeldung verwenden soll.
Beispielszenario:
- Ein Benutzer versucht, auf eine geschützte Ressource zuzugreifen, wird jedoch nicht authentifiziert.
- Die Anwendung leitet den Benutzer zum SSO-Server weiter.
- Bei Authentifizierung erhält der Benutzer ein Token vom SSO-Server.
- Das SSO leitet zur ursprünglichen Anwendung weiter.
- Die ursprüngliche Anwendung vergleicht das Token mit dem SSO-Server.
- Wenn das Token in Ordnung ist, wird der Zugriff zugelassen und die Anwendung kennt die Benutzer-ID.
- Der Benutzer führt eine Abmeldung durch und wird gleichzeitig von allen verbundenen Anwendungen abgemeldet (einmalige Abmeldung).
Soweit ich weiß, wurde CAS genau dafür erfunden. CAS-Clients müssen das CAS-Protokoll implementieren, um den Authentifizierungsdienst verwenden zu können. Jetzt frage ich mich, ob ich CAS oder OAuth am Client (Verbraucher) verwenden soll. Ist OAuth ein Ersatz für diesen Teil von CAS? Sollte OAuth als neuer De-facto-Standard bevorzugt werden? Gibt es einen einfach zu verwendenden (nicht Sun OpenSSO!) Ersatz für den Authentifizierungsteil von CAS, der verschiedene Methoden wie Benutzername / Passwort, OpenID, TLS-Zertifikate ... unterstützt?
Kontext:
- Verschiedene Anwendungen sollten auf der Authentifizierung des SSO-Servers basieren und etwas Sitzungsähnliches verwenden.
- Die Anwendungen können GUI-Webanwendungen oder (REST-) Dienste sein.
- Der SSO-Server muss eine Benutzer-ID bereitstellen, die erforderlich ist, um weitere Informationen über den Benutzer wie Rollen, E-Mail usw. von einem zentralen Benutzerinformationsspeicher abzurufen.
- Single Sign-out sollte möglich sein.
- Die meisten Clients sind in Java oder PHP geschrieben.
Ich habe gerade WRAP entdeckt , das der OAuth-Nachfolger werden könnte. Es ist ein neues Protokoll, das von Microsoft, Google und Yahoo spezifiziert wurde.
Nachtrag
Ich habe erfahren, dass OAuth nicht für die Authentifizierung entwickelt wurde, auch wenn es zur Implementierung von SSO verwendet werden kann, sondern nur zusammen mit einem SSO-Dienst wie OpenID.
OpenID scheint mir das "neue CAS" zu sein. CAS hat einige Funktionen, die OpenID vermisst (wie Single Sign-Out), aber es sollte nicht zu schwierig sein, die fehlenden Teile in einem bestimmten Szenario hinzuzufügen. Ich denke, OpenID hat eine breite Akzeptanz und es ist besser, OpenID in Anwendungen oder Anwendungsserver zu integrieren. Ich weiß, dass CAS auch OpenID unterstützt, aber ich denke, dass CAS auf OpenID verzichtet.