Auth21 Kernel | Console
Documentação Auth21 Kernel
Guia direto para integrar a Auth21 Kernel em minutos: quick start, npx @auth21/js install @auth21/js, escolha do modo certo, exemplos prontos e passos mínimos de ponta a ponta.
SDK oficial
npx @auth21/js install @auth21/js
Veja a instalação do SDK Auth21 no mesmo fluxo da plataforma
Este bloco segue o mesmo padrão visual do vídeo da landing. Quando você tiver a gravação final da instalação, basta trocar a mídia por aqui.
Precisa da versão técnica com endpoints, sessão, tokens, revogação e modos em detalhe? Abrir documentação para desenvolvedores
Docs
Documentação principal
Comece Aqui
Fluxo base primeiro
Feche primeiro OAuth classico com /authorize, /token e /userinfo. Depois ative QR, Bridge ou Client embed.
First Success
Login funcionando rapido
Comece pelo caminho Hosted com npx @auth21/js install @auth21/js e replique o fluxo mínimo por stack: callback, userinfo, sessão local e rota protegida.
Developers
Referencia tecnica separada
Quando você já sabe o modo que quer usar, abra a versão técnica com contrato OAuth, sessão global, revogação e checklist de produção.
Ir para docs de devSeguranca
Step-up em 3 blocos
Access Guard decide, 2FA verifica e Email Studio personaliza a entrega.
Ver stack de segurança2FA
Email Studio + 2FA
Página dedicada para placeholders, OTP, link de verificação, Hub, modelo padrão e template próprio.
Abrir docs-mail2faVerification
Challenge para qualquer ação
Use a camada de verificação da Auth21 para login, troca de senha, alteração de email, admin action e fluxos customizados.
Abrir docs-verificationTrust Center
Readiness em uma unica leitura
Consolide Sandbox, Release Guard, drift de configuração e sinais de prontidão operacional em um único painel.
Ver operaçãoSession Center
Operar sessões de identidade
Liste sessões ativas, veja origem, expiração, device_id e corte sessões específicas ou todas de um subject.
Ver identity operationsModos
Escolha por identidade
Hosted, Bridge, Client embed, Enterprise e cenarios com QR.
Comparar modosIntegracoes
Documentação por ecossistema
Okta
Integração enterprise
Federation, Bridge, claims mapping e a narrativa de modernização sem migrar usuários.
Abrir docs da OktaIntegração de onboarding
Google Login, Workspace, PKCE e callback validation para adoção rápida e limpa.
Abrir docs do GoogleOperação
Pronto para staging
Valide antes de subir: matriz de readiness, erros mais comuns e checklist mínimo do ambiente.
Ir para staging-readyIntrodução
A Auth21 Kernel é um provedor OAuth 2.0 / OpenID Connect com quatro pilares operacionais:
Hosted, Bridge, Client embed e QR solo.
O fluxo final continua padrão: sua aplicação recebe code, troca em /token e consulta /userinfo.
O que muda entre os modos é onde a identidade nasce. O que não muda é o contrato OAuth/OIDC, a sessão global da Auth21, a rotação de refresh token, a revogação por sessão e o uso de PKCE S256 no caminho moderno.
Quick Start
Se você quer sair do zero rápido, comece por Hosted. Ele é o caminho mais curto para validar
callback, PKCE, /token, /userinfo e sessão local da sua app.
First Success recomendado
Se a meta for chegar no primeiro login funcionando em menos de 10 minutos, siga o guia
docs/FIRST_SUCCESS_HOSTED_10_MIN.md com
npx @auth21/js install @auth21/js, o SDK oficial
@auth21/js e o exemplo
examples/js-ts-first-success/.
- Crie a app em OAuth & Apps.
- Cadastre a
redirect_uriexata e copieissuer,client_ideclient_secret. - Inicie o login pelo seu backend com
state,code_verifierecode_challenge_method=S256. - No callback, valide
state, troquecodeem/tokene consulte/userinfo. - Crie sua sessão local e limpe os artefatos temporários de OAuth.
Golden path
/authorize -> callback backend -> /token -> /userinfo -> sessão local
Checklist console
- App OAuth ativa e com modo de identidade certo.
redirect_uricadastrada exatamente como será usada no start e no token exchange.- Secretos guardados no backend, nunca no browser.
- PKCE S256 validado no endpoint de start login.
- Usuário de teste ativo para validar
/userinfo. - Se usar QR, chave/entrada QR ativa para a app correta.
- Se usar iframe,
embed_parent_originsprecisa conter a origem exata do site pai. - Se usar aprovação mobile no sistema cliente, a URL cliente de retomada/aprovação precisa estar pública e validada.
- Integration Check e Sandbox executados antes de staging.
Processo completo
- Seu backend gera
state,code_verifierecode_challenge. - Seu frontend ou backend envia o usuario para
/authorize. - A Auth21 autentica conforme o modo ativo: Hosted, Bridge, Client embed ou QR solo.
- A Auth21 cria ou reaproveita a
identity_sessionglobal. - A Auth21 devolve
codepara suaredirect_uri. - Seu backend troca o
codeem/token. - Seu backend consulta
/userinfoe cria a sessão local da sua aplicação.
Fluxo oficial
O fluxo oficial recomendado continua server-to-server no callback. A Auth21 aceita qualquer stack, desde que o backend:
valide state, envie code_verifier, proteja o client_secret e trate error antes de esperar code.
const url = new URL(`${process.env.AUTH21_ISSUER}/authorize`);
url.searchParams.set("response_type", "code");
url.searchParams.set("client_id", process.env.AUTH21_CLIENT_ID);
url.searchParams.set("redirect_uri", process.env.AUTH21_REDIRECT_URI);
url.searchParams.set("scope", "openid profile email");
url.searchParams.set("state", state);
url.searchParams.set("code_challenge", challenge);
url.searchParams.set("code_challenge_method", "S256");
const tokenResp = await fetch(`${process.env.AUTH21_ISSUER}/token`, {
method: "POST",
headers: { "Content-Type": "application/json", "X-OAuth-Backend": "1" },
body: JSON.stringify({
grant_type: "authorization_code",
code,
client_id: process.env.AUTH21_CLIENT_ID,
client_secret: process.env.AUTH21_CLIENT_SECRET,
redirect_uri: process.env.AUTH21_REDIRECT_URI,
code_verifier: verifier
})
});
Exemplo completo
/api/auth21/loginmonta OAuth com state + PKCE./api/auth21/callbacktroca token, consulta userinfo e cria sessao local./apprepresenta sua area autenticada.
Explicação
PKCE: trate como padrão do fluxo moderno. A Auth21 trabalha com S256 e o callback backend deve guardar o code_verifier.
Sessão global: o OAuth termina em tokens, mas a Auth21 ancora tudo em identity_session, inclusive revogação e refresh rotation.
Refresh token: a família é rotacionada. Reuso de refresh token invalida a sessão raiz e derruba a árvore de acesso.
UserInfo: o access token precisa passar em assinatura, expiração, aud e sessão ainda ativa.
Diagnóstico
Use o diagnóstico do painel para validar app, callback, PKCE, contrato por modo e respostas do provedor antes de culpar sua stack.
Guarde sempre o trace_id das falhas.
- Status agregado:
pass,warnoufail. - Checks com
error_codeestável e ação recomendada. - Correlação com logs do core e troubleshooting rápido.
Sandbox
A Sandbox valida configuração, contrato de endpoints e cenários por modo sem emitir login real, token real ou sessão produtiva.
- Confere app, allowlist, secretos e contrato básico.
- Ajuda a validar Hosted, Bridge e QR antes de staging.
- Retorna
trace_idpara suporte e auditoria.
Erros comuns
A21-AU-001 parametros obrigatorios ausentes
Falta client_id ou redirect_uri no start login.
invalid_state
Seu backend perdeu o estado entre o start e o callback.
invalid_grant
Quase sempre e redirect_uri divergente, PKCE errado ou code reutilizado.
QR abre, mas o desktop não conclui
Valide a chave QR da app, a aprovação mobile, a origem embed quando houver iframe e se o desktop ainda recebeu callback válido para concluir o OAuth no backend.
Chave embed não reconhecida
A chave QR/embed usada pela sua app não é mais a chave atual registrada em OAuth & Apps. Confirme a chave vigente ou gere uma nova antes de retestar.
Pedido QR exige aprovação no sistema cliente
Esse erro indica que a app foi configurada para concluir a aprovação no seu domínio. Revise a URL cliente de retomada/aprovação e confirme se ela está pública, mobile-friendly e com o segredo de aprovação correto no backend.
Desktop mostra autorizado, mas não redireciona
Quando o QR roda em iframe ou shell própria, valide a origem permitida, o recebimento de postMessage no parent e se a sua aplicação ainda faz a troca final de code em /token.
Matriz staging-ready
| Check | Criticidade | Passa quando |
|---|---|---|
issuer_configured | Critico | Issuer correto e acessivel |
pkce_ready | Critico | Fluxo usa S256 |
redirect_uri_allowlist_valid | Critico | Callback identica em start e token |
token_endpoint_reachable | Aviso | Backend chega em /token |
userinfo_endpoint_reachable | Aviso | Backend chega em /userinfo |
Password Protection
Password Protection e a camada para operacoes sensiveis ligadas a credencial. Ele nao substitui o login Hosted nem o 2FA do fluxo principal; ele adiciona protecao extra em acao critica quando a jornada pede confirmacao adicional.
Sessao dedicada
2FA + Email Studio
Esta e a secao dedicada para explicar como o 2FA por email funciona na Auth21, como o Email Studio entra no fluxo, quais placeholders o motor entende e como escolher entre o email padrao da Auth21 e um modelo proprio salvo no Studio.
Resumo operacional
2FA ativa politica e motor. Email Studio define visual e copy do email. A app cliente continua decidindo quando disparar challenge e verify.
1. Politica
A tela 2FA define TTL, tentativas, escopos de atuacao e o modo do template do email.
2. Origem do email
A app pode usar o Padrao Auth21 ou um modelo salvo no historico do Email Studio.
3. Verificacao
O usuario pode digitar o OTP ou clicar no link de verificacao hospedado pela Auth21, de acordo com o template escolhido.
Como o usuario escolhe o email do 2FA
- Cria ou ajusta o template no
Email Studio. - Salva esse template para ele entrar no historico do Studio.
- Abre o Email Studio Hub pela pagina
2FA. - Clica em um card do historico.
- Confirma em Salvar.
- O modelo fica marcado como ativo e nao depende de clicar em
Salvar 2FAfora do Hub.
Regra importante do Hub
O Hub deve trabalhar com o historico do Studio. O modelo ativo do 2FA e sempre um item salvo do historico, nao o estado solto do editor.
Padrao Auth21 vs Studio
Padrao Auth21
Use quando voce quer um fallback confiavel, sem depender de um template proprio da app.
Modelo do Email Studio
Use quando a app quer logo propria, copy propria, CTA proprio e uma experiencia alinhada com a sua marca.
Placeholders suportados
O motor do 2FA substitui placeholders no template do Studio por valores reais do runtime. Eles podem ser usados no titulo, no corpo e no rodape.
{{app_name}}
{{action}}
{{code}}
{{minutes}}
{{verification_url}}
{{verification_link}}
{{otp_url}}
{{user_name}}
{{nome_do_usuario}}
[Nome do usuario]
[Nome do usuário]
[nomedousuario]
[Link de verificacao]
[Link de verificação]
Recomendacao: sempre envie user_name, name ou full_name no POST /two-factor/challenge para o email sair com o nome real do usuario.
Exemplo de template compativel com 2FA
Titulo:
Autorizacao de Login
Corpo:
Ola, [Nome do usuario],
Recebemos uma solicitacao de verificacao para a sua conta em {{app_name}}.
Use o codigo {{code}} para continuar.
Se preferir, abra:
[Link de verificacao]
Botao:
Abrir verificacao segura
Se o cliente quiser um email sem botao, basta deixar o button_text vazio. Se tambem quiser remover textos extras, pode deixar footer_text e footer_url vazios.
OTP manual e link de verificacao
OTP manual
O usuario pega o codigo no email e informa na pagina hosted de OTP ou na tela do cliente que estiver aguardando o codigo.
Link de verificacao
O usuario pode clicar no link do email para abrir a pagina de autorizacao por link da Auth21. Esse token expira com o challenge e morre no momento da aprovacao.
URLs do runtime
verification_link/verification_url: pagina de autorizacao por link.otp_url: pagina hosted da Auth21 com campo OTP.
Checklist rapido
- A politica da app esta ativa na tela
2FA? - O escopo certo esta habilitado para a acao?
- O modelo salvo no Hub esta realmente marcado como ativo?
- O template usa placeholders suportados pelo motor?
- O backend envia
user_nameoufull_nameno challenge? - O botao foi removido de proposito ou o
button_textficou vazio?
2FA
Hoje a Auth21 tem dois caminhos reais de 2FA: TOTP no login Hosted e step-up por email no core de seguranca. O Hosted ja traz caminho de MFA TOTP no proprio login. Para desafios operacionais e step-up, o modulo de 2FA por email continua integrado ao Email Studio. Ainda assim, o estado operacional deve ser tratado como implementado, mas dependente de configuracao e validacao por ambiente.
Sessao dedicada
Para a explicacao completa sobre politica, Email Studio, placeholders, OTP, link de verificacao e escolha do modelo ativo, use a pagina dedicada Auth21 Mail2FA.
O que a tela 2FA faz hoje
Ativar 2FA no console nao injeta automaticamente uma tela nova no seu app. A tela de 2FA da Auth21 ativa a politica por app e o motor de verificacao. A sua aplicacao ainda precisa chamar os endpoints da Auth21 e decidir quando pedir o codigo ao usuario.
- TOTP fica no caminho de login do usuario hosted.
- Email 2FA fica melhor apresentado como step-up e confirmacao operacional.
- Entrega por email depende da infraestrutura de envio do ambiente.
Como integrar o 2FA por email
- Ative a politica da app no console 2FA e ajuste TTL e tentativas.
- No backend da sua app, chame
POST /two-factor/challengecomclient_id,client_secret,subject,emaileaction. - Mostre no seu frontend a tela para o usuario digitar o codigo de 6 digitos.
- No backend da sua app, chame
POST /two-factor/verifycomchallenge_tokenecode. - So conclua a sessao local ou a acao sensivel depois de receber
status=pass/decision=allow.
Contrato minimo dos endpoints
POST /two-factor/challenge
Autentique a app com Authorization: Basic base64(client_id:client_secret) ou envie client_id e client_secret no corpo JSON.
{
"subject": "user-123",
"email": "user@empresa.com",
"action": "login_step_up"
}
Resposta esperada quando o envio funciona:
{
"status": "pass",
"challenge_token": "token-gerado-pela-auth21",
"method": "email",
"reason_code": "TWO_FACTOR_EMAIL_SENT",
"expires_at": "2026-05-28 16:00:00",
"trace_id": "..."
}
POST /two-factor/verify
Use a mesma autenticacao da app e envie o token do challenge junto com o codigo digitado pelo usuario.
{
"challenge_token": "token-gerado-pela-auth21",
"code": "123456",
"action": "login_step_up"
}
Resposta esperada quando a validacao passa:
{
"status": "pass",
"decision": "allow",
"reason_code": "TWO_FACTOR_VERIFIED",
"verified_at": "2026-05-28 15:55:00",
"trace_id": "..."
}
O que o backend da sua app precisa fazer
- Nao chame
/two-factor/challengedo browser. Chame sempre do backend para manter oclient_secretfora do frontend. - Guarde temporariamente o
challenge_tokenna sessao local ou em storage server-side enquanto o usuario digita o codigo. - Se o verify falhar, nao crie a sessao local e nao libere a acao sensivel.
- Se o verify passar, marque o step-up como concluido na sua sessao local e so entao finalize o login ou a operacao.
- Guarde o
trace_iddas falhas para diagnostico e suporte.
Quando isso aparece sozinho
So no Hosted Login com TOTP, quando o usuario hosted ja tem totp_enabled=1 e totp_secret configurado. Fora desse caso, a UI do passo 2FA e responsabilidade da sua aplicacao.
const challenge = await fetch(`${AUTH21_ISSUER}/two-factor/challenge`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Basic " + Buffer.from(`${CLIENT_ID}:${CLIENT_SECRET}`).toString("base64")
},
body: JSON.stringify({
subject: user.id,
email: user.email,
action: "login_step_up"
})
}).then((r) => r.json());
const verification = await fetch(`${AUTH21_ISSUER}/two-factor/verify`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Basic " + Buffer.from(`${CLIENT_ID}:${CLIENT_SECRET}`).toString("base64")
},
body: JSON.stringify({
challenge_token: challenge.challenge_token,
code: userCode,
action: "login_step_up"
})
}).then((r) => r.json());
Verification Layer
Verification Layer e a forma de reaproveitar o mesmo motor de challenge da Auth21 fora do login puro. Em vez de tratar OTP, approve-link e cross-device apenas como parte do 2FA, a app pode usar a mesma infraestrutura para qualquer acao sensivel.
Fluxo resumido
- A app chama
POST /verification/challenge. - A Auth21 gera o challenge e devolve
challenge_token,otp_urleapproval_url. - O usuario conclui a verificacao por OTP manual ou approve-link.
- A app chama
/verification/verifyou/verification/approve. - Se houver cross-device, a app consulta
/verification/status.
Para a explicacao completa da camada, dos casos de uso e dos endpoints, use a pagina dedicada Auth21 Verification Layer.
Trust Center
Trust Center e a visao unica de readiness operacional da app. Em vez de obrigar o integrador a abrir Sandbox e Release Guard em telas separadas, ele consolida evidencias recentes, drift de configuracao e o estado geral de confianca da app em staging e producao.
- resume a ultima Sandbox executada;
- mostra readiness atual de staging e producao;
- exibe ultima publicacao e sinais de config drift;
- entrega uma leitura rapida de
ready,warnoublocked.
Session Center
Session Center fecha a camada inicial de Identity Operations da Auth21. Ele nao troca a autenticacao; ele ajuda a operar sessoes globais reais depois que a autenticacao ja aconteceu.
- lista sessoes ativas por organizacao;
- mostra
source,device_id, IP de autenticacao, expiracao e subject; - permite revogar sessao especifica;
- permite revogar todas as sessoes ativas de um mesmo subject.
Limite atual
A leitura rica de navegador ainda nao e o foco aqui. O Session Center atual usa o contexto real que o storage de identidade sustenta hoje: source, device_id, auth_ip, expiracao e revogacao.
Access Guard
Access Guard e a camada de decisao. Ele existe para dizer se uma operacao passa, falha ou exige step-up. Essa e uma das diferencas fortes da Auth21: autenticar e uma parte do problema; decidir acao sensivel e a outra.
- Decide
allow,denyou escalonamento. - Pode acionar 2FA quando a operacao pede elevacao de confianca.
- Faz mais sentido como produto de seguranca transacional do que como detalhe de OAuth.
Email Studio
Email Studio funciona hoje como camada de branding, configuracao e historico para emails operacionais. Ele nao deve ser descrito sozinho como garantia de entrega: a parte visual existe, mas o envio real continua dependente da infraestrutura de email do ambiente.
Sessao dedicada
Quando o Email Studio estiver sendo usado para 2FA, a explicacao completa fica em Auth21 Mail2FA. La estao o fluxo do Hub, os placeholders e as regras de compatibilidade com o motor do 2FA.
- Use como camada de confianca e consistencia visual para desafios por email.
- Guarde branding e historico por app/tenant.
- Trate como suporte operacional, nao como prova de que o email ja esta validado em qualquer ambiente.
QR Reader Starter
Use o starter quando voce precisa adaptar a experiencia QR ao seu front sem quebrar o contrato do provedor. O importante nao e recriar OAuth; e respeitar o pareamento, a aprovacao e a finalizacao do fluxo.
- Trate QR como entrada visual do mesmo fluxo OAuth, nao como login separado.
- Se o desktop usar uma shell propria, a Auth21 ainda deve controlar a parte sensivel do QR e da aprovacao.
- Quando a app cliente concluir a aprovacao no mobile, ela ainda precisa finalizar o OAuth no backend do desktop.
- Em cenarios com iframe, valide sempre a origem do parent antes de processar o retorno.
Modelo recomendado
Desktop inicia o QR -> mobile autentica ou aprova -> Auth21 devolve code -> seu backend troca em /token e cria a sessao local.
Hosted + Embed
Use Hosted + Embed quando a identidade final continua na Auth21, mas a sua aplicacao quer controlar a casca da experiencia
com iframe, shell propria ou retorno por postMessage.
- O desktop inicia o mesmo OAuth padrao com
/authorizee PKCE. - A Auth21 resolve que o pedido esta em contexto embed e conduz o login Hosted ou o QR de handoff.
- Se houver QR, o mobile autentica na Auth21 e aprova o pedido.
- A Auth21 devolve
codepara o contexto embed. - Sua aplicacao valida a origem do retorno, troca o
codeem/tokene cria a sessao local.
Quando escolher
Quando voce quer usar a identidade Hosted da Auth21, mas precisa encaixar o fluxo na UX do seu produto sem abrir mao do callback seguro no backend.
Bridge + Embed
Use Bridge + Embed quando o login real continua no seu dominio, mas a jornada do utilizador precisa de UX embutida, retorno ao parent ou handoff desktop/mobile.
- O desktop inicia
/authorizenormalmente. - A Auth21 identifica que a app usa Bridge e pode abrir o caminho de embed/QR para o desktop.
- O mobile segue o handoff e volta para o seu sistema quando a aprovacao precisa ser concluida no seu dominio.
- O seu backend devolve a prova de identidade ou a prova de aprovacao no contrato esperado.
- A Auth21 continua o OAuth e a sua aplicacao conclui o fluxo no backend com
/token.
Ponto de atencao
Embed nao elimina a responsabilidade do Bridge. Sua aplicacao continua dona da prova de identidade no proprio dominio e da disciplina de callback seguro.
Por que o leitor fica no cliente
A Auth21 nao oferece uma pagina generica e definitiva de leitura por camera para todos os cenarios porque a captura do QR, a permissao de camera, o contexto do dispositivo e a experiencia mobile precisam respeitar o dominio, a politica e o produto do cliente.
- A permissao de camera precisa ser pedida no contexto da aplicacao que o utilizador reconhece.
- O cliente pode precisar de branding, roteamento, login local ou sessao propria antes de aprovar um pending.
- O comportamento em mobile, PWA, app webview ou navegador corporativo varia e costuma ser responsabilidade do produto que esta recebendo o utilizador.
- A Auth21 continua dona do contrato de autenticacao e aprovacao, mas a camada de leitura precisa ser adaptavel ao canal do cliente.
O que a Auth21 entrega
Contrato, handoff, pending, aprovacao, retorno OAuth e regras de seguranca. O cliente entrega a pagina de leitura, a UX mobile e a integracao com a propria sessao local quando isso fizer parte do fluxo.
Boas praticas para criar a pagina de leitura
- Limite a pagina de leitura a mobile ou contextos com camera real.
- Use HTTPS e contexto seguro do navegador para permissao de camera.
- Mostre claramente para qual aplicacao o utilizador esta aprovando acesso.
- Leia apenas QRs esperados para a sua jornada e trate codigos desconhecidos como invalidos.
- Nunca exponha
client_secret,approval_secretou qualquer chave sensivel no frontend. - Quando a aprovacao exigir prova assinada, envie essa prova do backend, nao do browser.
- Se o desktop usar
iframe, valide sempre a origem antes de aceitarpostMessage. - Implemente estados visuais claros: aguardando leitura, lido, aprovado, expirado e falhou.
- Mostre acao de retentativa quando o QR expirar ou quando o pedido ja tiver sido consumido.
Boas praticas para o funcionamento
- Inicie sempre do mesmo pedido OAuth do desktop; nao crie um login paralelo no mobile.
- Garanta que a chave QR/embed usada pela aplicacao e a chave atual registrada em OAuth & Apps.
- Se a aprovacao acontecer no seu dominio, publique uma URL cliente valida para receber o handoff mobile.
- Conclua o fluxo no backend com o mesmo
redirect_uriusado no inicio. - Trate QR, handoff e leitor como continuidade do OAuth, nao como mecanismo isolado de autenticacao.
Modos avancados
A Auth21 separa modo de identidade de modo de entrada. Isso importa porque o inicio muda,
mas o final continua o mesmo: sua aplicacao recebe code e chama /token.
Hosted
A Auth21 mostra a tela de login, cria a sessao global e devolve o usuario autenticado para sua callback. E o melhor ponto de partida para nova integracao.
Bridge
O login continua no seu dominio e a Auth21 recebe a prova assinada no callback. Esse modo e forte para legado, ERP, portal interno e cenarios onde voce nao quer mover a senha para o provedor.
Embed
Embed e camada de experiencia. Ele pode aparecer por cima de Hosted, Bridge, Enterprise e Client embed. Nao trate embed como novo protocolo; trate como contexto de UX com regra de origem e handoff quando necessario.
Se sua app usar iframe ou shell propria, continue tratando a Auth21 como dona do contrato de callback. O seu papel e iniciar o fluxo, validar a origem do retorno e concluir o OAuth no backend.
QR
QR solo e pilar da Auth21, nao detalhe visual. O desktop inicia, o mobile aprova e a Auth21 finaliza o fluxo mantendo o contrato OAuth padrao no backend.
- Se a app cliente tiver pagina propria no desktop, o QR ainda precisa respeitar a chave embed atual da app.
- Se a aprovacao acontecer no dominio do cliente, esse dominio precisa expor uma URL valida para receber o pedido mobile e concluir a autorizacao.
- Mesmo quando o mobile aprova com sucesso, o desktop ainda depende da entrega correta do retorno para trocar o
codeno backend.
Client embed e Enterprise
Client embed autentica no dominio do cliente e retorna para a Auth21 via /client-session-assert.
Enterprise compartilha o caminho publico do Bridge com SSO externo e callback assinado.