Estamos tratando de evaluar Keycloak como una solución SSO, y se ve bien en muchos aspectos, pero la documentación carece de lo básico.
Para una determinada instalación de Keycloak en el http://localhost:8080/
dominio test
, ¿cuáles son el punto final de autorización OAuth2 , el punto final del token OAuth2 y el punto final UserInfo de OpenID Connect ?
No estamos interesados en usar la propia biblioteca cliente de Keycloak, queremos usar bibliotecas cliente estándar OAuth2 / OpenID Connect, ya que las aplicaciones cliente que usan el servidor keycloak estarán escritas en una amplia gama de lenguajes (PHP, Ruby, Node, Java, C # , Angular). Por lo tanto, los ejemplos que usan el cliente Keycloak no nos sirven.
Respuestas:
Para Keycloak 1.2, la información anterior se puede recuperar a través de la URL
Por ejemplo, si el nombre del reino es demo :
Un ejemplo de salida de la URL anterior:
Información encontrada en https://issues.jboss.org/browse/KEYCLOAK-571
Nota: es posible que deba agregar su cliente a la lista de URI de redireccionamiento válido
fuente
Con la versión 1.9.3.Final, Keycloak tiene varios puntos finales OpenID disponibles. Estos se pueden encontrar en
/auth/realms/{realm}/.well-known/openid-configuration
. Suponiendo que se nombre su reinodemo
, ese punto final producirá una respuesta JSON similar a esta.Por lo que he encontrado, estos puntos finales implementan la especificación Oauth 2.0 .
fuente
En realidad, el vínculo a
.well-know
está en la primera pestaña de la configuración de su reino, pero el vínculo no parece un vínculo, sino como el valor del cuadro de texto ... mal diseño de interfaz de usuario. Captura de pantalla de la pestaña General de Realmfuente
Después de mucho investigar, pudimos extraer la información más o menos (principalmente de la propia biblioteca del cliente JS de Keycloak):
/auth/realms/{realm}/tokens/login
/auth/realms/{realm}/tokens/access/codes
En cuanto a OpenID Connect UserInfo , en este momento (1.1.0.Final) Keycloak no implementa este punto final, por lo que no es totalmente compatible con OpenID Connect. Sin embargo, ya existe un parche que agrega que a partir de este escrito debería incluirse en 1.2.x.
Pero , irónicamente, Keycloak envía un mensaje
id_token
junto con el token de acceso. Tanto elid_token
como elaccess_token
son JWT firmados , y las claves del token son claves de OpenID Connect, es decir:Entonces, aunque Keycloak 1.1.x no es totalmente compatible con OpenID Connect, sí "habla" en el idioma de OpenID Connect.
fuente
En la versión 1.9.0, json con todos los puntos finales está en address / auth / realms / {realm}
fuente
También puede ver esta información yendo a la Consola de administración -> Configuración del reino -> Haciendo clic en el hipervínculo en el campo Puntos finales.
fuente
versión de keycloak: 4.6.0
fuente
FQDN / auth / realms / {realm_name} /. Well-known / openid-configuration
verá todo aquí, además, si el proveedor de identidad también es Keycloak, la alimentación de esta URL configurará todo también con otros proveedores de identidad si lo admiten y ya lo manejaron
fuente
Siguiente enlace Proporciona un documento JSON que describe metadatos sobre Keycloak
Siguiendo la información reportada con Keycloak 6.0.1 para
master
reinofuente