Connectez-vous à Microsoft Entra ID avec WS-Federation

Utilisez FoxIDs en tant que Service de jeton de sécurité (STS) WS-Federation pour un domaine Microsoft Entra ID fédéré et une connexion Windows fédérée.

Les FoxIDs peuvent être utilisés comme fournisseur d’identité fédérée pour les appareils Windows joints à Microsoft Entra et à Microsoft Entra hybride.

Dans un environnement fédéré, Microsoft Entra ID nécessite la prise en charge de WS-Federation et WS-Trust pour la connexion Windows. FoxIDs expose les métadonnées WS-Federation, le point de terminaison MEX et le point de terminaison WS-Trust UsernameMixed actif requis par ces flux Microsoft Entra ID et Windows. FoxIDs ne rejoint ni n'enregistre les appareils ; l'enregistrement de l'appareil est géré par Microsoft Entra ID et Windows.

Les organisations utilisant AD FS pour la fédération de domaines Microsoft Entra ID peuvent utiliser des FoxIDs pour le rôle de fournisseur d'identité fédéré décrit dans ce guide.

Configurer FoxIDs

Ce guide décrit comment configurer les FoxIDs en tant que STS pour un domaine Microsoft Entra ID fédéré. Les utilisateurs sont connectés aux utilisateurs Microsoft Entra ID avec leur 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.

  1. Select the Applications tab.
  2. Click Add application.
  3. Select Connect to Microsoft Entra ID with the WS-Federation badge.
  4. Add the display name, e.g. Microsoft Entra ID.
  5. Select Automatic federation (recommended).
  6. Add the verified Microsoft Entra domain to synchronise. Creating the Microsoft Entra ID template with Automatic federation and domain input
  7. Click Create.
  8. 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.

Microsoft Entra federation setup with Grant Microsoft admin consent and Synchronise federation

  1. In the Microsoft Entra ID template, click Grant Microsoft admin consent.
  2. Sign in as a Microsoft Entra administrator for the tenant that owns the domain and accept the consent.
  3. Return to FoxIDs Control.
  4. Click Synchronise federation.
  5. 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.

Internal user with the immutable_id claim configured

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_id and the value of the Immutable ID in Microsoft Entra ID. It should be base64 encoded. The immutable_id claim type is mapped to the SAML claim URI http://schemas.foxids.com/ws/identity/claims/immutableid in FoxIDs. To issue the UPN claim for an internal user, add a claim with the claim type upn and the user's Microsoft Entra ID user principal name, e.g. user@your-domain.com. FoxIDs maps the internal upn claim to http://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.

  1. Sélectionnez l'onglet Applications.
  2. Cliquez sur Nouvelle application.
  3. Cliquez sur Afficher toutes les options.
  4. Cliquez sur Application Web avec le badge WS-Federation.
  5. Ajoutez le Nom, par ex. Microsoft Entra ID.
  6. Choisissez la configuration manuelle.
  7. Définissez le domaine d'application sur urn:federation:MicrosoftOnline.
  8. Définissez URL de réponse sur https://login.microsoftonline.com/login.srf.
  9. Définissez URL de déconnexion sur https://login.microsoftonline.com/login.srf.
  10. Conservez le Type de jeton sous la forme SAML 1.1, sauf si Microsoft Entra ID est configuré pour un autre type de jeton.
  11. Cliquez sur Créer.
  12. Ouvrez l'application et activez la connexion Windows Microsoft Entra ID dans les paramètres avancés de WS-Federation.

Manual Immutable ID claim transform

Microsoft Entra ID attend une revendication d'Immutable ID dans le jeton WS-Federation. La valeur de la revendication doit correspondre au onPremisesImmutableId de l'utilisateur dans l'Microsoft Entra ID.

  1. Cliquez sur Modifier l'application pour ouvrir l'application en mode édition.
  2. Sélectionnez l'onglet ** Réclamation des transformations **.
  3. Cliquez sur Ajouter une transformation de revendication, puis sur Carte.
  4. Définissez Nouvelle revendication sur http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID.
  5. Définissez Sélectionner la revendication sur http://schemas.foxids.com/ws/identity/claims/immutableid.
  6. Cliquez sur Mettre à jour.

La documentation Microsoft Entra ID indique que la revendication UPN fait partie du jeu de revendications attendu du jeton WS-Federation. FoxIDs émet :

  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn

à partir de la revendication upn de l'utilisateur. La correspondance de l'utilisateur repose normalement sur l'Immutable ID, mais l'ajout de la revendication UPN maintient le jeton aligné avec le jeu de revendications WS-Federation attendu par Microsoft.

Vous devez définir l'Immutable ID de l'utilisateur comme revendication dans FoxIDs. Pour définir l'Immutable ID sur un utilisateur interne, sélectionnez l'onglet Utilisateurs, puis l'onglet Utilisateurs internes, recherchez l'utilisateur et ajoutez une revendication avec le type de revendication immutable_id et la valeur de l'Immutable ID dans Microsoft Entra ID. Il doit être codé en base64. Le type de revendication immutable_id est mappé à l'URI de revendication SAML http://schemas.foxids.com/ws/identity/claims/immutableid dans FoxIDs. Pour émettre la revendication UPN pour un utilisateur interne, ajoutez une revendication avec le type de revendication upn et le user principal name Microsoft Entra ID de l'utilisateur, par exemple user@your-domain.com. FoxIDs mappe la revendication interne upn vers http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn.

Manual Microsoft Entra ID federation values

Ouvrez l'enregistrement de l'application WS-Federation et copiez les valeurs nécessaires à la fédération de domaine Microsoft Entra ID :

  • Métadonnées de la Fédération
  • Royaume/émetteur
  • URL de connexion passive
  • URL de déconnexion
  • Point de terminaison MEX
  • Point de terminaison WS-Trust actif

Microsoft Entra ID lit les certificats de signature FoxIDs à partir de l'URL des métadonnées de fédération. Par conséquent, vous pouvez continuer à utiliser les certificats FoxIDs glissants par défaut. Pour la connexion Windows fédérée, utilisez le point de terminaison MEX comme metadataExchangeUri et le point de terminaison WS-Trust actif comme activeSignInUri.

Configurez l'Immutable ID de l'utilisateur

Le onPremisesImmutableId de l'utilisateur dans Microsoft Entra ID doit correspondre à la revendication http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID émise par FoxIDs.

Microsoft décrit la revendication d'Immutable ID AD FS dans la documentation Gestion et personnalisation AD FS.

Configurez l'Immutable ID de l'utilisateur avec PowerShell

  1. Connectez-vous à Microsoft Graph :
    Connect-MgGraph -Scopes "User.ReadWrite.All"
    
  2. Configurez les variables :
    $userId = "user-id@your-domain.com"
    $immutableId = "immutable-id"
    
  3. Configurez l'Immutable ID de l'utilisateur :
    Update-MgUser -UserId $userId -OnPremisesImmutableId $immutableId
    
  4. Validez la valeur :
    Get-MgUser -UserId $userId | Format-List Id, UserPrincipalName, OnPremisesImmutableId
    

Si l'utilisateur dispose déjà d'un Immutable ID, vous devrez peut-être éloigner l'utilisateur du domaine fédéré, mettre à jour l'Immutable ID, puis ramener l'utilisateur vers le domaine fédéré.

Configurer Microsoft Entra ID

Il n'est pas possible de configurer ce type de fédération de domaine Microsoft Entra ID dans Centre d'administration Microsoft Entra ID.. Utilisez Microsoft Graph PowerShell ou l'API Microsoft Graph.

La ressource Microsoft Graph internalDomainFederation prend en charge à la fois SAML et WS-Federation. Pour WS-Federation, définissez preferredAuthenticationProtocol sur wsFed. Consultez la documentation Créer une fédération de domaine interne de Microsoft.

  1. Ouvrez PowerShell en tant qu'administrateur.

  2. Installez le module PowerShell MicrosoftGraph s'il n'est pas déjà installé :

    Install-Module -Name Microsoft.Graph
    

    Installez éventuellement pour l'utilisateur actuel :

    Install-Module Microsoft.Graph -Scope CurrentUser -Force
    
  3. Connectez-vous à Microsoft Graph :

    Connect-MgGraph -Scopes "Domain.ReadWrite.All,Directory.AccessAsUser.All"
    
  4. Configurez les variables de configuration :

    $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"
    
  5. Configurez la fédération de domaine :

    $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 $params
    

    federatedIdpMfaBehavior peut être défini sur :

    • acceptIfMfaDoneByFederatedIdp - Microsoft Entra ID accepte l'authentification MFA des FoxIDs ; si FoxIDs n'a pas fait MFA, Microsoft Entra ID peut le faire.
    • enforceMfaByFederatedIdp - Si une stratégie nécessite une MFA, Microsoft Entra ID renvoie l'utilisateur vers FoxIDs pour terminer la MFA.
    • rejectMfaByFederatedIdp - Microsoft Entra ID effectue toujours l'authentification multifacteur lui-même ; L’AMF chez FoxIDs est ignorée.
  6. Validez la configuration :

    Get-MgDomainFederationConfiguration -DomainId $domainId | Format-List
    Get-MgDomain -DomainId $domainId | Format-List Id, AuthenticationType
    

Microsoft Entra ID utilise passiveSignInUri pour les clients Web et activeSignInUri pour les clients actifs tels que les appareils Windows joints à Microsoft Entra et à Microsoft Entra hybride. Consultez la documentation Ressource internalDomainFederation de Microsoft pour la liste complète des propriétés.

If you configure Microsoft Entra ID manually, update the Microsoft Entra ID signingCertificate and nextSigningCertificate values when FoxIDs signing certificates roll over. Automatic federation handles this for you.

Configurer la synchronisation automatique Microsoft Entra ID pour le self-hosting

Pour les déploiements FoxIDs self-hosted, la Microsoft Entra ID federation sync automatique nécessite une Microsoft Entra ID app registration configurée à la fois dans la configuration de déploiement FoxIDs runtime et FoxIDs Control. FoxIDs utilise l'app registration avec le client credentials flow pour appeler Microsoft Graph et créer ou mettre à jour la federationConfiguration du domaine.

L'app registration doit disposer de la Microsoft Graph application permission Domain-InternalFederation.ReadWrite.All. Privilégiez certificate authentication en chargeant le certificat public dans l'app registration et en configurant FoxIDs avec le même certificat incluant la clé privée.

Request Microsoft Graph application permission for internal federation configuration

PFX est pratique pour les systèmes de déploiement qui stockent les secrets sous forme de valeurs sur une seule ligne. Le mot de passe PFX est facultatif ; omettez CertificatePfxPassword si le PFX n'est pas protégé par mot de passe :

{
  "Settings": {
    "Modules": {
      "MicrosoftEntraIdSync": {
        "ClientId": "<application-client-id>",
        "CertificatePfx": "<base64-encoded-pfx>",
        "CertificatePfxPassword": "<optional-pfx-password>"
      }
    }
  }
}

Sous forme d'environment variables :

Settings__Modules__MicrosoftEntraIdSync__ClientId=<application-client-id>
Settings__Modules__MicrosoftEntraIdSync__CertificatePfx=<base64-encoded-pfx>
Settings__Modules__MicrosoftEntraIdSync__CertificatePfxPassword=<optional-pfx-password>

Pour créer la valeur PFX encodée en base64 à partir d’un certificat PFX sans mot de passe :

$pfxPath = "C:\path\to\certificate.pfx"
$base64Pfx = [Convert]::ToBase64String([IO.File]::ReadAllBytes($pfxPath))
$base64Pfx | Set-Clipboard

Un certificat PEM et le texte de la private key peuvent aussi être utilisés :

{
  "Settings": {
    "Modules": {
      "MicrosoftEntraIdSync": {
        "ClientId": "<application-client-id>",
        "CertificatePemCrt": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
        "CertificatePemKey": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
      }
    }
  }
}

Si aucun certificat n'est configuré, FoxIDs utilise client secret authentication :

{
  "Settings": {
    "Modules": {
      "MicrosoftEntraIdSync": {
        "ClientId": "<application-client-id>",
        "ClientSecret": "<client-secret>"
      }
    }
  }
}

Sous forme d'environment variables :

Settings__Modules__MicrosoftEntraIdSync__ClientId=<application-client-id>
Settings__Modules__MicrosoftEntraIdSync__ClientSecret=<client-secret>

Si un certificat est configuré, FoxIDs utilise toujours certificate authentication et ne revient pas à ClientSecret si certificate authentication échoue. Configurez soit CertificatePfx, soit CertificatePemCrt et CertificatePemKey; ne configurez pas à la fois les paramètres de certificat PFX et PEM.

Votre confidentialité

Votre confidentialité

Nous utilisons des cookies pour améliorer votre expérience sur nos sites. Cliquez sur « Accepter tous les cookies » pour accepter l'utilisation des cookies. Pour refuser les cookies non essentiels, cliquez sur « Cookies nécessaires uniquement ».

Consultez notre politique de confidentialité pour en savoir plus