Como forçar a autenticação do utilizador sempre com aplicações SAML e OIDC

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.

Deixe um comentário