Pular para o conteúdo

Autenticação

O emMãos não tem um diretório único de usuários. Cada órgão tem o seu, e o órgão de uma requisição é derivado do emissor do token verificado.

Isso tem uma consequência prática: antes de fazer login, é preciso descobrir em qual diretório aquele usuário existe.

GET /auth/config?tenant=demo

Esta rota é pública. Não leva token. A resposta não contém segredo: são os identificadores que qualquer aplicação de página única já carrega no próprio pacote.

{
"userPoolId": "sa-east-1_XXXXXXXXX",
"userPoolClientId": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
"region": "sa-east-1",
"mfa": "optional"
}

A resposta é cacheável por cinco minutos.

Um slug que não existe naquele ambiente responde 404. Um slug malformado responde 400.

O login usa SRP: a senha não trafega. Use o SDK do provedor de identidade com os valores devolvidos acima; não existe endpoint de login no emMãos.

Você precisa do token de acesso, não do token de identidade.

Authorization: Bearer <access token>

O emissor do token decide a qual órgão a chamada pertence. Um token de outro órgão não é “negado por permissão”: ele simplesmente enxerga outro conjunto de dados.

Situação Resposta
Sem cabeçalho Authorization 401
Token inválido, expirado, ou de emissor desconhecido 403

O campo mfa da configuração diz o regime do órgão:

optional: o diretório não pede segundo fator. Trate isso como sem segundo fator, não como “MFA disponível”: a adesão espontânea é próxima de zero.

required: sem um TOTP inscrito não há token.

A virada também não afeta quem já está com sessão viva: renovar token não refaz o segundo fator. A cobertura leva até o prazo de expiração do refresh para se completar.