Conecte-se ao Microsoft Entra ID com WS-Federation
Use FoxIDs como um WS-Federation Security Token Service (STS) para um domínio federado do Microsoft Entra ID e login federado do Windows.
FoxIDs podem ser usados como o provedor de identidade federado para dispositivos Windows ingressados no Microsoft Entra e no Microsoft Entra híbrido.
Em um ambiente federado, o Microsoft Entra ID requer suporte WS-Federation e WS-Trust para entrada no Windows. FoxIDs expõe os metadados WS-Federation, o ponto final MEX e o ponto final WS-Trust UsernameMixed ativo exigidos por estes fluxos Microsoft Entra ID e Windows. FoxIDs não ingressa ou registra dispositivos; o registro do dispositivo é feito pelo Microsoft Entra ID e pelo Windows.
As organizações que usam o AD FS para a federação de domínio do Microsoft Entra ID podem usar FoxIDs para a função de provedor de identidade federado descrita neste guia.
Configurar FoxIDs
Este guia descreve como configurar FoxIDs como STS para um domínio federado do Microsoft Entra ID. Os usuários estão conectados aos usuários do Microsoft Entra ID com seu Immutable ID.
1 - Create the Microsoft Entra ID WS-Federation application in FoxIDs Control Client
The recommended setup is to use the Connect to Microsoft Entra ID application template. The template enables Microsoft Entra ID Windows sign-in, configures the WS-Federation metadata URL, adds the required issue claim and claim transforms, and uses an application-specific issuer.
- Select the Applications tab.
- Click Add application.
- Select Connect to Microsoft Entra ID with the WS-Federation badge.
- Add the display name, e.g.
Microsoft Entra ID. - Select Automatic federation (recommended).
- Add the verified Microsoft Entra domain to synchronise.

- Click Create.
- Click Set up Microsoft Entra federation.
If automatic federation is not available in a self-hosted deployment, configure the automatic Microsoft Entra ID sync app registration first or select Manual federation and configure Microsoft Entra ID manually.
2 - Grant consent and synchronise Microsoft Entra federation
Automatic federation uses Microsoft Graph to create or update the Microsoft Entra ID domain internalDomainFederation configuration. FoxIDs synchronises the WS-Federation endpoints, the MEX endpoint, the active WS-Trust endpoint, the primary signing certificate and the secondary signing certificate if one exists.

- In the Microsoft Entra ID template, click Grant Microsoft admin consent.
- Sign in as a Microsoft Entra administrator for the tenant that owns the domain and accept the consent.
- Return to FoxIDs Control.
- Click Synchronise federation.
- Verify that the synchronisation status is successful.
After the first successful synchronisation, Microsoft Entra ID trusts the FoxIDs WS-Federation application registration for the configured domain. FoxIDs also checks the federation during federated Windows sign-in and synchronises again if the signing certificate has changed or the previous synchronisation was not successful.
If synchronisation reports that the existing Microsoft Entra federation issuer does not match this FoxIDs application registration, review the domain ownership before choosing to take over the federation. Taking over changes the Microsoft Entra domain to trust this FoxIDs application registration.
3 - Configure the users' Immutable ID claims
Microsoft Entra ID expects an Immutable ID claim in the WS-Federation token. The claim value must match the user's onPremisesImmutableId in Microsoft Entra ID.
The Microsoft Entra ID template adds the required issue claims and claim transforms. You still need to make sure each user has an immutable_id claim with the base64 value that matches the user in Microsoft Entra ID.

Microsoft Entra ID documentation lists the UPN claim as part of the expected WS-Federation token claims. FoxIDs issues:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
from the user's upn claim. User matching is normally based on the Immutable ID, but adding the UPN claim keeps the token aligned with Microsoft's expected WS-Federation claim set.
You need to set the user's Immutable ID as a claim in FoxIDs. To set the Immutable ID on an internal user, select the Users tab and then the Internal Users tab, find the user, and add a claim with the claim type
immutable_idand the value of the Immutable ID in Microsoft Entra ID. It should be base64 encoded. Theimmutable_idclaim type is mapped to the SAML claim URIhttp://schemas.foxids.com/ws/identity/claims/immutableidin FoxIDs. To issue the UPN claim for an internal user, add a claim with the claim typeupnand the user's Microsoft Entra ID user principal name, e.g.user@your-domain.com. FoxIDs maps the internalupnclaim tohttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn. Manual FoxIDs configuration
Use manual configuration only if you do not use the Microsoft Entra ID template.
- Selecione a guia Aplicativos.
- Clique em Novo aplicativo.
- Clique em Mostrar todas as opções.
- Clique em Aplicativo Web com o selo WS-Federation.
- Adicione o Nome, por exemplo
Microsoft Entra ID. - Escolha a configuração manual.
- Configure Reino do aplicativo como
urn:federation:MicrosoftOnline. - Defina URL de resposta como
https://login.microsoftonline.com/login.srf. - Defina URL de saída como
https://login.microsoftonline.com/login.srf. - Mantenha Tipo de token como
SAML 1.1, a menos que o Microsoft Entra ID esteja configurado para outro tipo de token. - Clique em Criar.
- Abra o aplicativo e habilite o Login do Microsoft Entra ID do Windows nas configurações avançadas do WS-Federation.
Manual Immutable ID claim transform
O Microsoft Entra ID espera uma declaração de Immutable ID no token WS-Federation. O valor da declaração deve corresponder ao onPremisesImmutableId do usuário na Microsoft Entra ID.
- Clique em Alterar aplicativo para abrir o aplicativo no modo de edição.
- Selecione a guia Transformações de reivindicação.
- Clique em Adicionar transformação de declaração e clique em Mapa.
- Defina Nova declaração como
http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID. - Defina Selecionar reivindicação como
http://schemas.foxids.com/ws/identity/claims/immutableid. - Clique em Atualizar.
A documentação do Microsoft Entra ID lista a declaração UPN como parte do conjunto de declarações esperado do token WS-Federation. FoxIDs emite:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
a partir da declaração upn do utilizador. A correspondência do utilizador baseia-se normalmente no Immutable ID, mas adicionar a declaração UPN mantém o token alinhado com o conjunto de declarações WS-Federation esperado pela Microsoft.
Você precisa definir o Immutable ID do usuário como uma declaração nos FoxIDs. Para definir a Immutable ID em um usuário interno, selecione a guia Usuários e, em seguida, a guia Usuários internos, encontre o usuário e adicione uma declaração com o tipo de declaração
immutable_ide o valor da Immutable ID no Microsoft Entra ID. Deve ser codificado em base64. O tipo de declaraçãoimmutable_idé mapeado para o URI de declaração SAMLhttp://schemas.foxids.com/ws/identity/claims/immutableidem FoxIDs. Para emitir a declaração UPN para um utilizador interno, adicione uma declaração com o tipoupne o user principal name do Microsoft Entra ID do utilizador, por exemplouser@your-domain.com. O FoxIDs mapeia a declaração internaupnparahttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn.
Manual Microsoft Entra ID federation values
Abra o registo da aplicação WS-Federation e copie os valores necessários para a federação de domínio Microsoft Entra ID:
- Metadados da Federação
- Reino / emissor
- URL de login passivo
- URL de saída
- Ponto final MEX
- Endpoint WS-Trust ativo
O Microsoft Entra ID lê os certificados de assinatura de FoxIDs da URL de metadados de federação. Portanto, você pode continuar usando os certificados FoxIDs contínuos padrão. Para login federado do Windows, use o terminal MEX como metadataExchangeUri e o terminal WS-Trust ativo como activeSignInUri.
Configure o Immutable ID do usuário
O onPremisesImmutableId do usuário no Microsoft Entra ID deve corresponder à declaração http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID emitida pelos FoxIDs.
A Microsoft descreve a declaração de Immutable ID do AD FS na documentação Gerenciamento e personalização do AD FS.
Configure o Immutable ID do usuário com PowerShell
- Conecte-se ao Microsoft Graph:
Connect-MgGraph -Scopes "User.ReadWrite.All" - Configure as variáveis:
$userId = "user-id@your-domain.com" $immutableId = "immutable-id" - Configure o Immutable ID do usuário:
Update-MgUser -UserId $userId -OnPremisesImmutableId $immutableId - Valide o valor:
Get-MgUser -UserId $userId | Format-List Id, UserPrincipalName, OnPremisesImmutableId
Se o usuário já tiver um Immutable ID definido, talvez seja necessário movê-lo para fora do domínio federado, atualizar o Immutable ID e, em seguida, mover o usuário de volta para o domínio federado.
Configurar Microsoft Entra ID
Não é possível configurar este tipo de federação de domínio Microsoft Entra ID no Centro de administração do Microsoft Entra ID. Use o Microsoft Graph PowerShell ou a API do Microsoft Graph.
O recurso internalDomainFederation do Microsoft Graph dá suporte a SAML e WS-Federation. Para WS-Federation, configure preferredAuthenticationProtocol como wsFed. Consulte a documentação Criar internalDomainFederation da Microsoft.
Abra o PowerShell como administrador.
Instale o módulo Microsoft Gráfico PowerShell se ainda não estiver instalado:
Install-Module -Name Microsoft.GraphOpcionalmente, instale para o usuário atual:
Install-Module Microsoft.Graph -Scope CurrentUser -ForceConecte-se ao Microsoft Graph:
Connect-MgGraph -Scopes "Domain.ReadWrite.All,Directory.AccessAsUser.All"Configure as variáveis de configuração:
$domainId = "your-domain.com" $displayName = FoxIDs $issuerUri = "copied Realm / issuer from FoxIDs" $metadataExchangeUri = "copied MEX endpoint from FoxIDs" $passiveSignInUri = "copied Passive sign-in URL from FoxIDs" $activeSignInUri = "copied Active WS-Trust endpoint from FoxIDs" $signOutUri = "copied Sign-out URL from FoxIDs" $signingCertificate = "copied IdP signing certificate from FoxIDs"Configure a federação de domínio:
$params = @{ "@odata.type" = "#microsoft.graph.internalDomainFederation" displayName = $displayName issuerUri = $issuerUri metadataExchangeUri = $metadataExchangeUri passiveSignInUri = $passiveSignInUri activeSignInUri = $activeSignInUri preferredAuthenticationProtocol = "wsFed" signOutUri = $signOutUri federatedIdpMfaBehavior = "acceptIfMfaDoneByFederatedIdp" } New-MgDomainFederationConfiguration -DomainId $domainId -BodyParameter $paramsfederatedIdpMfaBehaviorpode ser definido como:acceptIfMfaDoneByFederatedIdp- Microsoft Entra ID aceita MFA de FoxIDs; se os FoxIDs não fizeram MFA, o Microsoft Entra ID poderá fazê-lo.enforceMfaByFederatedIdp– Se uma política precisar de MFA, o Microsoft Entra ID enviará o usuário de volta aos FoxIDs para concluir a MFA.rejectMfaByFederatedIdp- O Microsoft Entra ID sempre faz o próprio MFA; A MFA em FoxIDs é ignorada.
Valide a configuração:
Get-MgDomainFederationConfiguration -DomainId $domainId | Format-List Get-MgDomain -DomainId $domainId | Format-List Id, AuthenticationType
O Microsoft Entra ID usa
passiveSignInUripara clientes baseados na Web eactiveSignInUripara clientes ativos, como dispositivos Windows ingressados no Microsoft Entra e híbridos do Microsoft Entra. Consulte a documentação recurso internalDomainFederation da Microsoft para obter a lista completa de propriedades.
If you configure Microsoft Entra ID manually, update the Microsoft Entra ID
signingCertificateandnextSigningCertificatevalues when FoxIDs signing certificates roll over. Automatic federation handles this for you.
Configurar a sincronização automática do Microsoft Entra ID para self-hosting
Para deployments FoxIDs self-hosted, a Microsoft Entra ID federation sync automática requer uma Microsoft Entra ID app registration configurada tanto na configuração do deployment FoxIDs runtime como na do FoxIDs Control. O FoxIDs usa a app registration com o client credentials flow para chamar o Microsoft Graph e criar ou atualizar a federationConfiguration do domínio.
A app registration deve ter a Microsoft Graph application permission Domain-InternalFederation.ReadWrite.All. Prefira certificate authentication carregando o certificado público na app registration e configurando o FoxIDs com o mesmo certificado incluindo a chave privada.

PFX é prático para sistemas de deployment que guardam secrets como valores de uma só linha. A password do PFX é opcional; omita CertificatePfxPassword se o PFX não estiver protegido por password:
{
"Settings": {
"Modules": {
"MicrosoftEntraIdSync": {
"ClientId": "<application-client-id>",
"CertificatePfx": "<base64-encoded-pfx>",
"CertificatePfxPassword": "<optional-pfx-password>"
}
}
}
}
Como environment variables:
Settings__Modules__MicrosoftEntraIdSync__ClientId=<application-client-id>
Settings__Modules__MicrosoftEntraIdSync__CertificatePfx=<base64-encoded-pfx>
Settings__Modules__MicrosoftEntraIdSync__CertificatePfxPassword=<optional-pfx-password>
Para criar o valor PFX codificado em base64 a partir de um certificado PFX sem password:
$pfxPath = "C:\path\to\certificate.pfx"
$base64Pfx = [Convert]::ToBase64String([IO.File]::ReadAllBytes($pfxPath))
$base64Pfx | Set-Clipboard
Também pode ser usado certificado PEM e texto da private key:
{
"Settings": {
"Modules": {
"MicrosoftEntraIdSync": {
"ClientId": "<application-client-id>",
"CertificatePemCrt": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
"CertificatePemKey": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
}
}
}
}
Se nenhum certificado estiver configurado, o FoxIDs usa client secret authentication:
{
"Settings": {
"Modules": {
"MicrosoftEntraIdSync": {
"ClientId": "<application-client-id>",
"ClientSecret": "<client-secret>"
}
}
}
}
Como environment variables:
Settings__Modules__MicrosoftEntraIdSync__ClientId=<application-client-id>
Settings__Modules__MicrosoftEntraIdSync__ClientSecret=<client-secret>
Se um certificado estiver configurado, o FoxIDs usa sempre certificate authentication e não volta para ClientSecret se certificate authentication falhar. Configure CertificatePfx ou ambos CertificatePemCrt e CertificatePemKey; não configure ao mesmo tempo definições de certificado PFX e PEM.