Créer des scripts PowerShell avec Microsoft Graph et l’authentification d’application uniquement
Ce tutoriel vous apprend à créer un script PowerShell qui utilise l’API Microsoft Graph pour accéder aux données à l’aide de l’authentification d’application uniquement. L’authentification d’application uniquement est un bon choix pour les services en arrière-plan ou les applications qui doivent accéder aux données de tous les utilisateurs d’une organisation.
Remarque
Pour savoir comment utiliser Microsoft Graph pour accéder aux données au nom d’un utilisateur, consultez ce tutoriel sur l’authentification de l’utilisateur (déléguée).
Dans ce didacticiel, vous allez :
Conseil
Au lieu de suivre ce didacticiel, vous pouvez télécharger ou cloner le dépôt GitHub et suivre les instructions du fichier LISEZ-MOI pour inscrire une application et configurer le projet.
Configuration requise
Avant de commencer ce didacticiel, PowerShell doit être installé sur votre ordinateur de développement. PowerShell 5.1 est la configuration minimale requise, mais PowerShell 7 est recommandé.
Vous devez également disposer d’un compte professionnel ou scolaire Microsoft avec le rôle Administrateur général. Si vous n’avez pas de locataire Microsoft 365, vous pouvez être éligible pour un client via le Programme pour les développeurs Microsoft 365 ; Pour plus d’informations, consultez la FAQ. Vous pouvez également vous inscrire à un essai gratuit de 1 mois ou acheter un plan Microsoft 365.
Remarque
Ce tutoriel a été écrit avec PowerShell 7.2.2 et le Kit de développement logiciel (SDK) Microsoft Graph PowerShell version 1.9.5. Les étapes décrites dans ce guide peuvent fonctionner avec d’autres versions, mais elles n’ont pas été testées.
Inscrire l’application sur le portail
Dans cet exercice, vous allez inscrire une nouvelle application dans Microsoft Entra pour activer l’authentification d’application uniquement.
Créer un certificat auto-signé
Le Kit de développement logiciel (SDK) Microsoft Graph PowerShell nécessite un certificat pour l’authentification d’application uniquement. À des fins de développement, un certificat auto-signé est suffisant. Vous avez besoin d’un certificat avec la clé privée installée sur l’ordinateur local et la clé publique exportée dans un . CER, . PEM ou . Fichier CRT.
Sur Windows, vous pouvez utiliser le module PowerShell pki pour générer le certificat.
$cert = New-SelfSignedCertificate -Subject "CN=PowerShell App-Only" -CertStoreLocation `
"Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 `
-KeyAlgorithm RSA -HashAlgorithm SHA256
Export-Certificate -Cert $cert -FilePath "./PowerShellAppOnly.cer"
Inscrire l’application pour l’authentification d’application uniquement
Dans cette section, vous allez inscrire une application qui prend en charge l’authentification d’application uniquement à l’aide du flux d’informations d’identification du client.
Ouvrez un navigateur et accédez au Centre d’administration Microsoft Entra et connectez-vous à l’aide d’un compte d’administrateur général.
Sélectionnez Id Microsoft Entra dans le volet de navigation de gauche, développez Identité, Applications, puis inscriptions d’applications.
Sélectionnez Nouvelle inscription. Entrez un nom pour votre application, par exemple .
Graph App-Only Auth Tutorial
Définissez Types de comptes pris en chargesur Comptes dans cet annuaire organisationnel uniquement.
Laissez Redirect URI vide.
Sélectionner Inscription. Dans la page Vue d’ensemble de l’application, copiez la valeur de l’ID d’application (client) et de l’ID d’annuaire (locataire) et enregistrez-les. Vous aurez besoin de ces valeurs à l’étape suivante.
Sélectionnez Autorisations de l’API dans le volet de navigation gauche sous Gérer.
Supprimez l’autorisation User.Read par défaut sous Autorisations configurées en sélectionnant les points de suspension (...) dans sa ligne et en sélectionnant Supprimer l’autorisation.
Sélectionnez Ajouter une autorisation, puis Microsoft Graph.
Sélectionnez Autorisations d’application.
Sélectionnez User.Read.All, puis Ajouter des autorisations.
Sélectionnez Accorder le consentement de l’administrateur pour..., puis sélectionnez Oui pour fournir le consentement de l’administrateur pour l’autorisation sélectionnée.
Sous Gérer, sélectionnez Certificats et secrets, puis Certificats.
Sélectionnez Charger le certificat. Chargez le fichier PowerShellAppOnly.cer ou powershell.crt que vous avez créé à l’étape précédente, puis sélectionnez Ajouter.
Remarque
Notez que, contrairement aux étapes de l’inscription à l’authentification utilisateur, dans cette section, vous avez configuré des autorisations Microsoft Graph sur l’inscription de l’application. Cela est dû au fait que l’authentification d’application uniquement utilise le flux d’informations d’identification du client, ce qui nécessite que les autorisations soient configurées lors de l’inscription de l’application. Pour plus d’informations, consultez l’étendue .default .
Ajouter l’authentification d’application uniquement
Dans cette section, vous allez utiliser l’authentification d’application uniquement avec le Kit de développement logiciel (SDK) Microsoft Graph PowerShell.
Se connecter avec l’authentification d’application uniquement
Déconnectez toute connexion Microsoft Graph existante à l’aide de la commande suivante.
Disconnect-MgGraph
Ouvrez PowerShell et utilisez la commande suivante pour définir la
$clientID
variable de session, en <remplaçant your-client-id> par l’ID client de votre inscription d’application.$clientId = <your-client-id>
Définissez la
$tenantId
variable de session, en <remplaçant your-tenant-id> par l’ID de locataire de votre organisation.$tenantId = <your-tenant-id>
Définissez la
$certificate
variable de session sur l’objet du certificat créé à l’étape précédente.$certificate = "CN=PowerShell App-Only"
Utilisez la
Connect-MgGraph
commande pour vous authentifier à l’aide du certificat de l’étape précédente.Connect-MgGraph -ClientId $clientId -TenantId $tenantId -CertificateName $certificate
Utilisez
Get-MgContext
pour vérifier que vous êtes authentifié avec l’authentification d’application uniquement. Vérifiez que AuthType estAppOnly
.PS > Get-MgContext ClientId : 2fb1652f-a9a0-4db9-b220-b224b8d9d38b TenantId : 601faea3-be45-4960-898f-92b379b17cd9 CertificateThumbprint : Scopes : {User.Read.All} AuthType : AppOnly AuthProviderType : ClientCredentialProvider CertificateName : CN=PowerShell App-Only Account : AppName : PowerShell Graph Tutorial ContextScope : Process Certificate : PSHostVersion : 2022.4.1 ClientTimeout : 00:05:00
Répertorier des utilisateurs
Dans cette section, vous allez répertorier tous les utilisateurs de votre annuaire Azure Active Directory à l’aide de l’authentification d’application uniquement.
Dans votre session PowerShell authentifiée, exécutez la commande suivante pour répertorier les utilisateurs.
Get-MgUser -Select "displayName,id,mail" -Top 25 -OrderBy "displayName"
Passez en revue la sortie.
Id DisplayName Mail UserPrincipalName UserType -- ----------- ---- ----------------- -------- 05fb57bf-2653-4396-846d-2f210a91d9cf Adele Vance AdeleV@contoso.com a36fe267-a437-4d24-b39e-7344774d606c Alex Wilber AlexW@contoso.com 54cebbaa-2c56-47ec-b878-c8ff309746b0 Allan Deyoung AllanD@contoso.com 9cb2ad7c-8e69-46a6-a947-a02c255048de Automate Bot 9a7dcbd0-72f0-48a9-a9fa-03cd46641d49 Bianca Pisani a8989e40-be57-4c2e-bf0b-7cdc471e9cc4 Brian Johnson (TAILSPIN) BrianJ@contoso.com 9e2d4937-44ee-4af4-bd56-77a12cc3ecc4 Cameron White 8990227d-31dc-4120-a38e-f652576974f4 Christie Cline ChristieC@contoso.com ...
Explication du code
Considérez la commande utilisée pour répertorier les utilisateurs.
- Il utilise
-Select
pour demander des propriétés spécifiques - Il utilise
-Top
pour limiter le nombre d’utilisateurs retournés - Il utilise
-OrderBy
pour trier la réponse
Facultatif : ajouter votre propre code
Dans cette section, vous allez utiliser vos propres commandes du Kit de développement logiciel (SDK) Microsoft Graph PowerShell. Il peut s’agir d’un extrait de code de la documentation Microsoft Graph ou de l’Explorateur Graph, ou du code que vous avez créé. Cette section est facultative.
Choisir une API
Recherchez une API dans Microsoft Graph que vous souhaitez essayer. Par exemple, l’API Répertorier les groupes . Vous pouvez utiliser l’un des exemples de la documentation de l’API, personnaliser une demande d’API dans l’Explorateur Graph et utiliser l’extrait de code généré, ou utiliser la Find-MgGraphCommand
commande pour rechercher la commande correspondante.
Par exemple, le point de terminaison d’API pour répertorier les groupes est GET /groups
. Vous pouvez l’utiliser pour rechercher la commande PowerShell correspondante.
PS > Find-MgGraphCommand -Uri "/groups" -Method "GET"
APIVersion: v1.0
Command Module Method URI OutputType Permissions
------- ------ ------ --- ---------- -----------
Get-MgGroup Groups GET /groups IMicrosoftGraphGroup {Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, G…
APIVersion: beta
Command Module Method URI OutputType Permissions
------- ------ ------ --- ---------- -----------
Get-MgGroup Groups GET /groups IMicrosoftGraphGroup1 {Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, …
La sortie indique que la Get-MgGroup
commande est la commande correspondante.
Configuration des autorisations
Consultez la section Autorisations de la documentation de référence de l’API choisie pour voir quelles méthodes d’authentification sont prises en charge. Certaines API ne prennent pas en charge les applications uniquement, par exemple.
Pour appeler une API avec l’authentification d’application uniquement (si l’API la prend en charge), ajoutez l’étendue d’autorisation requise dans le Centre d’administration Azure AD. Veillez à vous déconnecter et à vous reconnecter à l’aide de l’autorisation d’application uniquement.
Conseil
L’utilisation du -ForceRefresh
paramètre avec la Connect-MgGraph
commande garantit que les autorisations nouvellement configurées sont appliquées.
Exécuter la commande
Maintenant que vous êtes connecté avec les autorisations requises, exécutez la commande que vous avez choisie.
Félicitations !
Vous avez terminé le didacticiel sur l’application Microsoft Graph PowerShell uniquement. Maintenant que vous disposez d’une application opérationnelle qui appelle Microsoft Graph, vous pouvez expérimenter et ajouter de nouvelles fonctionnalités.
- Découvrez comment utiliser l’authentification utilisateur (déléguée) avec le Kit de développement logiciel (SDK) Microsoft Graph PowerShell.
- Consultez la vue d’ensemble de Microsoft Graph pour voir toutes les données accessibles avec Microsoft Graph.
Vous avez un défi avec cette section ? Si c'est le cas, faites-nous part de vos commentaires pour que nous puissions l'améliorer.