Commandes Powershell pour Microsoft 365
Microsoft 365 et Azure AD (devenu Microsoft Entra ID) peuvent être configurés entièrement avec Powershell. Ce document contient de multiples commandes très utiles par rapport à la fédération du domaine et de l’authentification unique (SSO).
Le module MSOnline, nécessaire pour ces commandes, est installé lors du premier lancement de l’outil de configuration de Microsoft 365 (Configuration Office365 tool)
Connexion aux services Microsoft 365
Les identifiants doivent être les identifiants d’un administrateur global de Microsoft 365.
$creds = Get-Credential
Connect-MsolService -Credential $creds
Fédération du Domaine
Afficher les paramètres du domaine
Get-MsolDomain -DomainName domain.com
Afficher les paramètres de fédération du domaine
Get-MsolDomainFederationSettings -DomainName domain.com
Fédérer un domaine avec UserLock
- Récupérer les données du certificat: https://<userlockssourl>/api/infos/certificate ou: Single-sign on -> Configuration -> Télécharger le cetificat Saml dans le panneau d’accès rapide.
- Les enregistrer dans une variable Powershell
$certData = "MIICrDCCAZSgAwIBAgI...4Dc6EKzvrg=="
- Utiliser la commande suivante
Set-MsolDomainAuthentication -DomainName domain.com -Authentication Federated -PassiveLogOnUri https://<userlockssourl>/saml/sso -SigningCertificate $certData -IssuerUri https//<userlockssourl> -PreferredAuthenticationProtocol Samlp -LogOffUri https://<userlockssourl>/connect/endsession
Annuler la fédération
Set-MsolDomainAuthentication -DomainName domain.com -Authentication Managed
Gestion des Utilisateurs
Afficher les informations de l’utilisateur
Pour afficher les propriétés d’utilisateurs Microsoft 365, il est possible d’utiliser la commande Get-MsolUser:Get-MsolUser -UserPrincipalName user@office365domain.onmicrosoft.com
Pour afficher toutes les propriétés, ajouter la commande Format-List *:
Get-MsolUser -UserPrincipalName user@office365domain.onmicrosoft.com | Format-List *
Synchroniser un utilisateur
Désactiver Azure AD Connect
Dans un premier temps, si Azure AD Connect est actif, vous devez le désactiver sinon aucune des opérations suivantes ne seront autorisées.
Pour désactiver temporairement Azure AD Connect, vous pouvez lancer la commande suivante:
Set-MsolDirSyncEnabled -EnableDirSync $false
Pour réactiver la synchronisation d’Azure AD Connect, lancez la commande suivante :
Set-MsolDirSyncEnabled -EnableDirSync $true
L’ ImmutableId
Pour autoriser un utilisateur de Microsoft 365 à se connecter avec ses identifiants AD, il est nécessaire de synchroniser son ImmutableID, cette propriété étant partagée par l’utilisateur local (AD) et l’utilisateur Microsoft 365 (Azure AD).
Appelée ImmutableId dans Azure AD, la propriété locale correspondante est l’objectGUID de l’utilisateur. Les deux propriétés doivent correspondre pour qu’Azure AD reconnaisse un utilisateur AD. Donc, avant de synchroniser l’ImmutableId, il est nécessaire de récupérer la liste des objectGUID locaux pour les utilisateurs AD. Pour cela, exécuter les étapes suivantes :
- Ouvrir un cmd prompt
- Exécuter la commande suivante:
ldifde -f C:\Temp\ImmutableIds.txt -l
"userPrincipalName,samAccountName,proxyAddresses,objectGUID,mail" -r "(&(objectCategory=person)(objectClass=User)(givenname=*))"
Note: Vous aurez probablement besoin de créer un dossier Temp dans le disque C: ou de changer le chemin du fichier généré dans la commande précédente.
Lorsqu’un utilisateur n’existe pas encore dans Azure AD
Si un utilisateur n’existe pas encore il peut être créé avec la commande Msol-NewUser. Cependant si le domaine cible est déjà fédéré, il n’est pas possible de le créer directement dedans.
Il faut d’abord créer un utilisateur dans le domaine par défaut avec l’ImmutableId avant de le déplacer dans le domaine fédéré.
Le domaine par défaut se termine généralement par onmicrosoft.com. Exemple: office365domain.onmicrosoft.com
Le domaine fédéré est le domaine des adresses mails de vos utilisateurs. Exemple: domain.com.
- Recherchez l'ImmutableId de vos utilisateurs AD dans le fichier ImmutableIds.txt (propriété objectGUID)
- Créez l’utilisateur dans le domaine par default (xxx.onmicrosoft.com)
New-MsolUser -DisplayName 'New User' -UserPrincipalName newuser@office365domain.onmicrosoft.com -ImmutableId 'immutableId' -Password 'a useless password'
- Déplacez l’utilisateur dans le domaine fédéré:
Set-MsolUserPrincipalUserName -UserPrincipalName newuser@office365domain.onmicrosoft.com -NewUserPrincipalName newuser@domain.com
Note 1: Il n’est pas possible d’assigner un ImmutableId à un utilisateur d’un domaine fédéré, d’où l’étape dans le domaine par défaut même à la création de l’utilisateur.
Note 2: le mot de passe ne sera pas utilisé tant que l’utilisateur est dans le domaine fédéré, les identifiants AD seront utilisés.
Lorsqu’un utilisateur existe déjà dans Azure AD
Si l’utilisateur existe déjà, il n’est pas possible d’utiliser la commande New-MsolUser. Cependant vous pouvez utiliser la commande Set-MsolUser pour définir l’ImmutableId. Dans un premier temps, vérifiez que l’ImmutableId est bien invalide en affichant les propriétés de l’utilisateur (voir ci-dessus). Comparez l’ImmutableId avec objectGUID. Si les deux correspondent, il n’y a rien à faire, l’utilisateur est déjà correctement synchronisé.
Comme il n’est pas possible d’attribuer un ImmutableId à un utilisateur d’un domaine fédéré, vous devez d’abord de le déplacer dans le domaine par défaut. Ensuite, la commande Set-MsolUser pourra être utilisée afin de mettre à jour l’ImmutableId avec l’objectGUID trouvé dans ImmutableIds.txt. Pour terminer, l’utilisateur pourra être transféré de nouveau dans le domaine fédéré.
- Déplacer l’utilisateur dans le domaine par défaut :
Set-MsolUserPrincipalUserName -UserPrincipalName user@domain.com -NewUserPrincipalName user@office365domain.onmicrosoft.com
- Mettre à jour l’ImmutableId:
Set-MsolUser -UserPrincipalName user@office365domain.onmicrosoft.com -ImmutableId UserImmutableId
- Transférer l’utilisateur dans le domaine fédéré :
Set-MsolUserPrincipalUserName -UserPrincipalName user@office365domain.onmicrosoft.com -NewUserPrincipalName user@domain.com
Changer le mot de passe (Azure AD DS seulement)
Il n’est pas possible de changer le mot de passe d’un compte fédéré, il est donc nécessaire de transférer l’utilisateur dans le domaine par défaut, changer son mot de passe puis de le reconfigurer dans le domaine fédéré.
- Déplacez l’utilisateur dans le domaine par default (xxx.onmicrosoft.com)
Set-MsolUserPrincipalUserName -UserPrincipalName user@domain.com -NewUserPrincipalName user@office365domain.onmicrosoft.com
- Demandez à l’utilisateur de se connecter à pour qu’il puisse changer son mot de passe.
- Lorsque le mot de passe est modifié, replacez l’utilisateur dans le domaine fédéré:
Set-MsolUserPrincipalUserName -UserPrincipalName newuser@office365domain.onmicrosoft.com -NewUserPrincipalName newuser@domain.com
Débloquer un compte (Azure AD DS seulement)
Le déblocage d’un compte n'est pas possible en utilisant Azure AD DS.