Conectar um provedor OpenID Connect
Use este guia quando o seu provedor 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 os mesmos passos; só muda o lugar onde o seu provedor exibe os valores.
Pré-requisitos
Seção intitulada “Pré-requisitos”- um provedor OIDC onde você possa criar um cliente — anote o ID de
cliente e a URL do emissor (a base sob a qual fica o documento
.well-known/openid-configuration), além do segredo do cliente quando o cliente for do tipo confidencial (clientes públicos com PKCE não têm nenhum), - um servidor do Control Center que você administre (o proprietário do servidor).
- Abra Configuraçõ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 provedor tiver emitido um. O Control Center descobre os endpoints a partir do documento de descoberta padrão do emissor — sem configuração por provedor.
- No provedor, registre o redirecionamento
https://<your-server>/oidc/callbacknesse cliente. - Se os seus grupos estiverem sob uma declaração diferente de
groups, defina o nome do Claim de grupos; mapeie grupos para papéis se quiser (o SSO nunca consegue conceder o papel 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 pressione Salvar conexão.
- Pressione Testar ligação — o servidor busca o documento de descoberta do emissor e confirma os endpoints dele, então um toast verde significa que tudo, exceto a ida e volta pelo navegador, funciona. Para verificar também o registro do cliente, use o verificador abaixo.
- Faça um login: a tela de conexão web mostra Entrar com OpenID
Connect, ou abra
https://<your-server>/oidc/logindiretamente.
As declarações (e-mail, nome, grupos) são lidas do endpoint de token do
emissor por TLS, pelo seu servidor — o navegador nunca as fornece, então não
há verificação local de assinatura JWT envolvida. O cliente deve poder
solicitar o escopo openid profile email, que é exatamente o que o Control
Center pede.
Como esse canal TLS é a única coisa que autentica as declarações, a URL do
emissor precisa ser https — um emissor em texto simples permitiria que
qualquer atacante no caminho forjasse identidades em massa. http é aceito
apenas para emissores de loopback (localhost, 127.0.0.1, ::1), para
desenvolvimento local.
Verifique sua configuração nesta página
Seção intitulada “Verifique sua configuração nesta página”O verificador abaixo é executado no seu navegador. Ele busca o documento de descoberta do seu emissor diretamente, de modo 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 exigido pelo tipo de cliente. Com um ID de cliente e o endereço do servidor, ele pode abrir um login de teste que mostra se o cliente e a sua URI de redirecionamento estão registrados. Ele 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.