SSO & OAuth
SSO & OAuth
Você pode deixar sua equipe entrar no admin do Chinaski com seu provedor de identidade existente em vez de senhas Chinaski separadas. O Chinaski suporta logins padrão OAuth 2.0 de código de autorização contra provedores estilo OpenID Connect.
Onde ficam as configurações de SSO
O SSO é configurado em Settings → Security, sob a seção Single Sign-On (OAuth / OIDC).
- Enable SSO: liga ou desliga os logins SSO
- Client ID
- Client Secret
- Authorization URL
- Token URL
- Userinfo URL
Preencha os cinco campos do provedor a partir da aplicação OAuth/OIDC do seu provedor de identidade. O SSO só é considerado configurado quando está habilitado e cada um desses cinco campos tem um valor.
Observação: a seção de SSO não aparece em Settings quando a sua instância do CMS roda em modo air-gapped.
Configurando seu provedor
Os cinco campos vêm de uma aplicação cliente OAuth/OIDC que você cria no seu provedor de identidade. Ao registrar essa aplicação no provedor, use a URI de callback (redirecionamento):
https://your-cms-url/auth/sso/callback Essa é a URL de callback absoluta exata que o Chinaski usa tanto para a etapa de autorização quanto para a troca de token.
O Client Secret é armazenado criptografado. Para alterá-lo, informe um novo valor; deixar o campo em branco mantém o segredo existente.
O que os usuários veem
Uma vez que o SSO está configurado, um botão “Sign in with SSO” aparece na página de login do admin. Clicar nele inicia o login no seu provedor de identidade, onde os escopos solicitados são openid, email e profile.
Se algo der errado, o usuário volta para a página de login com uma destas mensagens:
- SSO is not configured
- Invalid OAuth state: possible CSRF attack
- OAuth authorization denied
- OAuth token exchange failed (ou: no access token)
- OAuth userinfo request failed
- OAuth userinfo did not return a user identifier
- SSO login requires a verified email address from your identity provider
Quando o login é bem-sucedido, o usuário é levado a /admin e o login é registrado (incluindo o endereço IP) no auth log. As sessões SSO duram 8 horas a partir do login.
Como visitantes se tornam usuários
Quando alguém entra com SSO, o Chinaski encontra a conta nesta ordem:
- Por vínculo SSO existente. Se uma conta já está vinculada àquela identidade do provedor, ela é usada.
- Por email verificado. O provedor deve confirmar o endereço de email ou omitir o indicador de verificação; se o provedor disser explicitamente que o email não é verificado, o login é recusado com a mensagem “verified email address” acima. Uma conta correspondente é então vinculada à identidade SSO.
- Nova conta. Se nada corresponder, uma conta é criada automaticamente com o papel de editor. O nome de usuário vem da parte local do email (com caracteres inválidos removidos), recorre a
sso_usere recebe um número anexado se o nome já estiver em uso (até 100 tentativas).
Toda conta é de um tipo ou de outro: a criação automática de contas significa que visitantes que completarem um login SSO terão acesso de editor ao seu site. Certifique-se de que seu provedor de identidade permita apenas as pessoas que você quer como editores. Uma conta criada automaticamente por SSO também é registrada como um evento de auditoria.
Suspender um usuário também bloqueia seus logins SSO, já que usuários suspensos são negados com a mesma mensagem de acesso negado de qualquer login com falha, após um curto atraso.
Contas vinculadas
Um usuário conectado pode ver se sua conta está vinculada ao SSO na sua própria página Account, sob o título Single Sign-On (“Linked to oauth”).
Desligando o SSO
Desmarque a caixa Enable SSO em Settings → Security para remover o botão de login e desabilitar o login por SSO. Você também pode redefinir toda a aba Security para os padrões com o controle de redefinição da seção Security, o que desliga o SSO e limpa os campos Client ID, Authorization URL, Token URL e Userinfo URL.