Estamos tentando avaliar o Keycloak como uma solução SSO, e parece bom em muitos aspectos, mas a documentação carece dolorosamente do básico.
Para uma determinada instalação do Keycloak http://localhost:8080/
para o reino test
, o que são o Terminal de autorização OAuth2 , o Terminal de Token OAuth2 e o Terminal de UserInfo do OpenID Connect ?
Não estamos interessados em usar a própria biblioteca cliente do Keycloak, queremos usar bibliotecas cliente OAuth2 / OpenID Connect padrão, pois os aplicativos cliente que usam o servidor keycloak serão escritos em uma ampla variedade de linguagens (PHP, Ruby, Node, Java, C # , Angular). Portanto, os exemplos que usam o cliente Keycloak não são úteis para nós.
Respostas:
Para Keycloak 1.2, as informações acima podem ser recuperadas através do url
Por exemplo, se o nome do realm for demo :
Um exemplo de saída do url acima:
Informações encontradas em https://issues.jboss.org/browse/KEYCLOAK-571
Observação: pode ser necessário adicionar seu cliente à lista de URIs de redirecionamento válidos
fonte
Com a versão 1.9.3.Final, o Keycloak possui vários endpoints OpenID disponíveis. Eles podem ser encontrados em
/auth/realms/{realm}/.well-known/openid-configuration
. Supondo que seu domínio seja nomeadodemo
, esse endpoint produzirá uma resposta JSON semelhante a esta.Pelo que descobri, esses terminais implementam a especificação Oauth 2.0 .
fonte
Na verdade, o link para
.well-know
está na primeira guia de suas configurações de reino - mas o link não se parece com um link, mas como o valor da caixa de texto ... design de interface do usuário ruim. Captura de tela da guia geral do Realmfonte
Depois de muito cavar, conseguimos extrair mais ou menos as informações (principalmente da biblioteca de cliente JS do próprio Keycloak):
/auth/realms/{realm}/tokens/login
/auth/realms/{realm}/tokens/access/codes
Quanto ao OpenID Connect UserInfo , agora (1.1.0.Final) Keycloak não implementa este ponto de extremidade, portanto, não é totalmente compatível com OpenID Connect. No entanto, já existe um patch que acrescenta que, no momento desta escrita, deve ser incluído no 1.2.x.
Mas - Ironicamente, o Keycloak envia de volta um
id_token
in junto com o token de acesso. Tanto oid_token
quanto oaccess_token
são JWTs assinados , e as chaves do token são chaves do OpenID Connect, ou seja:Portanto, embora o Keycloak 1.1.x não seja totalmente compatível com o OpenID Connect, ele "fala" na linguagem do OpenID Connect.
fonte
Na versão 1.9.0 json com todos os endpoints está em address / auth / realms / {realm}
fonte
Você também pode ver essas informações acessando Admin Console -> Configurações de território -> clicando no hiperlink no campo Endpoints.
fonte
versão keycloak: 4.6.0
fonte
FQDN / auth / realms / {realm_name} /. Well-known / openid-configuration
você verá tudo aqui, além disso, se o provedor de identidade também for Keycloak, então alimentar esta URL configurará tudo também verdadeiro com outros provedores de identidade se eles suportarem e já lidarem com isso
fonte
Link a seguir Fornece documento JSON que descreve metadados sobre o Keycloak
A seguir as informações relatadas com Keycloak 6.0.1 para o
master
reinofonte