Análise da solução de autenticação para APIs
Gabarito: letra B. A alternativa B descreve corretamente uma arquitetura com provedor de identidade central que aplica 2FA, utiliza os fluxos OAuth 2.0 com OpenID Connect e emite tokens JWT para viabilizar o SSO — atendendo simultaneamente aos três requisitos: delegação de acesso sem exposição de senha, autenticação única e suporte a segundo fator.
Alternativa A — ❌ Incorreta
Cada microsserviço com seu próprio banco de senhas e tokens proprietários contraria o requisito de SSO (não há identidade centralizada) e expõe senhas em cada serviço, ferindo a necessidade de não expor a senha ao consumidor. Além disso, 2FA por SMS é menos seguro, mas mesmo que fosse aceitável, a falta de um provedor central inviabiliza o SSO.
Alternativa B — ✅ Correta ⟵ GABARITO
A solução com provedor de identidade (IdP) central atende:
(i) OAuth 2.0 permite que o cliente obtenha um token de acesso em nome do usuário sem jamais ver a senha, através do fluxo de authorization code.
(ii) OpenID Connect (camada de identidade sobre OAuth 2.0) emite tokens de identidade JWT, padronizando a informação do usuário e permitindo SSO entre aplicações que confiam no IdP.
(iii) O IdP pode integrar 2FA (como TOTP via aplicativo autenticador ou hardware token) no fluxo de login, conforme requisito.
Alternativa C — ❌ Incorreta
Certificados digitais de cliente para autenticação mútua TLS (mTLS) são robustos, mas o requisito de delegação (i) não é atendido: a autenticação é por certificado, não há fluxo de delegação de identidade. O SSO com tokens padronizados não se aplica (certificados não são tokens JWT). O 2FA na emissão dos certificados não se integra ao fluxo de login online, inviabilizando o requisito (iii).
Alternativa D — ❌ Incorreta
Biometria local em dispositivos móveis e sessões por cookies na Web são mecanismos específicos de cada plataforma. Não há protocolos de delegação (como OAuth) nem tokens padronizados; o SSO não é garantido sem um provedor central e sem tokens interoperáveis. O requisito (i) talvez seja atendido, mas a ausência de delegação e SSO falha nos itens (ii) e (iii) (o 2FA não é integrado ao fluxo de login).
Alternativa E — ❌ Incorreta
Um servidor de autorização central com OAuth 2.0 que emite tokens de acesso atende parcialmente (i) e (ii), mas o enunciado destaca que a autenticação de usuários permanece descentralizada e independente em cada aplicação. Isso quebra o SSO (requisito ii) e impossibilita a integração centralizada de 2FA (requisito iii). Além disso, sem um provedor de identidade que unifique a autenticação, o 2FA teria que ser implementado separadamente em cada app.
Conclusão: A alternativa B é a única que contempla integralmente delegação sem senha, SSO via tokens JWT e autenticação forte com 2FA integrado.