Método de autenticação SAML 2.0
Método de autenticação SAML 2.0 do FoxIDs que confia num Identity Provider (IdP) SAML 2.0 externo.
SAML 2.0 é um standard aberto para troca de dados de autenticação e autorização entre um Identity Provider (IdP) e um Service Provider (SP). Permite Single Sign-On (SSO), permitindo aos utilizadores iniciar sessão uma vez e obter acesso a várias aplicações sem se autenticarem novamente. Os dois fluxos SAML 2.0 são suportados: SP-Initiated Login, que é o fluxo predefinido, mais comum e recomendado, e IdP-initiated Login.
SAML 2.0 é amplamente usado em ambientes enterprise, onde permite federação de identidade segura entre organizações e aplicações diferentes.
Ao configurar um método de autenticação SAML 2.0 e um registo de aplicação OpenID Connect, o FoxIDs torna-se um bridge entre SAML 2.0 e OpenID Connect. O FoxIDs irá então tratar da ligação SAML 2.0 como Relying Party (RP) / Service Provider (SP) e, na sua aplicação, só precisa de lidar com OpenID Connect.
É possível configurar vários métodos de autenticação SAML 2.0 que depois podem ser selecionados por registos de aplicação OpenID Connect e registos de aplicação SAML 2.0.
Configure IdP-Initiated Login e encaminhe o login para aplicações SAML 2.0 e OpenID Connect.
O FoxIDs suporta os bindings SAML 2.0 redirect e post. Os perfis SAML 2.0 de login, logout e single logout são suportados. O perfil Artifact não é suportado.
Um método de autenticação expõe metadata SAML 2.0 e pode ser configurado com metadata SAML 2.0 ou adicionando manualmente os detalhes de configuração.
A metadata SAML 2.0 gerada pelo FoxIDs inclui informação de logout e single logout apenas se o logout estiver configurado no método de autenticação SAML 2.0.
O FoxIDs suporta todos os identity providers SAML 2.0 (IdP) e foi testado com uma vasta gama de IdP.
O FoxIDs suporta certificados RSA e ECDSA como certificados de validação de assinatura SAML para um IdP externo. A validação de assinatura pode aceitar vários algoritmos permitidos, tornando possível confiar em identity providers que assinam SAML responses com certificados RSA ou ECDSA, mantendo RSA-SHA-1 legado desativado por predefinição.
Guias práticos:
- Ligar Microsoft Entra ID
- Ligar PingIdentity / PingOne
- Ligar Google Workspace
- Ligar Microsoft AD FS
- Ligar NemLog-in (IdP dinamarquês)
- Ligar Context Handler (broker de identidade dinamarquês)
Ligar ambientes FoxIDs
Os ambientes FoxIDs podem ser ligados de duas formas:
- Environment Link para ambientes no mesmo tenant.
- OpenID Connect para ambientes no mesmo tenant ou em tenants diferentes.
Escolha Environment Link quando ambos os ambientes estiverem no mesmo tenant e quiser a configuração mais simples. Escolha OpenID Connect quando precisar de ligar tenants diferentes ou implementações FoxIDs separadas.
Configuração
Como configurar um Identity Provider (IdP) SAML 2.0 externo.
O endpoint metadata do método de autenticação SAML 2.0 do FoxIDs é
https://foxids.com/tenant-x/environment-y/(some_external_idp)/saml/spmetadata. Se o IdP estiver configurado no tenanttenant-xe no ambienteenvironment-ycom o nome do método de autenticaçãosome_external_idp.
O ecrã seguinte mostra a configuração de um método de autenticação SAML 2.0 no FoxIDs Control Client.
Aqui a configuração é criada usando metadata do IdP externo. Os claims encaminhados ficam limitados ao conjunto configurado; por predefinição todos os claims são encaminhados com a notação *.
Opções de configuração adicionais ficam disponíveis ao clicar em Show advanced.

Pode modificar claims e executar claim tasks com transformações e tarefas de claims.
A configuração manual fica disponível ao desativar Automatic update. Assim, o IdP não precisa de expor nem enviar um ficheiro de metadata e pode configurar tudo manualmente.

Se estiver a criar um novo claim, adicione o claim ou * (predefinição) à lista Forward claims para o encaminhar para o registo de 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 método de autenticação SAML 2.0.
- Signature algorithm controla o algoritmo que o FoxIDs usa ao assinar SAML AuthnRequests e mensagens de logout. RSA-SHA-256 é a predefinição.
- Signature validation algorithms é uma allowlist para SAML responses e mensagens de logout assinadas recebidas do IdP externo. 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 assinatura do IdP externo podem ser certificados RSA ou ECDSA. O FoxIDs suporta ambos os tipos de certificado como certificados de validação de assinatura SAML para SAML responses e mensagens de logout assinados.
- XML canonicalisation method controla o método de canonicalisation que o FoxIDs usa ao assinar mensagens SAML. O FoxIDs também valida assinaturas SAML recebidas com exclusive XML canonicalisation methods suportados para melhorar a interoperabilidade com IdP que usam definições de canonicalisation diferentes.
Ative RSA-SHA-1 apenas quando exigido por um SAML identity provider antigo.
IdP-Initiated Login
SAML 2.0 IdP-Initiated Login é um fluxo de autenticação Single Sign-On (SSO) em que o processo começa no Identity Provider (IdP) em vez do Service Provider (SP). Este método é comummente usado em ambientes enterprise para permitir que utilizadores acedam a várias aplicações com uma única autenticação.
Ao contrário do SP-Initiated Login, o SP não pede autenticação ao IdP. O IdP envia por iniciativa própria uma SAML assertion não solicitada. Esta diferença fundamental torna o fluxo IdP-Initiated Login menos seguro do que o fluxo SP-Initiated Login, e por isso o IdP-Initiated Login está desativado por predefinição no FoxIDs.
Ativar IdP-Initiated Login.
- Abra o método de autenticação SAML 2.0 no FoxIDs Control Client
- Clique em Show advanced
- Desça até ao fim da secção de configuração
- Ative IdP-Initiated login
- Opcionalmente altere IdP-Initiated Login - OpenID Connect grant lifetime
- Clique em Update

Depois, configure o método de autenticação SAML 2.0 para confiar no IdP da mesma forma que faria para usar SP-initiated login.
IdP Relay State
O IdP externo tem de enviar um relay state que especifique para que aplicação a autenticação deve ser encaminhada.
O relay state tem sempre de conter o nome da aplicação app_name e o tipo de aplicação app_type e, em alguns casos, deve conter um URL de redirecionamento da aplicação app_redirect.
Os elementos têm cada um um nome e um valor e são separados por &. Os valores URL de redirecionamento têm de estar URL encoded. O valor do tipo de aplicação pode ser saml2 ou oidc.
O sample .NET de identity provider (IdP) SAML 2.0 AspNetCoreSamlIdPSample mostra como criar um IdP-Initiated Login com relay state.
Aplicação SAML 2.0
Se quiser encaminhar a autenticação para a aplicação SAML 2.0 chamada my-saml2-app, o relay state é:
app_name=my-saml2-app&app_type=saml2
Isto encaminha a chamada de autenticação para o primeiro endpoint Assertion Consumer Service (ACS) configurado para a aplicação.
Se quiser encaminhar a autenticação para outro endpoint ACS configurado https://my-domain.com/auth/acs2, o relay state é:
app_name=my-saml2-app&app_type=saml2&app_redirect=https%3A%2F%2Fmy-domain.com%2Fauth%2Facs2
A chamada de autenticação é encaminhada para a aplicação SAML 2.0 como IdP-Initiated Login com uma authn response SAML 2.0 não solicitada.
Aplicação OpenID Connect
OpenID Connect não suporta IdP-Initiated Login. Por isso, o IdP-Initiated Login é verificado no método de autenticação e encaminhado para a aplicação OpenID Connect
ao chamar a aplicação com o URL de redirecionamento app_redirect, que deve iniciar o fluxo de login (standard OpenID Connect: Initiating Login from a Third Party).
Precisa de uma página na aplicação OpenID Connect que exija que o utilizador esteja autenticado e depois inicie o fluxo de login quando for chamada.
Um parâmetro issuer iss é passado na query e pode escolher validá-lo.
A aplicação OpenID Connect pode fazer um pedido de login genérico com *; o FoxIDs sabe para onde encaminhar o pedido de login.
A aplicação OpenID Connect chama então o FoxIDs, que lê o grant IdP-Initiated Login. Em alternativa, sem um grant IdP-Initiated Login, o IdP externo é chamado com um fluxo SP-Initiated Login. O IdP externo usa o contexto Single Sign-On (SSO) e responde ao FoxIDs.
Recomenda-se usar a funcionalidade grant IdP-Initiated Login para evitar um round-trip adicional ao IdP externo.
O SAML 2.0 IdP-Initiated Login é então traduzido para OpenID Connect e encaminha a autenticação para a aplicação OpenID Connect.
Se quiser encaminhar a autenticação para a aplicação OpenID Connect chamada my-oidc-app com o URL de início de login https://my-domain.com/secure-page,
o relay state é:
app_name=my-oidc-app&app_type=oidc&app_redirect=https%3A%2F%2Fmy-domain.com%2Fsecure-page
O URL de redirecionamento da aplicação tem de ser um URL válido/configurado para a aplicação OpenID Connect.