Webbasiertes Single-Sign-On

Ich brauche eine Lösung, die eine einmalige Anmeldung für verschiedene Websites auf verschiedenen Domains für eine Organisation ermöglicht. Ich muss das nicht selbst implementieren, sondern brauche ein klareres Bild, wonach genau ich suchen sollte.

Ich bin mir eigentlich nicht ganz sicher, ob ich den Begriff richtig verwende – die klassische Definition von SSO scheint zu lauten: „Einmal eingeloggt haben Sie Zugriff auf mehrere Anwendungen“. Was ich suche, ist etwas, das es ermöglicht, einen einzigen Satz von Anmeldeinformationen pro Benutzer für mehrere Websites und webbasierte Dienste zu haben. Diese darf nicht auf externe Instanzen angewiesen sein, daher muss es möglich sein, einen Identitätsanbieter auf dem Server der Organisation zu betreiben.

Bevor ich mit der Forschung begann, war ich davon überzeugt, eine grundlegende Vorstellung davon zu haben, wie das funktioniert. Nachdem ich einige Stunden gelesen habe, muss ich zugeben, dass ich verblüfft bin. Einige Artikel im Web warnen davor, dass SSO nicht mit Dingen wie OpenID verwechselt werden sollte. OpenID Connect wird jedoch an anderer Stelle als die Zukunft von Single-Sign-On-Anwendungen gefeiert. Es basiert auf OAuth2, das angeblich so unsicher ist, dass ein Chefentwickler schreiend davongelaufen ist, sich aber dennoch zu einem Quasi-Industriestandard entwickelt zu haben scheint. usw., je mehr ich las, desto verwirrter wurde ich.

Ich bin mir auch nicht ganz sicher, ob verschiedene Zugriffsebenen vom Identitätsanbieter gehandhabt werden können oder ob sie auf Anwendungsebene gehandhabt werden müssen. Ich muss Benutzer in verschiedene Gruppen einordnen (sie benötigen unterschiedliche Berechtigungen innerhalb der Websites - ich denke, welche Berechtigung für welche Gruppe gilt, muss auf Anwendungsebene behandelt werden).

Hier also meine Wunschliste:

  • Ich suche nach einer Single-Sign-On-Lösung für mehrere Webdienste
  • kein externer Anbieter, selbst gehostet
  • sollte sowohl die Authentifizierung als auch die Benutzerverwaltung übernehmen (wenn überhaupt möglich)
  • benötigt mindestens einen PHP-Client (und möglicherweise Java)
  • Open Source bevorzugt (wegen "redenfrei", nicht "wie bier" - es gibt ein Budget)

An dieser Stelle würde ich mich schon über ein paar grobe Hinweise freuen („ja, OpenID Connect ist das Ticket“ oder so ähnlich).

Einige Informationen, die einige Lösungen ausschließen oder einschließen könnten. 1) Welchen Webserver verwendest du? Oder, genauer gesagt, verwenden Sie Windows-Server? 2) Sie haben verschiedene Domänen erwähnt: Haben die Domänen unabhängig vom Betriebssystem der Webserver irgendeine Form von Vertrauensbeziehungen? 3) Unabhängig vom Betriebssystem von Webservern oder anderen Servern, haben die Benutzer Ihrer Organisation bereits eine Art zentrale Benutzerautorität (oder Autoritäten mit Vertrauensbeziehungen): Die häufigste Situation ist, dass jeder im Organisation hat ein Windows-Konto, um sich bei ihrem Computer anzumelden.

Antworten (2)

OpenID

OpenID ist eine großartige Lösung. Hier gibt es verschiedene Ideen. Die erste Idee war OpenID 1.0, das für Authentifizierung und nur Authentifizierung gemacht ist. Aber aus praktischen Gründen haben Unternehmen auf OAuth2 umgestellt, das Zugriff gewährt, und sie kombinieren beides zu OpenID Connect oder verwenden einfach OAuth2 als Authentifizierungssystem. Als Referenz können Sie sich ansehen, welche Systeme verwendet werden, um sich mit Cloud-APIs zu verbinden: http://passportjs.org/guide/providers/

Wissen Sie, wie die Benutzerverwaltung / Benutzerrollen mit OpenId gehandhabt werden (dh werden sie überhaupt behandelt oder ist OpenId nur Authentifizierung und die Anwendung muss herausfinden, auf welche Ressourcen ein Benutzer zugreifen kann)?

Schau dir mal Auth0 an . In kann die Authentifizierung handhaben, unterstützt aber auch die Autorisierung.

PS, ich bin nicht verbunden, aber meine Firma hat es gerade ausgewählt, daher der Hinweis