Wir versuchen, Keycloak als SSO-Lösung zu bewerten, und es sieht in vielerlei Hinsicht gut aus, aber die Dokumentation enthält schmerzlich keine Grundlagen.
Was sind für eine bestimmte Keycloak-Installation in http://localhost:8080/
for Realm test
der OAuth2-Autorisierungsendpunkt , der OAuth2-Token-Endpunkt und der OpenID Connect UserInfo-Endpunkt ?
Wir sind nicht an der Verwendung der eigenen Clientbibliothek von Keycloak interessiert. Wir möchten Standard-OAuth2 / OpenID Connect-Clientbibliotheken verwenden, da die Clientanwendungen, die den Keycloak-Server verwenden, in einer Vielzahl von Sprachen (PHP, Ruby, Node, Java, C #) geschrieben werden , Angular). Daher sind die Beispiele, die den Keycloak-Client verwenden, für uns nicht von Nutzen.
Antworten:
Für Keycloak 1.2 können die oben genannten Informationen über die URL abgerufen werden
Wenn der Realm-Name beispielsweise Demo lautet :
Eine Beispielausgabe der obigen URL:
Informationen finden Sie unter https://issues.jboss.org/browse/KEYCLOAK-571
Hinweis: Möglicherweise müssen Sie Ihren Client zur Liste der gültigen Umleitungs-URIs hinzufügen
quelle
Mit Version 1.9.3.Finale verfügt Keycloak über eine Reihe von OpenID-Endpunkten. Diese finden Sie unter
/auth/realms/{realm}/.well-known/openid-configuration
. Angenommen, Ihr Realm heißt benanntdemo
, erzeugt dieser Endpunkt eine ähnliche JSON-Antwort.Soweit ich festgestellt habe, implementieren diese Endpunkte die Oauth 2.0- Spezifikation.
quelle
Nach langem Stöbern konnten wir die Informationen mehr oder weniger kratzen (hauptsächlich aus Keycloaks eigener JS-Client-Bibliothek):
/auth/realms/{realm}/tokens/login
/auth/realms/{realm}/tokens/access/codes
Was OpenID Connect UserInfo betrifft , implementiert Keycloak diesen Endpunkt derzeit (1.1.0.Final) nicht, sodass es nicht vollständig OpenID Connect-kompatibel ist. Es gibt jedoch bereits einen Patch , der hinzufügt, dass zum jetzigen Zeitpunkt in 1.2.x enthalten sein sollte.
Aber - Ironischerweise sendet Keycloak
id_token
zusammen mit dem Zugriffstoken ein In zurück. Sowohl dieid_token
als auch dieaccess_token
sind signierte JWTs , und die Schlüssel des Tokens sind die Schlüssel von OpenID Connect, dh:Während Keycloak 1.1.x nicht vollständig OpenID Connect-kompatibel ist, "spricht" es in der OpenID Connect-Sprache.
quelle
Tatsächlich befindet sich der Link zu
.well-know
auf der ersten Registerkarte Ihrer Realm-Einstellungen - aber der Link sieht nicht wie ein Link aus, sondern als Wert des Textfelds ... schlechtes UI-Design. Screenshot der Registerkarte "Allgemein" von Realmquelle
In Version 1.9.0 befindet sich json mit allen Endpunkten unter der Adresse / auth / realms / {Realm}
quelle
Schlüsselumhang Version: 4.6.0
quelle
FQDN / auth / realms / {Realm_name} /. Bekannte / openid-Konfiguration
Hier sehen Sie alles. Wenn der Identitätsanbieter auch Keycloak ist, wird durch das Füttern dieser URL alles auch für andere Identitätsanbieter eingerichtet, wenn diese dies unterstützen und bereits erledigt haben
quelle
Sie können diese Informationen auch anzeigen, indem Sie in der Admin-Konsole -> Realm-Einstellungen -> auf den Hyperlink im Feld Endpunkte klicken.
quelle
Folgender Link Stellt ein JSON-Dokument bereit, das Metadaten zum Keycloak beschreibt
Die folgenden Informationen wurden mit Keycloak 6.0.1 für
master
Realm gemeldetquelle