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.
1. Descubra o diretório do órgão
Seção intitulada “1. Descubra o diretório do órgão”GET /auth/config?tenant=demoEsta 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.
2. Obtenha o token
Seção intitulada “2. Obtenha o token”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.
3. Chame a API
Seção intitulada “3. Chame a API”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 |
Segundo fator
Seção intitulada “Segundo fator”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.