Créer une application Azure utilisant un certificat pour s’authentifier sur le module PowerShell Intune

Dans cet article nous allons créer une application dans Azure afin de faciliter l’authentification en utilisant PowerShell et l’API Graph.

Contexte

  • Vous souhaitez utiliser le module PowerShell Microsoft.Graph.Intune
  • Vous souhaitez accéder à des ressources Intune depuis PowerShell
  • Vous souhaitez vous authentifier sans avoir à saisir vos identifiants
  • Vous souhaitez une authentification via certificat et non un secret

Création de l’application

  1. Connectez-vous à Azure
  2. Allez dans Azure Active Directory
  3. Allez dans App registrations
  4. Cliquez sur New registration
  1. Saisissez un nom
  1. Choisir Accounts in this organizational directory only
  1. Laisser le reste par défaut
  2. Cliquez sur Register
  3. Vous avez maintenant accès aux infos de votre appli

Générer votre certificat

Pour l’authentification nous aurons besoin d’un certificat. Celui-ci sera installé sur le poste utilisant l’application, dont l’authentication ne fonctionnera que si ce certificat est détecté.
Pour le générer, utilisez le code ci-dessous:

$Cert_Name = "Intune_Certificate_SD"
$Cert_Location = "Cert:\currentuser\My"
New-SelfSignedCertificate -DnsName $Cert_Name -CertStoreLocation $Cert_Location -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider"
$MyCert_Thumbprint = (Get-ChildItem -Path $Cert_Location | Where-Object {$_.Subject -match $Cert_Name}).Thumbprint
Export-Certificate -Cert "$Cert_Location\$MyCert_Thumbprint" -FilePath C:\$Cert_Name.cer

Importer le certificat dans Azure

  1. Cliquez sur Certificates & secrets
  2. Cliquez sur Upload certificate
  1. Choisissez le CER précédemment créé
  1. Choisir un délai d’expiration
  1. Cliquez sur Add
  2. Récupérer la valeur Thumbprint pour plus tard

Mettre à jour le module Intune

Par défaut, le module Microsoft.Graph.Intune ne permet de s’authentifier que via un secret sur une application Azure.
Les secrets sont bien pour l’utilisation sur un lab, mais intégrer votre secret dans votre script en Prod, c’est comme mettre un mot de passe en clair.
Une personne de Microsoft nommée Nichola Suter, a mis à jour le module pour permettre une authentification avec un certificat.


Vous pouvez télécharger cette nouvelle version ici. Il faudra ensuite procéder comme ci-dessous:

  1. Allez dans le dossier: C:\Program Files\WindowsPowerShell\Modules\Microsoft.Graph.Intune
  2. Renommer le dossier 6.1907.1.0 en 6.1907.1.0_old
  3. Copier le dossier téléchargé: 6.1907.1.0

S’authentifier via l’application

Nous allons maintenant nous connecter à notre tenant via le module Graph.Intune, notre appli. et le certificat.
Il nous faudra les informations suivantes:

  • Nom du tenant
  • Le client ID de votre appli
  • Le thumbprint du certificat

Utiliser le code suivant pour vous connecter:

$tenant = "2474315b-10b7-4203-80bb-5ed8c9bc3276"
$authority = "https://login.windows.net/$tenant"
$clientId = "344940cb-4f79-4f07-971e-fe0c1473ccc3"
$Thumbprint = "FC8DEE2A54228D29D5DC5112EE1D6E3ECEABBB69"
Update-MSGraphEnvironment -AppId $clientId -Quiet
Update-MSGraphEnvironment -AuthUrl $authority -Quiet
Connect-MSGraph -CertificateThumbprint $Thumbprint

Nous allons maintenant utiliser une simple cmdlet pour voir le résultat.
Nous souhaitons lister les devices: Get-IntuneManagedDevice
Nous obtenons une erreur d’autorisation.


Cela est normal car nous devons ajouter des permissions à notre application.
Nous devons dire ce que permettra de faire cette application.

Ajouter des permissions

Nous devons tout d’abord lister les permissions qui sont requises.
Pour cela naviguez sur la doc de l’API, lien ici.
Ici le lien pour la partie Get DeviceManagement.

  1. Allez dans votre application Azure
  2. Cliquez sur API permissions
  3. Cliquez sur Add a permission
  1. Choisir Microsoft Graph
  1. Cliquez sur Application permissions
  1. Naviguez vers DeviceManagementManagedDevice
  2. Cochez DeviceManagementManagedDevices.ReadWrite.All
  1. Cliquez sur Add permissions
  2. Cliquez sur Grant admin consent
  1. Cliquez sur yes
  2. Connectez-vous à nouveau via PowerShell
  3. Réutiliser Get-IntuneManagedDevice
  4. Nous avons maintenant accès

A propos de l'auteur

[avatar]

Ingénieur Systèmes travaillant principalement sur ce qui tourne autour du poste de travail (MDT, SCCM, Intune) et l’automatisation avec PowerShell. MVP Microsoft et auteur pour ENI, il publie régulièrement sur son blog et gère différents groupes Facebook, PowerShell et WPF (~4000 membres), Windows Autopilot (~3000 membres).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *