Office 365 : activer le MFA avec PowerShell

I. Présentation

Dans ce tutoriel, nous allons apprendre à activer ou désactiver le MFA (authentification multifacteur) sur les comptes utilisateurs Office 365 avec PowerShell.

Il s'agit du troisième article au sujet du MFA avec Office 365 puisque j'ai déjà publié les deux tutoriels suivants :

Cette fois-ci encore, nous allons utiliser le module MSOnline. Je vous rappelle que même si ce module est plutôt en fin de vie, et qu'il serait mieux d'utiliser le module Microsoft Graph, je n'ai pas trouvé de commandes permettant de gérer le MFA via ce module. Lorsque ce sera pris en charge par Microsoft Graph, cet article sera actualisé.

II. Activer le MFA avec PowerShell

Ouvrez une console Windows PowerShell afin d'exécuter la commande ci-dessous pour établir une connexion à Office 365. Le prérequis c'est bien sûr de disposer du module MSOnline.

Connect-MsolService

Une fenêtre va s'ouvrir, authentifiez-vous. Ensuite, il ne reste plus qu'à s'amuser avec PowerShell pour gérer le MFA sur les comptes utilisateurs.

Il est nécessaire de créer un objet de type "Microsoft.Online.Administration.StrongAuthenticationRequirement" avec plusieurs propriétés pour activer le MFA au sein d'un compte utilisateur. Cela nous donne les lignes suivantes :

$Mfa = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement
$Mfa.RelyingParty = "*"
$Mfa.State = "Enabled"
$MfaStatus = @($Mfa)

La variable $MfaStatus contient notre objet et ses propriétés. Cette variable va être utilisée au sein de la commande Set-MsolUser pour activer (ou désactiver) le MFA sur un utilisateur.

Voici un exemple :

Set-MsolUser -UserPrincipalName [email protected] -StrongAuthenticationRequirements $MfaStatus

Voilà, le MFA est désormais activé pour cet utilisateur et il n'aura plus qu'à configurer un second facteur d'authentification.

Office 365 - Activer MFA avec PowerShell

Prenons un autre exemple : on souhaite activer le MFA sur tous les membres d'un groupe de sécurité Active Directory. Pour cela, il faut que l'on commence à récupérer les membres de notre groupe "O365-Licence-E3" dans l'AD :

$Users = Get-ADGroupMember -Identity "O365-Licence-E3" | Foreach{ Get-ADUser -Identity $_.SamAccountName } | Select-Object UserPrincipalName

La commande ci-dessus récupère l'attribut UserPrincipalName car il s'agit de comptes synchronisés via Azure AD Connect donc il s'agit de l'attribut de référence pour l'identifiant du compte Office 365. Vous pouvez sélectionner un autre attribut, comme le champ "mail" par exemple.

Ensuite, il suffit de traiter chaque compte afin d'activer le MFA (en réutilisant l'objet déclaré précédemment) :

$Users | Set-MsolUser -StrongAuthenticationRequirements $MfaStatus

En résumé, voici les différentes lignes de commande PowerShell :

Connect-MsolService

$Mfa = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement
$Mfa.RelyingParty = "*"
$Mfa.State = "Enabled"
$MfaStatus = @($Mfa)

$Users = Get-ADGroupMember -Identity "O365-Licence-E3" | Foreach{ Get-ADUser -Identity $_.SamAccountName } | Select-Object UserPrincipalName
$USers | Set-MsolUser -StrongAuthenticationRequirements $MfaStatus

Nous pourrions imaginer le même type d'exemple avec un fichier CSV en entrée.

III. Désactiver le MFA avec PowerShell

Pour désactiver le MFA, il ne faut pas reprendre le bout de code précédent et remplacer "Enabled" par "Disabled" car cela ne fonctionnera pas. Par contre, si l'on initialise notre variable $MfaStatus sans lui attribuer la moindre propriété, cela va supprimer la configuration MFA sur l'utilisateur et donc désactiver le MFA.

Il suffira de faire :

$MfaStatus = @()

Puis, de mettre à jour le compte :

Set-MsolUser -UserPrincipalName [email protected] -StrongAuthenticationRequirements $MfaStatus

Si vous avez besoin de désactiver le MFA sur tous les comptes utilisateurs de votre tenant (ou de l'activer sur tous les comptes), je vous invite à utiliser le script fourni par Microsoft et disponible sur cette page (testé et approuvé !) :

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 3786 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.