Por vezes, é necessário garantir que os utilizadores se autenticam sempre que acedem a uma aplicação, mesmo que tenham uma sessão ativa. Isto pode ser útil para reforçar a segurança ou cumprir requisitos de conformidade. Veja como configurar este comportamento para aplicações OpenID Connect (OIDC) e SAML.
Para aplicações OIDC: use o prompt=login parâmetro
O OpenID Connect (OIDC) permite forçar a autenticação do utilizador incluindo o parâmetro prompt=login no pedido de autorização. Isto garante que o utilizador é solicitado a iniciar sessão sempre que acede à aplicação, independentemente da sua sessão existente.
Exemplo: pedido de autorização OIDC
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
?response_type=code
&client_id=blf6xxxx-xxxx-xxxx-21cd2263xxxx
&redirect_uri=https://jwt.ms
&scope=openid profile User.Read
&prompt=login
Parâmetros-chave explicados
response_type=code: especifica o fluxo de código de autorização.client_id: o identificador único da aplicação.redirect_uri: o URI para onde redirecionar o utilizador após a autenticação.scope: define as permissões que a aplicação está a solicitar.prompt=login: força o utilizador a autenticar-se sempre.
Para aplicações SAML: use o ForceAuthn atributo
No SAML, pode obter o mesmo efeito definindo o atributo ForceAuthn para true no pedido de autenticação. Isto instrui o fornecedor de identidade (IdP) a exigir que o utilizador se autentique, mesmo que tenha uma sessão ativa.
Exemplo: pedido de autenticação SAML
<samlp:AuthnRequest
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="C2d2FH4oiJ5kL6mN7oPQgR9tOUvIw"
Version="2.0"
IssueInstant="2013-03-18T03:28:54.1839884Z"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<ForceAuthn>true</ForceAuthn>
<Issuer
xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
https://www.contoso.com
</Issuer>
</samlp:AuthnRequest>
Atributos-chave explicados
ForceAuthn=true: garante que o IdP exige que o utilizador se autentique.Issuer: identifica a entidade que faz o pedido de autenticação.
Porque forçar a autenticação?
Forçar a autenticação do utilizador sempre que acede a uma aplicação pode ser benéfico em cenários como:
- Segurança reforçada: impede o acesso não autorizado devido a sessões obsoletas.
- Conformidade: cumpre os requisitos regulamentares de autenticação frequente.
- Aplicações sensíveis: protege aplicações que tratam dados críticos ou confidenciais.
Conclusão
Quer use OIDC ou SAML, forçar a autenticação do utilizador garante um nível mais elevado de segurança e controlo sobre o acesso às suas aplicações. Use prompt=login para aplicações OIDC e ForceAuthn=true para aplicações SAML para implementar esta funcionalidade de forma eficaz.