Login social e corporativo
Deixe as pessoas entrarem com Google, Microsoft Entra ID, GitHub, Apple ou qualquer provedor OpenID Connect, e a sua aplicação continua recebendo tokens comuns do Authio.
O Authio atua como intermediário (broker). Para a sua aplicação, um login pelo Google ou pelo diretório de uma empresa é um login comum do Authio: o mesmo pedido de autorização, o mesmo código, tokens emitidos pelo realm para uma conta local. Por trás, o Authio leva a pessoa ao provedor, valida o que volta e decide a qual conta do realm ela pertence.
Você registra um provedor uma vez por realm e depois escolhe quais clients o mostram na tela de login, e em que ordem. A sua aplicação não muda nada para ganhar uma nova forma de entrar.
Provedores aceitos
| Tipo | Protocolo | Identidade lida de | Você informa |
|---|---|---|---|
| OpenID Connect | O ID token do provedor, validado | Client ID e segredo | |
| Microsoft Entra ID | OpenID Connect | O ID token do provedor, validado | Client ID, segredo e a authority do tenant |
| GitHub | OAuth 2.0 | A API de perfil e o e-mail primário verificado | Client ID e segredo |
| Apple | OpenID Connect | O ID token do provedor, validado, devolvido por form post | Client ID, Team ID, Key ID e a chave privada .p8 |
| OpenID Connect | OpenID Connect | O ID token do provedor, validado | Client ID, segredo e a authority |
Google, Microsoft Entra ID, GitHub e Apple são predefinições: os endpoints, os escopos e os nomes das claims já são conhecidos. O tipo OpenID Connect genérico lê os endpoints a partir da authority, o endereço-base onde o provedor publica o documento de descoberta, então ele serve para Okta, Auth0, Keycloak, outro realm do Authio ou qualquer diretório compatível.
Adicionar um provedor
Registre o provedor no Authio
Abra Provedores de identidade e escolha Criar. Escolha o realm e o tipo e dê o rótulo do botão que as pessoas vão ver. O alias é derivado do nome e passa a fazer parte do endereço de callback; nem o alias nem o tipo podem mudar depois que o provedor é registrado.
Registre o Authio no provedor
No console do próprio provedor, crie uma aplicação OAuth ou OIDC e registre o endereço de callback. A visão do provedor no Authio mostra esse endereço, pronto para copiar:
Endereço de callbackTexto simpleshttps://authio.api.hyperio.tech/realms/acme/broker/google/callbackPreencha as credenciais e o modo de vínculo
Cole o client ID e o segredo emitidos pelo provedor (para a Apple, o Team ID, o Key ID e a chave privada). Para Microsoft Entra ID e OpenID Connect genérico, informe a authority. Depois escolha como as contas são vinculadas.
O segredo é gravado uma vez e nunca mais exibido. Authorities e endpoints que apontam para uma rede privada — um IP não público,
localhost, nomes.localou.internal— são recusados ao salvar.Ofereça o provedor num client
Registrar um provedor o deixa disponível no realm; oferecê-lo o torna visível. Em Clients, abra o client, escolha Editar e vá até Opções de login: ofereça os provedores que quiser e coloque-os em ordem. A lista é salva inteira.
Teste
Comece um login pela sua aplicação. Embaixo do botão de entrar, o login hospedado agora mostra Continuar com Google, ou o rótulo que você escolheu.
Quando um pedido de autorização nomeia uma organização, o login mostra os provedores dessa organização, na ordem dela, no lugar dos do client.
Vínculo de contas e contas novas
Na primeira vez que alguém chega por um provedor, o Authio precisa decidir em que conta a pessoa entra. Uma identidade já vinculada a uma conta é sempre respeitada primeiro — mesmo que o e-mail tenha mudado no provedor. Para uma identidade nunca vista, quem decide é o modo de Vínculo de contas do provedor:
| Modo | O que acontece com uma identidade desconhecida |
|---|---|
| Somente contas vinculadas | Recusada. Só entram identidades já vinculadas a uma conta do realm. O provedor prova quem a pessoa é; não decide que ela pertence ao realm. |
| Sempre criar uma nova conta (padrão) | Uma conta nova é criada e vinculada. Nunca toca uma conta existente: se o e-mail já estiver em uso e o realm exigir e-mails únicos, o login é recusado. |
| Vincular por e-mail verificado | Entra na conta existente com o mesmo e-mail — só quando Confiar na claim de e-mail verificado deste provedor está ligado e o provedor declara que verificou o endereço. Caso contrário, nada é vinculado e o comportamento é o de criar conta. |
Contas criadas no primeiro login
- A conta é criada sem senha e vinculada ao client pelo qual a pessoa chegou. O webhook
user_createdé publicado. - Ela conta para a cota de usuários do plano dono do realm. Sem vaga, o login é recusado com uma mensagem que a pessoa entende.
- O nome de usuário é o do provedor; senão, o e-mail; senão, o alias do provedor e o subject unidos por um sublinhado.
- O e-mail só é marcado como confirmado quando o provedor é confiável e declarou que o endereço foi verificado.
Depois do provedor
Voltar do provedor não é o fim do login. O Authio trata esse retorno como qualquer outro primeiro fator:
- Ele conta como um fator, faça o provedor o que fizer, e é registrado como
fednoamr; o alias do provedor vai na claimidp. As etapas de segundo fator do client continuam valendo: Google mais uma aprovação por push resulta emacr2. - Valem as mesmas recusas do login por senha: conta suspensa ou inativa, sem acesso ao client, endereço de origem não aprovado.
- Se o client oferece passkeys e a conta não tem nenhuma, a etapa de cadastro é oferecida.
- Os erros do provedor viram uma mensagem fixa no login hospedado, com a marca e o idioma do client; uma pessoa que recusa no provedor é tratada como uma escolha, não como uma falha.
O que a sua aplicação pediu segue até o provedor na medida em que cada um entende:
| Provedor | Recebe do pedido original |
|---|---|
| OpenID Connect, Microsoft Entra ID | prompt=login, prompt=select_account, max_age e login_hint |
prompt=select_account, max_age e login_hint; prompt=login é enviado como max_age=0 | |
| GitHub | Só prompt=select_account |
| Apple | Nenhum deles |
Papéis a partir das claims do provedor
Um provedor pode conceder papéis. Na aba Acesso do provedor, adicione regras que transformam uma claim enviada pelo provedor — groups contendo financeiro, um departamento, um tenant — num papel do realm. As regras rodam em todo login federado.
| Parte da regra | Valores |
|---|---|
| Comparação | Equals (valor exato), Contains (item de uma lista), StartsWith (prefixo, para caminhos como acme/engineering/backend) ou Present (a claim existe). As comparações diferenciam maiúsculas de minúsculas. |
| Quando a claim não vem | Withdraw retira o papel (o padrão), Keep mantém, Refuse recusa o login, para claims indispensáveis. |
Uma claim que chega e não casa sempre retira o papel. As regras só mexem nos papéis concedidos pelas regras do mesmo provedor: papéis dados à mão ou por grupo nunca são retirados. Antes de salvar, a pré-visualização mostra o que uma regra concederia ou retiraria, reproduzindo o último login real de uma pessoa ou claims que você digita.
Como o broker protege o login
- PKCE com
S256em todos os provedores, inclusive os confidenciais, umstateopaco de uso único válido por 15 minutos e umnonceconferido no ID token. - O ID token do provedor é validado por inteiro: assinatura contra as chaves publicadas, emissor, audiência e validade.
- Só os provedores oferecidos no client podem ser usados a partir do login dele, e só enquanto estiverem ativos.
- As chamadas ao provedor, inclusive ao documento de descoberta e às chaves dele, vão só para endereços públicos e nunca seguem redirecionamentos.
- A sua aplicação nunca recebe os tokens do provedor, só um código comum do Authio.
Ocultar e remover um provedor
Ocultar um provedor em Provedores de identidade o deixa inativo: o botão some de todas as telas de login e o broker recusa logins por ele. Mostrar de novo é imediato.
Remover um provedor mantém as contas que chegaram por ele, mas elas perdem esse caminho de entrada. Quem não tem senha precisa de outro meio de entrar, como uma redefinição de senha ou uma passkey.