Connexion à Microsoft 365 à l’aide de PowerShell : modules Azure AD

PowerShell

Logo PowerShell et logo Microsoft 365

Cet article explique comment se connecter via PowerShell à Azure Active Directory, (Azure AD), qui gère les identités et licences des tenants Microsoft 365. Je vais également aborder la connexion à d’autres services et produits Microsoft 365, comme Exchange, SharePoint et Microsoft Teams.

Pourquoi se connecter via PowerShell

Avantages de la connexion à Office 365

Si vous avez utilisé les technologies Microsoft au cours des dix dernières années, vous savez que PowerShell constitue le langage de choix pour gérer et configurer de nombreux produits Microsoft. Il existe de nombreuses raisons d’utiliser PowerShell pour gérer Microsoft 365 :

  • Automatiser des tâches et gagner en productivité : vous pouvez réaliser des opérations par lot avec PowerShell, par exemple attribuer des licences ou configurer les paramètres des boîtes aux lettres.
  • Définir des paramètres accessibles uniquement avec PowerShell : Microsoft ne peut pas intégrer tous les paramètres au centre d’administration. PowerShell constitue ainsi parfois le seul moyen de modifier un élément de configuration. Pour découvrir quelques exemples de paramètres devant être modifiés par PowerShell, consultez l’article 7 Hidden Office 365 Settings You Can Unlock with PowerShell de Vlad Catrinescu.
  • Filtrer les données : PowerShell peut filtrer des données et fournir des résultats pertinents, comme le type de boîte aux lettres ou l’emplacement attribué à un utilisateur.
  • Exporter des données : PowerShell peut recueillir et filtrer des données, mais aussi en exporter. En règle générale, l’exportation génère un fichier CSV, mais vous pouvez également recourir aux formats JSON et XML.
  • Gestion transversale : chaque service dispose de ses propres fonctions de gestion PowerShell. PowerShell peut exécuter des opérations dans chaque service pour intégrer de nouveaux comptes d’utilisateur ou établir un rapport concernant plusieurs services.
  • Standardisation : vous pouvez écrire un script ou une fonction dans PowerShell pour standardiser une tâche, par exemple la création d’un compte d’utilisateur ou la configuration d’un nouveau site SharePoint. En faisant en sorte que cette tâche puisse être reproduite, vous vous assurez que le processus suit des procédures spécifiques à chaque fois, alors que des étapes peuvent être oubliées en cas d’exécution manuelle depuis le centre d’administration.

Avant la connexion au module Azure AD PowerShell

Étapes à suivre avant la connexion à Office 365

Vous devez répondre à certains critères avant d’établir la connexion à Azure AD à l’aide de PowerShell. Tout d’abord, vous devez disposer d’un compte dont les privilèges sont suffisants pour la connexion. L’administrateur général a accès au plus grand nombre de fonctionnalités de gestion et données des différents services. Toutefois, Microsoft recommande de se limiter à 2, 3 voire 4 administrateurs généraux par tenant. Vous devez leur attribuer le rôle le plus limité possible permettant d’accomplir les tâches qui leur incombent. Les autres rôles sont Lecteur général, Administrateur de groupes et Administrateur du support technique. Deux modules permettent de gérer Azure AD pour Microsoft 365 :

  • Module Azure Active Directory pour Windows PowerShell
    • Version 1 du module pour Azure Active Directory
    • Aussi appelé MSOnline
    • Les cmdlets comportent « Msol » dans leur nom
  • Module Azure Active Directory PowerShell pour Graph
    • Version 2 du module pour Azure Active Directory
    • Les cmdlets comportent « AzureAD » dans leur nom

La version 2 du module pour Graph ne remplace pas totalement la version 1 du module Windows PowerShell. De manière générale, privilégiez le module pour Graph. Toutefois, vous pourrez avoir besoin dans certains cas d’utiliser l’ancienne version du module. Ces deux modules demandent la configuration suivante et peuvent être installés indépendamment sur le même système :

  • Version du système d’exploitation : vous pouvez utiliser diverses versions de Windows pour vous connecter :
    • Windows 7 SP1, Windows 8, Windows 8.1 et Windows 10
    • Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 et Windows Server 2019
  • Architecture du système d’exploitation : vous devez utiliser une version 64 bits de Windows.

PowerShell Core versions 7 et supérieures ne prennent pas en charge le module Microsoft Azure Active Directory pour Windows PowerShell. Si vous utilisez PowerShell version 7 ou ultérieure, vous devez vous tourner vers le module Azure Active Directory PowerShell pour Graph. Le module Microsoft Azure Active Directory pour Windows PowerShell demande l’installation de l’Assistant de connexion Microsoft Online Services pour les professionnels des technologies de l’information RTW si vous n’utilisez pas Windows 10. Ensuite, vous devez installer chaque module depuis PowerShell Gallery. PowerShell Gallery est un référentiel regroupant de nombreux modules Microsoft PowerShell. Il permet aux utilisateurs d’installer rapidement et facilement des modules, mais aussi de les mettre à jour directement depuis PowerShell. Les modules sont installés en indiquant leur nom à l’aide du cmdlet Install-Module. Pour installer le module Azure Active Directory pour Windows PowerShell, exécutez la commande PowerShell suivante :

Install-Module -Name MSOnline

Pour installer le module Azure Active Directory PowerShell pour Graph, exécutez la commande PowerShell suivante :

Install-Module -Name AzureAD

Si vous recevez un message évoquant une installation depuis un référentiel non fiable, assurez-vous qu’il concerne bien le référentiel PSGallery, puis appuyez sur la touche YCapture d’écran de référentiels non fiables Pour éviter que ce message ne s’affiche à l’avenir, vous pouvez exécuter la commande PowerShell suivante pour faire du référentiel PSGallery un emplacement d’installation de confiance :

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

Comment se connecter via PowerShell à Microsoft 365

Chaque module dispose de différentes commandes pour la connexion à Azure Active Directory. Vous pouvez également enregistrer vos identifiants de compte pour créer une session PowerShell bien plus rapidement.

1. Créer un objet PSCredential

Un objet PSCredential permet de stocker un nom d’utilisateur et un mot de passe que vous pouvez utiliser pour vous authentifier auprès de différents services. Pour créer un tel objet sous forme de variable, utilisez le cmdlet Get-Credential. Une fenêtre vous invite alors à saisir le nom d’utilisateur et le mot de passe de l’administrateur. L’enregistrement des identifiants dans une variable facilite leur réutilisation dans plusieurs cmdlets de connexion.

Get-Credential

Capture d’écran de la création d’un identifiant

2. Se connecter au service MSOnline

Pour vous connecter avec le module Azure Active Directory pour Windows PowerShell (module MSOnline), utilisez le cmdlet Connect-MsolService avec la variable $M365credentials.

Connect-MsolService -Credential $M365credentials

3. Se connecter au service AzureAD

Pour vous connecter avec le module Azure Active Directory PowerShell pour Graph, utilisez le cmdlet Connect-AzureAD, encore une fois avec la variable $M365credentials contenant le nom d’utilisateur et le mot de passe.

Connect-AzureAD -Credential $M365credentials

4. Vérifier la connexion

Si PowerShell parvient à se connecter avec le module MSOnline, la fenêtre n’affichera aucun message. Vous pouvez néanmoins exécuter le cmdlet Get-MsolCompanyInformation pour vous assurer que vous êtes connecté au bon tenant Azure AD.

Get-MsolCompanyInformation

Capture d’écran d’une commande get Msol company info Si PowerShell parvient à établir une connexion à l’aide du module AzureAD, la fenêtre indique le compte de connexion, l’environnement, l’ID du tenant et le domaine du tenant. Capture d’écran de la connexion à Azure AD

Comment se connecter via PowerShell à d’autres plateformes 365

La connexion à Azure AD à l’aide de PowerShell n’est que le début. Vous pouvez certes gérer les paramètres des tenants et utilisateurs, mais Azure AD n’a pas accès aux autres services hébergés sur Microsoft 365. Les autres produits dans le cloud disposent chacun de leur propre méthode de connexion PowerShell à l’aide de modules et cmdlets spécifiques. Les sections suivantes montrent comment se connecter aux principaux services de Microsoft 365.

Connexion à Exchange Online

Pour vous connecter à Exchange Online, vous deviez jusqu’ici créer une session PowerShell distante et l’importer. Microsoft a toutefois amélioré ce processus en proposant un module disposant de son propre cmdlet de connexion. Le nouveau module ExchangeOnlineManagement (disponible dans PowerShell Gallery) dispose de l’ensemble des cmdlets de la version 1 de PowerShell distant, mais en inclut aussi de nouveaux qui améliorent les performances lors des tâches liées aux boîtes aux lettres et autres objets des destinataires. Pour utiliser ce nouveau module, vous devez l’installer depuis PowerShell Gallery à l’aide du cmdlet Install-Module, comme vous l’avez fait pour les modules Azure AD. Vous devez ensuite utiliser le cmdlet Connect-ExchangeOnline avec la variable renfermant vos identifiants pour établir la connexion PowerShell.

Install-Module -Name ExchangeOnlineManagement

Connect-ExchangeOnline -Credential $M365credentials

Capture d’écran de la connexion à Exchange Online

Connexion au centre de conformité et de sécurité

Vous pouvez créer des dossiers de conformité, effectuer des recherches dans le journal d’audit et créer des politiques de conservation avec PowerShell en vous appuyant sur le centre de conformité et de sécurité. La disponibilité du nouveau module ExchangeOnlineManagement que nous avons évoqué dans la section précédente vous permet de vous connecter au centre de sécurité et de communiquer à l’aide de Connect-IPPSSession et de votre objet d’identifiant. Vous pouvez ensuite exécuter une commande comme Get-AdminAuditLogConfig pour vous assurer que la connexion est bien établie.

Connect-IPPSSession -Credential $M365Credential

Capture d’écran d’une session IPPSS Si vous vous connectez à un tenant Office 365 allemand, vous devez spécifier le paramètre -ConnectionUri avec la valeur « https://ps.compliance.protection.outlook.de/PowerShell-LiveID ». Pour en savoir plus sur les cas particuliers, reportez-vous au document Connect-IPPSSession.

Connexion à SharePoint Online

SharePoint Online dispose aussi de son propre module pour s’y connecter depuis une session PowerShell. Vous pouvez obtenir le module SharePoint Online Management Shell en téléchargeant et installant le fichier exécutable depuis le site de Microsoft. Vous pouvez également l’installer depuis PowerShell Gallery avec la commande Install-Module. Pour vous connecter à SharePoint Online avec PowerShell, utilisez le cmdlet Connect-SPOService et l’objet d’identifiant. Vous devez également préciser l’URL SharePoint de l’administrateur du tenant. Cette URL contient le nom du tenant (nom apparaissant dans votre domaine .onmicrosoft.com), suivi de « -admin.sharepoint.com ». Dans cet exemple, le nom de mon tenant est « upstarttech ».

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

$orgName = “upstarttech”

Connect-SPOService -Url “https://$orgName-admin.sharepoint.com” -Credential $M365Credentials

Capture d’écran du service SPO Si vous avez reçu un message d’erreur vous indiquant que le site Web ne prend pas en charge les identifiants SharePoint Online, essayez de vous connecter sans préciser le paramètre -Credential. PowerShell vous invitera à indiquer le nom d’utilisateur et le mot de passe. Une fois connecté, vérifiez certains des paramètres de configuration du tenant avec la commande suivante :

Get-SPOTenant | Select-Object LegacyAuthProtocolsEnabled, RequireAcceptingAccountMatchInvitedAccount

Pour utiliser un objet PSCredential, LegacyAuthProtocolsEnabled doit être « true » et RequireAcceptingAccountMatchInvitedAcount « false ». Si vous modifiez ces valeurs, vérifiez les mécanismes de sécurité ou intégrations tierces pouvant être affectés par ces changements. La modification peut ne pas être effective immédiatement.

Connexion à Microsoft Teams

Microsoft Teams gagne rapidement en popularité au sein du service Microsoft 365. Comme pour d’autres, Microsoft propose un module spécifique dans PowerShell Gallery. Pour installer ce module, vous pouvez utiliser une nouvelle fois le cmdlet Install-Module et préciser le module MicrosoftTeams. Vous pouvez ensuite utiliser le cmdlet Connect-MicrosoftTeams pour vous connecter au service en utilisant la variable PSCredential. Si la connexion réussit, des informations sur le tenant Microsoft Teams s’affichent.

Install-Module -Name MicrosoftTeams

Connect-MicrosoftTeams -Credential $M365credentials

Capture d’écran de la connexion à Office 365

Connexion à Skype Entreprise Online

Précédemment, vous deviez télécharger et installer manuellement le module depuis le centre de téléchargement de Microsoft pour vous connecter à Skype Entreprise Online. Depuis peu, Microsoft intègre le cmdlet New-CsOnlineSession directement dans le module MicrosoftTeams que vous avez installé si vous avez suivi les instructions de la section précédente. Même si Microsoft prévoit de désactiver Skype Entreprise Online en juillet 2021, de nombreux paramètres de Microsoft Teams et tâches d’administration des politiques sont encore liés au service. Pour vous connecter à Skype Entreprise Online depuis PowerShell, vous devez enregistrer une session PowerShell distante dans une variable à l’aide du cmdlet New-CsOnlineSession, puis importer la session. Si la connexion réussit, PowerShell affiche le module temporaire qui contient tous les cmdlets Skype Entreprise Online.

$skypeSession = New-CsOnlineSession -Credential $M365credentials

Import-PSSession -Session $skypeSession

Authentification à plusieurs facteurs

L’authentification à plusieurs facteurs est un mécanisme de sécurité qui impose de recourir à une forme d’authentification supplémentaire en plus du mot de passe. Elle peut prendre la forme de notifications Push depuis une application mobile, de jetons matériels ou de codes envoyés par SMS. Au minimum, les comptes des administrateurs doivent être associés à ce type d’authentification, car ils disposent de privilèges supplémentaires et nécessitent donc une sécurité renforcée. Aujourd’hui, de plus en plus d’entreprises activent l’authentification à plusieurs facteurs pour sécuriser les comptes des utilisateurs standard et éviter les vols d’identifiants.

Comment utiliser l’authentification à plusieurs facteurs avec Office 365 et PowerShell

Si le compte administrateur est associé à une authentification à plusieurs facteurs, vous n’utiliserez pas d’identifiants enregistrés comme je l’ai fait dans les exemples précédents. La session doit être authentifiée à l’aide d’une fenêtre OAuth interactive invitant à procéder à une vérification secondaire. Revenons à la connexion au module AzureAD Graph avec un compte pour lequel l’authentification à plusieurs facteurs est demandée. Je vais de nouveau exécuter Connect_AzureAD, cette fois sans spécifier d’objet d’identifiant. Je suis invité à saisir mon nom d’utilisateur et mon mot de passe, puis je dois effectuer la vérification secondaire à l’aide de l’application mobile Microsoft Authenticator. Invite à saisir le nom d’utilisateur et le mot de passe : Capture d’écran de la première étape de la connexion à plusieurs facteurs  Le processus d’authentification me demande aussi de confirmer mon identité en approuvant la tentative d’authentification à l’aide d’une deuxième forme d’authentification : 

Comment définir un mot de passe d’application pour Microsoft 365 et PowerShell

Le recours à une authentification à plusieurs facteurs ajoute certes un niveau de sécurité supplémentaire, mais elle peut poser problème si un script PowerShell doit s’exécuter sans interaction. Imaginons que vous avez besoin d’une protection supplémentaire, mais que vous ne pouvez pas valider le deuxième facteur d’authentification dans tous les cas. Pour résoudre ce problème, vous devez créer un mot de passe d’application. Les mots de passe d’application permettent de remplacer le mot de passe de votre compte standard. Une application peut ainsi contourner l’authentification à plusieurs facteurs. Les applications ne prenant pas en charge l’authentification à plusieurs facteurs peuvent utiliser des mots de passe d’application. Pour configurer un mot de passe d’application :

  1. Rendez-vous sur https://aka.ms/mfasetup et sélectionnez le menu Mots de passe d’application.
  2. Cliquez sur le bouton Créer et donnez au mot de passe un nom expliquant son objectif.
  3. Après avoir cliqué sur Suivant, vous verrez s’afficher dans la fenêtre le mot de passe d’application. Enregistrez-le dans un gestionnaire de mots de passe, car vous ne pourrez pas le récupérer.

Avec mon nouveau mot de passe d’application, je peux créer un nouvel objet PSCredential. Plutôt que d’enregistrer mon mot de passe de compte standard, je vais utiliser le mot de passe d’application. Une fois la nouvelle variable PSCredential créée, je vais l’utiliser pour établir ma connexion. Capture d’écran de la création de mots de passe d’application Capture d’écran de la connexion à Azure AD avec AppPassword

Récapitulatif

La maîtrise de PowerShell vous permettra d’acquérir de nouvelles compétences d’administration. Savoir se connecter à Microsoft 365 à l’aide de PowerShell n’est que le début. Vous pouvez effectuer rapidement des modifications dans les différents services ou des tâches d’administration du tenant qui ne sont pas disponibles dans le centre d’administration. Consultez des tutoriels de création de scripts PowerShell de base supplémentaires pour renforcer vos compétences.

Jeff Brown

Jeff Brown

Jeff Brown est un ingénieur en informatique Cloud, spécialisé dans les technologies Microsoft telles qu'Office 365, Teams, Azure et PowerShell.

 

Votre cybersécurité est-elle au cœur de votre infrastructure ?

Bénéficiez d'une évaluation personnalisée des risques auxquels sont exposées vos données, effectuée par des ingénieurs passionnés par la sécurité des données.