Próbujemy ocenić Keycloak jako rozwiązanie SSO i wygląda dobrze pod wieloma względami, ale w dokumentacji bardzo brakuje podstaw.
Co to jest punkt końcowy autoryzacji OAuth2 , punkt końcowy tokenu OAuth2 i punkt końcowy informacji o użytkowniku OpenID Connect w przypadku danej instalacji Keycloak w http://localhost:8080/
domenie ?test
Nie jesteśmy zainteresowani korzystaniem z własnej biblioteki klienta Keycloak, chcemy korzystać ze standardowych bibliotek klienta OAuth2 / OpenID Connect, ponieważ aplikacje klienckie korzystające z serwera keycloak będą pisane w szerokim zakresie języków (PHP, Ruby, Node, Java, C # , Kątowy). Dlatego przykłady korzystające z klienta Keycloak nie są dla nas przydatne.
Odpowiedzi:
W przypadku Keycloak 1.2 powyższe informacje można pobrać za pośrednictwem adresu URL
Na przykład, jeśli nazwa dziedziny to demo :
Przykładowe wyjście z powyższego adresu URL:
Informacje można znaleźć pod adresem https://issues.jboss.org/browse/KEYCLOAK-571
Uwaga: Może być konieczne, aby dodać klienta do Ważna Przekierowanie URI listy
źródło
W wersji 1.9.3.Final Keycloak udostępnia wiele punktów końcowych OpenID. Można je znaleźć pod adresem
/auth/realms/{realm}/.well-known/openid-configuration
. Zakładając, że twoja dziedzina ma nazwędemo
, ten punkt końcowy wygeneruje odpowiedź JSON podobną do tej.O ile znalazłem, te punkty końcowe implementują specyfikację Oauth 2.0 .
źródło
Właściwie link do
.well-know
znajduje się na pierwszej karcie ustawień domeny - ale link nie wygląda jak link, ale jako wartość pola tekstowego ... zły projekt interfejsu użytkownika. Zrzut ekranu karty Ogólne Realmźródło
Po długich poszukiwaniach byliśmy w stanie zebrać mniej więcej informacje (głównie z biblioteki klienta JS Keycloak):
/auth/realms/{realm}/tokens/login
/auth/realms/{realm}/tokens/access/codes
Jeśli chodzi o informacje o użytkowniku OpenID Connect , w tej chwili (1.1.0.Final) Keycloak nie implementuje tego punktu końcowego, więc nie jest w pełni zgodny z OpenID Connect. Jednak istnieje już łatka, która dodaje, że w chwili pisania tego tekstu powinno być zawarte w 1.2.x.
Ale - jak na ironię Keycloak odsyła
id_token
razem z tokenem dostępu. Zarównoid_token
iaccess_token
są podpisane JWTs i klucze token są klucze OpenID Connect, tj:Tak więc chociaż Keycloak 1.1.x nie jest w pełni zgodny z OpenID Connect, „mówi” w języku OpenID Connect.
źródło
W wersji 1.9.0 json ze wszystkimi punktami końcowymi znajduje się pod adresem address / auth / realms / {realm}
źródło
Możesz również zobaczyć te informacje, przechodząc do Konsoli administracyjnej -> Ustawienia dziedziny -> Klikając hiperłącze w polu Punkty końcowe.
źródło
wersja keycloak: 4.6.0
źródło
FQDN / auth / realms / {realm_name} /. Well-known / openid-configuration
zobaczysz tutaj wszystko, a jeśli dostawca tożsamości jest również Keycloak, podanie tego adresu URL skonfiguruje wszystko również w przypadku innych dostawców tożsamości, jeśli obsługują i już to obsłużyli
źródło
Poniższy link Udostępnia dokument JSON opisujący metadane dotyczące Keycloak
Następujące informacje zgłoszone za pomocą Keycloak 6.0.1 dla
master
domenyźródło