Ligar um fornecedor OpenID Connect
Utilize este guia quando o seu fornecedor de identidade fala OpenID Connect em vez de SAML. Qualquer emissor certificado para OIDC funciona — Pocket ID, Keycloak, Auth0, Zitadel, Google Workspace e afins seguem todos os mesmos passos; só difere o local onde o seu fornecedor mostra os valores.
Pré-requisitos
Secção intitulada “Pré-requisitos”- um fornecedor OIDC onde possa criar um cliente — anote o ID de cliente
e a URL do emissor (a base sob a qual vive o documento
.well-known/openid-configuration), mais o segredo do cliente quando o cliente é do tipo confidencial (os clientes públicos com PKCE não têm nenhum), - um servidor do Control Center que administre (o proprietário do servidor).
- Abra Definições → Servidor → Início de sessão único e mude para OpenID Connect.
- Preencha a URL do emissor, o ID de cliente e o Segredo do cliente (opcional) quando o fornecedor tiver emitido um. O Control Center descobre os endpoints a partir do documento de descoberta padrão do emissor — sem configuração por fornecedor.
- No fornecedor, registe o redirecionamento
https://<your-server>/oidc/callbacknesse cliente. - Se os seus grupos estiverem sob um claim diferente de
groups, defina o nome do Claim de grupos; mapeie grupos para funções se quiser (o SSO nunca pode conceder a função de proprietário). - Escolha a política de associação (adicionar automaticamente a todos os espaços de trabalho, ou exigir convites por espaço de trabalho), ative Usar OpenID Connect para entrar e prima Guardar ligação.
- Prima Testar ligação — o servidor vai buscar o documento de descoberta do emissor e confirma os seus endpoints, por isso uma notificação verde significa que tudo funciona exceto a ida e volta pelo navegador. Para verificar também o registo do cliente, use o verificador abaixo.
- Inicie sessão: o ecrã de ligação web mostra Entrar com
OpenID Connect, ou abra
https://<your-server>/oidc/logindiretamente.
Os claims (email, name, groups) são lidos pelo seu servidor a partir do
endpoint de token do emissor através de TLS — o navegador nunca os fornece,
pelo que não há qualquer verificação local da assinatura do JWT. Deve
permitir-se que o cliente peça o scope openid profile email, que é
exatamente o que o Control Center pede.
Como esse canal TLS é a única coisa que autentica os claims, a URL do
emissor tem de ser https — um emissor em texto simples permitiria a
qualquer atacante no caminho forjar identidades em massa. http só é aceite
para emissores de loopback (localhost, 127.0.0.1, ::1), para
desenvolvimento local.
Verifique a sua configuração nesta página
Secção intitulada “Verifique a sua configuração nesta página”O verificador abaixo é executado no seu navegador. Vai buscar diretamente o documento de descoberta do seu emissor, pelo que este site nunca o vê, e aplica as regras do servidor: um emissor https que corresponde ao documento, endpoints na própria origem do emissor, PKCE S256 e o método de autenticação de token de que o seu tipo de cliente precisa. Com um ID de cliente e o endereço do servidor, pode abrir um início de sessão de teste que mostra se o cliente e o seu URI de redirecionamento estão registados. Nunca pede o segredo do cliente.
Runs in your browserYour browser fetches the discovery document straight from your issuer. Add a server address and it also asks that server which sign-in methods it offers. This site never receives what you type.
Test sign-in at your provider
- Your provider's sign-in or consent page: the client ID and redirect URI are registered. You can close the tab.
- An error at your provider: it names what to fix, usually a redirect URI that is not registered or an unknown client ID.
- Your server's "Sign-in failed" page: also a pass. The provider accepted the request and sent you back; your server refuses it only because this page started the sign-in, not your server.