Configuração de SSO
Configuração de SSO
Este guia é para o administrador de TI que vai conectar um provedor de identidade (IdP) corporativo ao InterMIND. Após a configuração, os membros fazem login na página de login normal: Entrar com SSO → e-mail corporativo → seu IdP → de volta ao InterMIND.
Disponível em: planos Business e Enterprise Configurado por: proprietário ou administrador da equipe Protocolo: OpenID Connect (OIDC). O login via SAML 2.0 está em desenvolvimento — a configuração SAML é armazenada, mas ainda não pode ser usada para fazer login.
Pré-requisitos
- Um domínio verificado — verifique o domínio do seu e-mail por meio de um registro DNS TXT primeiro (veja Gerenciamento de Domínios). O login via SSO só aceita contas cujo domínio de e-mail tenha sido verificado pela sua equipe; este é o limite do tenant.
- Um IdP que suporte OIDC com discovery — ele precisa servir
/.well-known/openid-configurationna URL do Issuer. Okta, Microsoft Entra ID e Google fazem isso.
O que registrar no seu IdP
Crie uma OIDC Web Application no seu IdP com:
| Configuração | Valor |
|---|---|
| Redirect URI (callback) | https://intermind.com/api/auth/sso/callback — também exibido no card de SSO após você selecionar OIDC |
| Grant type | Authorization Code (PKCE S256 é usado automaticamente) |
| Scopes | openid email profile |
O ID token emitido pelo seu IdP precisa incluir o email do usuário, e o domínio desse e-mail precisa ser um dos seus domínios verificados — caso contrário, o login é recusado.
Em seguida, preencha o card SSO na página de Integrações:
| Campo | O que colar |
|---|---|
| Display Name | Qualquer rótulo que seus membros reconheçam |
| Issuer URL | O issuer do seu IdP — a URL que serve /.well-known/openid-configuration |
| Authorization URL | O authorization_endpoint desse documento de discovery |
| Client ID / Client Secret | Do app que você registrou |
O client secret é criptografado em repouso e nunca é retornado ao navegador depois de salvo.
Okta
- Console de administração → Applications → Create App Integration → método de login OIDC, tipo de aplicação Web Application
- Sign-in redirect URI:
https://intermind.com/api/auth/sso/callback - Atribua os usuários ou grupos que devem ter acesso
- Copie o Client ID e o Client Secret
- No InterMIND: Issuer URL = a URL da sua organização Okta (ex.:
https://acme.okta.com, ou o issuer do seu authorization server, comohttps://acme.okta.com/oauth2/default, se você usar um); Authorization URL = oauthorization_endpointem<issuer>/.well-known/openid-configuration
Microsoft Entra ID (Azure AD)
- Centro de administração do Entra → App registrations → New registration
- Plataforma Web, redirect URI
https://intermind.com/api/auth/sso/callback - Certificates & secrets → New client secret — copie o Value do secret imediatamente
- Client ID = o Application (client) ID na página Overview
- Garanta que o ID token traga o e-mail do usuário: Token configuration → Add optional claim → ID → email
- No InterMIND: Issuer URL =
https://login.microsoftonline.com/<tenant-id>/v2.0; Authorization URL =https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
Google Workspace
Não é necessário registrar um app. No card de SSO, escolha o tipo de provedor Google Workspace e salve — os membros nos seus domínios verificados fazem login com a conta Google e entram automaticamente na sua equipe. (O Google também pode ser conectado como um provedor OIDC genérico com o issuer https://accounts.google.com, caso você prefira credenciais de cliente explícitas.)
Testar a conexão
- Abra a página de login em uma janela privada/anônima
- Clique em Entrar com SSO e informe um e-mail corporativo em um domínio verificado
- Você é redirecionado para o seu IdP; após autenticar, volta ao InterMIND já logado
- O login é registrado no log de auditoria da equipe (exportável a partir da página Users) como
auth.logincom métodosso
Solução de problemas
| Sintoma | Causa |
|---|---|
| "SSO is not configured" após informar o e-mail | Nenhuma configuração de SSO habilitada corresponde a esse domínio de e-mail — verifique se o domínio está verificado e se o card de SSO foi salvo |
SSO login is not available: plan | O plano da equipe não inclui mais SSO |
SSO login is not available: domain-not-verified | O domínio ainda está pendente de verificação DNS |
SSO login is not available: config-incomplete | Client ID ou Client Secret ausente — salve o card de SSO novamente |
SSO login is not available: type-unsupported | A configuração armazenada é SAML — o login via SAML ainda não está disponível |
SSO IdP discovery failed | A Issuer URL está incorreta ou não serve /.well-known/openid-configuration |
| "login session expired, start again" | Mais de 5 minutos se passaram entre o início do login e o callback do IdP |
| Login recusado após o IdP redirecionar de volta | O IdP retornou um e-mail fora dos seus domínios verificados, ou nenhuma claim de email (Entra: adicione a claim opcional de email) |
Propriedades de segurança
Para questionários de segurança: o fluxo de SSO é Authorization Code com PKCE (S256), state e nonce; a assinatura do ID token é validada contra o JWKS do IdP, junto com issuer e audience; o IdP é autoritativo apenas para domínios verificados via DNS — uma asserção para qualquer outro e-mail nunca gera uma sessão; o client secret do OIDC é criptografado em repouso; cada login via SSO é registrado no log de auditoria da equipe. As verificações de plano, domínio e configuração são aplicadas no servidor tanto no início do login quanto no callback.