Registo de aplicação SAML 2.0

O registo de aplicação SAML 2.0 do FoxIDs permite-lhe ligar uma aplicação baseada em SAML 2.0.

SAML 2.0 é um standard de autenticação e autorização baseado em XML que permite single sign-on (SSO) seguro entre um identity provider (IdP) e um service provider (SP). O FoxIDs suporta tanto SP-initiated login como IdP-initiated login.

FoxIDs SAML 2.0 application registration

A sua aplicação torna-se uma SAML 2.0 Relying Party (RP) e o FoxIDs atua como SAML 2.0 Identity Provider (IdP).

O FoxIDs suporta os bindings SAML 2.0 redirect e post.

O FoxIDs também encaminha um login hint a partir do URL do pedido SAML Authn usando o parâmetro query login_hint ou LoginHint quando o pedido não inclui um NameID. Isto permite que relying parties como Microsoft Entra ID e Okta pré-preencham o identificador do utilizador na experiência de login do FoxIDs.

Um registo de aplicação expõe metadata SAML 2.0, permitindo à sua aplicação descobrir o Identity Provider (IdP) SAML 2.0.

O FoxIDs suporta os perfis SAML 2.0 de login, logout e single logout. O perfil Artifact não é suportado.

A metadata SAML 2.0 gerada pelo FoxIDs inclui informação de logout e single logout apenas se o logout estiver configurado no registo de aplicação SAML 2.0.

O FoxIDs suporta certificados RSA e ECDSA como certificados de validação de assinatura SAML. A validação de assinatura pode aceitar vários algoritmos permitidos, tornando possível confiar em relying parties que assinam SAML requests com certificados RSA ou ECDSA, mantendo RSA-SHA-1 legado desativado por predefinição.

Guias práticos:

Configuração

Como configurar a sua aplicação como SAML 2.0 Relying Party (RP).

Endpoints metadata

  • Metadata IdP: https://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/idpmetadata (substitua tenant-x, environment-y e application-saml-pr1 pelos seus valores).
  • Endpoint alternativo único: o endpoint Authn também devolve a metadata IdP quando chamado com GET e sem SAMLRequest. Isto permite que parceiros que exigem um único URL tanto para descarregar metadata como para pedidos Authn usem o mesmo endereço, por exemplo https://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/authn. Quando o mesmo endpoint recebe um SAML AuthnRequest via redirect ou post binding, executa o fluxo de login normal.

Um registo de aplicação pode suportar login via vários métodos de autenticação ao adicionar o nome do método de autenticação ao URL.

Por exemplo, https://foxids.com/tenant-x/environment-y/application-saml-pr1(login)/saml/idpmetadata ou /saml/authn direciona o método login. Também pode usar a notação predefinida * para ativar login com todos os métodos de autenticação.

O ecrã seguinte mostra a configuração de um registo de aplicação SAML 2.0 do FoxIDs no FoxIDs Control Client. Aqui a configuração é criada a partir da metadata da aplicação. Os claims emitidos são limitados ao conjunto configurado e pode usar a notação * para emitir todos os claims.

Opções de configuração adicionais ficam disponíveis ao clicar em Show advanced.

Configure SAML 2.0

Pode modificar o conjunto de claims SAML 2.0 e implementar claim tasks com transformações e tarefas de claims. Se criar um novo claim, adicione o claim ou * à lista Issue claims para emitir o claim para a sua aplicação.

Segurança e interoperabilidade

As definições avançadas de segurança SAML estão disponíveis ao clicar em Show advanced no registo de aplicação SAML 2.0.

  • Signature algorithm controla o algoritmo que o FoxIDs usa ao assinar SAML responses ou assertions. RSA-SHA-256 é a predefinição.
  • Signature validation algorithms é uma allowlist para SAML requests e mensagens de logout assinadas recebidas da relying party. A allowlist predefinida inclui os algoritmos suportados RSA-SHA-256/384/512 e ECDSA-SHA-256/384/512 e exclui RSA-SHA-1.
  • Os certificados de validação de assinatura SAML suportam certificados RSA e ECDSA, para que uma relying party possa usar ambos os tipos de certificado ao assinar SAML requests e mensagens de logout.
  • Encrypt authn response encripta a assertion na SAML authentication response. Quando ativado, deve ser indicado o relying party encryption certificate e, se necessário para interoperabilidade, podem ser selecionados Encryption algorithm e Key encryption algorithm.

Os algoritmos de data encryption suportados são AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-GCM, AES-192-GCM e AES-256-GCM. AES-256-CBC é a predefinição.

Os algoritmos de key encryption suportados são RSA 1.5, RSA-OAEP e XML Encryption 1.1 RSA-OAEP. RSA-OAEP é a predefinição. Use RSA 1.5 apenas quando uma relying party antiga o exigir.

Exigir autenticação multifator (MFA)

A SAML 2.0 Relying Party (RP) pode exigir MFA incluindo urn:foxids:mfa em RequestedAuthnContext.AuthnContextClassRef. Pode combiná-lo com valores mais específicos, como urn:foxids:link. Consulte pedir MFA a partir das aplicações.

Pode encontrar código de exemplo em AspNetCoreSamlSample e no respetivo ficheiro SamlController.cs. A propriedade AuthnContextClassRef pode ser definida no método Login em SamlController.cs:

public IActionResult Login(string returnUrl = null)
{
    var binding = new Saml2RedirectBinding();
    binding.SetRelayStateQuery(new Dictionary<string, string>
    {
        { relayStateReturnUrl, returnUrl ?? Url.Content("~/") }
    });

    var saml2AuthnRequest = new Saml2AuthnRequest(saml2Config)
    {
        // To require MFA
        RequestedAuthnContext = new RequestedAuthnContext
        {
            Comparison = AuthnContextComparisonTypes.Exact,
            AuthnContextClassRef = new string[] { "urn:foxids:mfa" },
        }
    };

    return binding.Bind(saml2AuthnRequest).ToActionResult();
}
A sua privacidade

A sua privacidade

Usamos cookies para melhorar a sua experiência nos nossos sites. Clique no botão 'Aceitar todos os cookies' para concordar com a utilização de cookies. Para recusar cookies não essenciais, clique em 'Apenas cookies necessários'.

Visite a nossa página de Política de Privacidade para saber mais