Gérer le SSO pour Microsoft avec PowerShell
Ce guide explique comment configurer ou supprimer Microsoft SSO à l’aide de commandes PowerShell, et comment synchroniser les utilisateurs entre Entra ID et votre Active Directory local. Il offre une alternative à l’assistant UserLock SSO, idéale pour les déploiements automatisés ou réalisés par script.
Note
Si vous configurez le SSO pour Microsoft pour la première fois, référez-vous d’abord à la page Configuration standard Microsoft.
Les administrateurs peuvent fédérer ou défédérer manuellement des domaines Entra ID à l’aide des modules PowerShell Microsoft Entra.
Ils peuvent également gérer les utilisateurs pour créer ou synchroniser des comptes Entra ID avec leur Active Directory local.
Cette méthode est idéale pour l’automatisation, les configurations à distance ou les scénarios de dépannage lorsque l’interface graphique n’est pas disponible.
Note
Les opérations PowerShell modifient directement les paramètres de fédération d’Entra ID. Vérifiez toujours toutes les valeurs avant de les appliquer.
✅️ PowerShell 5.1 ou version ultérieure.
✅️ Le module PowerShell Microsoft.Graph doit être installé.
✅️ Des identifiants Administrateur général dans votre locataire Entra ID.
✅️ Une connectivité réseau aux points de terminaison Entra ID.
✅️ Un domaine vérifié dans Entra ID.
Avant d’exécuter une commande, connectez-vous à Microsoft Graph en utilisant les autorisations nécessaires.
Ouvrez un terminal PowerShell.
Connectez-vous à Microsoft Graph.
powershellConnect-MgGraph -Scopes "Domain.ReadWrite.All User.ReadWrite.All Directory.ReadWrite.All Directory.AccessAsUser.All"Lorsque cela vous est demandé, connectez-vous avec votre compte Administrateur général Entra ID.

Si vous gérez plusieurs locataires, récupérez et vérifiez le contexte actuel :
powershell$context = Get-MgContext; $contextConnectez-vous spécifiquement à ce locataire :
powershellConnect-MgGraph -NoWelcome -TenantId $context.TenantId -Scopes "Domain.ReadWrite.All User.ReadWrite.All Directory.ReadWrite.All Directory.AccessAsUser.All"
Vérifiez la méthode d’authentification utilisée par votre domaine.
powershellGet-MgDomain -DomainId yourdomain.comSi le domaine est fédéré, examinez sa configuration de fédération.
powershellGet-MgDomainFederationConfiguration -DomainId yourdomain.com
Récupérez le certificat SAML de UserLock SSO et stockez-le dans une variable PowerShell :
powershell$response = Invoke-RestMethod -Uri "https://<userlock_sso>/api/infos/certificate" -Method GET $certData = $response.currentCertificate.rawCertificateFédérez votre domaine en utilisant UserLock SSO :
powershellNew-MgDomainFederationConfiguration ` -DomainId yourdomain.com ` -IssuerUri "https://<userlock_sso>/.domain.com" ` -PassiveSignInUri "https://<userlock_sso>/saml/sso" ` -SignOutUri "https://<userlock_sso>/connect/endsession" ` -SigningCertificate $certData ` -FederatedIdpMfaBehavior "acceptIfMfaDoneByFederatedIdp" ` -IsSignedAuthenticationRequestRequired ` -PreferredAuthenticationProtocol saml
Si vous devez annuler la fédération et revenir à une authentification gérée pour votre domaine, exécutez la commande suivante :
Update-MgDomain -DomainId yourdomain.com -AuthenticationType ManagedVous devez d’abord vous connecter à l'API Graph.
Get-MgUser -UserId user@domain.com -Property "Mail, DisplayName, GivenName, Surname, UserPrincipalName, OnPremisesImmutableId" | select Mail, DisplayName, GivenName, Surname, UserPrincipalName, OnPremisesImmutableIdNote
Cette méthode ne doit être utilisée que si vous rencontrez des problèmes avec l'assistant UserLock SSO ou les solutions Microsoft Entra
Créez l’utilisateur dans le domaine par défaut en remplaçant les valeurs d’exemple dans ce script (xxx.onmicrosoft.com) :
powershell$immutableId = [convert]::ToBase64String((Get-ADUser -Identity <samAccountName>| Select-Object -ExpandProperty ObjectGUID).ToByteArray()) $PasswordProfile = @{Password = 'MySuperStrongPassword' ForceChangePasswordNextSignIn = $false} New-MgUser -UserPrincipalName newuser@office365domain.onmicrosoft.com -DisplayName '<Firstname> <Lastname>' -OnPremisesImmutableId $immutableId -PasswordProfile $PasswordProfile -AccountEnabled -MailNickname <Nickname>Déplacez l’utilisateur vers le domaine fédéré :
powershellUpdate-MgUser -UserId newuser@office365domain.onmicrosoft.com -UserPrincipalName newuser@domain.com
Déplacez l’utilisateur vers le domaine par défaut :
powershellUpdate-MgUser -UserId newuser@domain.com -UserPrincipalName newuser@office365domain.onmicrosoft.comAjoutez la valeur de l’ImmutableId :
powershell$immutableId = [convert]::ToBase64String((Get-ADUser -Identity <samAccountName>| Select-Object -ExpandProperty ObjectGUID).ToByteArray()) Update-MgUser -UserId newuser@domain.com -OnPremisesImmutableId $immutableIdDéplacez à nouveau l’utilisateur vers le domaine fédéré :
powershellUpdate-MgUser -UserId newuser@office365domain.onmicrosoft.com -UserPrincipalName newuser@domain.com