Connecter Microsoft Entra ID avec SAML 2.0
Connectez FoxIDs comme fournisseur d’identité externe pour Microsoft Entra ID avec SAML 2.0.
En configurant une méthode d’authentification OpenID Connect et Microsoft Entra ID comme application SAML 2.0, FoxIDs devient un pont entre OpenID Connect et SAML 2.0 et convertit automatiquement les revendications JWT (OAuth 2.0) en revendications SAML 2.0.
Configurer Microsoft Entra ID
Ce guide décrit comment configurer FoxIDs comme fournisseur d’identité externe pour Microsoft Entra ID. Les utilisateurs sont liés aux utilisateurs Microsoft Entra ID via leur Immutable ID.
1 - Commencez par configurer un certificat dans FoxIDs Control Client
Vous devez téléverser le certificat de signature SAML 2.0 utilisé dans FoxIDs vers Microsoft Entra ID. Il est donc nécessaire d’utiliser un certificat longue durée dans FoxIDs, par exemple valable 3 ans.
- Sélectionnez l’onglet Certificates
- Cliquez sur Change Container type

- Trouvez Self-signed or your certificate et cliquez sur Change to this container type
- Le certificat auto-signé est valable 3 ans, et vous pouvez éventuellement téléverser votre propre certificat

2 - Ensuite, créez une application SAML 2.0 dans FoxIDs Control Client
- Sélectionnez l’onglet Applications
- Cliquez sur New application
- Cliquez sur Web application (SAML 2.0)
- Ajoutez le Name par ex.
Microsoft Entra ID - Définissez l’Application issuer sur
urn:federation:MicrosoftOnline - Définissez l’Assertion consumer service (ACS) URL sur
https://login.microsoftonline.com/login.srf
- Cliquez sur Create
- Cliquez sur Change application pour ouvrir l’application en mode édition
- Cliquez sur Show advanced
- Définissez Authn request binding sur Post
- Définissez le NameID format sur
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent - Définissez Optional logged out URL et Optional single logout URL sur
https://login.microsoftonline.com/login.srf
- Définissez Authn response sign type sur
Sign assertion
- Remontez en haut de l’application, trouvez la section Application information et cliquez sur Show more
- Copiez l’IdP Issuer
- Copiez la Single Sign-On URL
- Copiez la Single Logout URL
- Copiez le IdP Signing Certificate au format Base64
- Sélectionnez l’onglet Claims Transform
- Cliquez sur Add claim transform puis Map pour ajouter une revendication NameID avec l’Immutable ID de l’utilisateur correspondant à l’Immutable ID de l’utilisateur Microsoft Entra ID.
- Définissez New claim sur
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier- qui est l’URI de la revendication NameID - Définissez Select claim sur
http://schemas.foxids.com/ws/identity/claims/immutableid - Cliquez sur Update
Vous devez définir l’Immutable ID de l’utilisateur comme une revendication dans FoxIDs.
Pour définir l’Immutable ID pour un utilisateur interne, sélectionnez l’onglet Users puis l’onglet Internal Users, trouvez l’utilisateur et ajoutez une revendication avec le typeimmutable_idet la valeur de l’Immutable ID dans Microsoft Entra ID - elle doit être encodée en base64.
Le type de revendicationimmutable_idest mappé à l’URI de revendication SAML 2.0http://schemas.foxids.com/ws/identity/claims/immutableiddans FoxIDs.
3 - Ensuite, configurez la fédération de domaine dans Microsoft Entra ID avec PowerShell
Il n’est pas possible de configurer un fournisseur d’identité SAML 2.0 externe dans le portail Microsoft Entra ID. Vous devez utiliser PowerShell.
- Ouvrez PowerShell en tant qu’administrateur
- Installez le module PowerShell Microsoft Graph si ce n’est pas déjà fait :
Install-Module -Name Microsoft.Graphet sélectionnezA- Optionnellement, installez pour l’utilisateur actuel :
Install-Module Microsoft.Graph -Scope CurrentUser -Force - Ou mettez à jour le module :
Update-Module -Name Microsoft.Graphet sélectionnezA
- Optionnellement, installez pour l’utilisateur actuel :
- Connectez-vous à Microsoft Graph :
Connect-MgGraph -Scopes "Domain.ReadWrite.All,Directory.AccessAsUser.All" - Définissez les variables de configuration :
$domainName = "your-domain.com" # The domain name to configure federation for $idpIssuer = "copied IdP Issuer from FoxIDs" $ssoUrl = "copied Single Sign-On URL from FoxIDs" $sloUrl = "copied Single Logout URL from FoxIDs" $signingCertBase64 = @" -----BEGIN CERTIFICATE----- copied IdP Signing Certificate from FoxIDs -----END CERTIFICATE----- "@ - Configurez la fédération de domaine :
FederatedIdpMfaBehavior peut être défini sur :New-MgDomainFederationConfiguration -DomainId $domainName ` -IssuerUri $idpIssuer ` -PassiveSignInUri $ssoUrl ` -SignOutUri $sloUrl ` -SigningCertificate $signingCertBase64 ` -PreferredAuthenticationProtocol "saml" ` -FederatedIdpMfaBehavior "acceptIfMfaDoneByFederatedIdp"acceptIfMfaDoneByFederatedIdp- Entra accepte la MFA de FoxIDs ; si FoxIDs n’a pas fait de MFA, Entra la fera.enforceMfaByFederatedIdp- Si une politique nécessite MFA, Entra renverra l’utilisateur vers FoxIDs pour terminer la MFA.rejectMfaByFederatedIdp- Entra effectue toujours la MFA lui-même ; la MFA de FoxIDs est ignorée.
- Validez la configuration :
Get-MgDomainFederationConfiguration -DomainId $domainName # or Get-MgDomain -DomainId $domainName | fl Id, AuthenticationType
4a - Ensuite, configurez l’Immutable ID de l’utilisateur dans Microsoft Entra ID avec PowerShell
- Ouvrez PowerShell en tant qu’administrateur
- Installez le module PowerShell Microsoft Graph si ce n’est pas déjà fait :
Install-Module -Name Microsoft.Graphet sélectionnezA- Optionnellement, installez pour l’utilisateur actuel :
Install-Module Microsoft.Graph -Scope CurrentUser -Force - Ou mettez à jour le module :
Update-Module -Name Microsoft.Graphet sélectionnezA
- Optionnellement, installez pour l’utilisateur actuel :
- Connectez-vous à Microsoft Graph :
Connect-MgGraph -Scopes "Domain.ReadWrite.All" - Définissez les variables de configuration :
$userId = "user-id@my-domain.com" # The user's User Principal Name (UPN) or the Object ID $immutableId = "immutable-id" # The user's Immutable ID - base64 encoded. - Configurez l’Immutable ID de l’utilisateur :
Set-MgUser -UserId $userId -OnPremisesImmutableId $immutableId - Validez la configuration :
Get-MgUser -UserId $userId | fl Id, OnPremisesImmutableId
Si l’utilisateur a déjà un Immutable ID défini, vous devez déplacer l’utilisateur hors du domaine fédéré, définir l’Immutable ID, puis le remettre dans le domaine fédéré.
- Déplacer l’utilisateur vers un domaine non fédéré :
$userId = "user-id@my-domain.com" $userIdTemp = "user-id@yourtenant.onmicrosoft.com" Update-MgUser -UserId $userId -UserPrincipalName $userIdTemp - Définir le nouvel Immutable ID de l’utilisateur :
$immutableId = "immutable-id" # The user's Immutable ID - base64 encoded. Set-MgUser -UserId $userIdTemp -OnPremisesImmutableId $immutableId - Déplacer l’utilisateur de nouveau vers le domaine fédéré :
Update-MgUser -UserId $userIdTemp -UserPrincipalName $userId
4b - Ou bien, configurez l’Immutable ID de l’utilisateur dans Microsoft Entra ID avec Graph API
- Obtenez un jeton d’accès pour Microsoft Graph API avec les scopes requis.
- Effectuez une requête
PATCHvers l’endpoint/users/{id | userPrincipalName}avec le corps JSON suivant :
Remplacez{ "onPremisesImmutableId": "immutable-id" }immutable-idpar la valeur d’Immutable ID souhaitée qui correspond à la revendication NameID envoyée par FoxIDs. - Validez la configuration en effectuant une requête
GETvers l’endpoint/users/{id | userPrincipalName}et en vérifiant la propriétéonPremisesImmutableIddans la réponse.
Si l’utilisateur a déjà un Immutable ID défini, vous devez déplacer l’utilisateur hors du domaine fédéré, définir l’Immutable ID, puis le remettre dans le domaine fédéré.
- Effectuez une requête
PATCHvers l’endpoint/users/{id | userPrincipalName}pour changer leuserPrincipalNamevers un domaine non fédéré. - Effectuez une requête
PATCHpour définir le nouvel Immutable ID. - Effectuez une requête
PATCHpour changer leuserPrincipalNamede nouveau vers le domaine fédéré. - Validez la configuration en effectuant une requête
GETvers l’endpoint/users/{id | userPrincipalName}et en vérifiant la propriétéonPremisesImmutableIddans la réponse.