Stocker des mots de passe dans Azure Key vault et récupérer le contenu depuis PowerShell

Dans cet article, nous allons voir comment stocker des mots de passes comme mot de passe BIOS) dans Azure Key Vault puis en récupérer le contenu avec PowerShell.

Contexte

  • Vous avez plusieurs machines à gérer
  • Toutes vos machines disposent ou doivent être protéger par un mot de passe BIOS
  • Vous voulez un moyen sécurisé pour stocker le mot de passe
  • Vous souhaitez par exemple, le faire dans un Key Vault
  • Vous souhaitez pouvoir récupérer ce mot de passe depuis une machine

Les exemples

Dans cet article nous allons utiliser deux moyens pour nous connecter à notre Key vault afin de récupérer le mot de passe:

  • En saisissant les identifiants
  • En utilisant une application Azure

Création du Key Vault

  1. Allez dans le portail Azure
  2. Allez dans Key Vault
  3. Cliquez sur Add
  1. Choisissez votre souscription, votre groupe de ressource (ou créez en un nouveau)
  2. Saisissez un nom de Key vault comme SDVault
  3. Choisissez votre localisation
  4. Cliquez sur Review + Create
  1. Cliquez sur Create
  2. Attendez le message suivant:

Votre mot de passe dans Key Vault

  1. Cliquez sur Go to resource
  2. Cliquez sur Secrets
  1. Cliquez sur Generate/Import
  1. Saisissez un nom comme NewBiosPassword
  2. Dans Value, saisissez un mot de passe comme P@$Sw0ord
  1. Cliquez sur Create
  2. Votre mot de passe est désormais disponible

Récupérer le mot de passe depuis PowerShell

  1. Ouvrir PowerShell
  2. Insytaller le module Az.Accounts
  3. Saisissez la commande: Connect-AzAccount
  4. Saisissez vos identifiants
  1. Saisissez le code suivant pour récupérer les infos du key vault
(Get-AzKeyVaultSecret -vaultName "SDVault" -name "NewBiosPassword") | select *
  1. Ci-dessous le résultat obtenu:
  1. Nous allons maintenant récupére le mot de passe en utlisant SecretValue:
$secret = (Get-AzKeyVaultSecret -vaultName "SDVault" -name "NewBiosPassword") | select *
$Get_My_Scret = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secret.SecretValue) 
$Display_My_Secret = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($Get_My_Scret) 
$Display_My_Secret
  1. Ci-dessous le résultat obtenu:

Nous sommes maintenant capable de récupérer le mot de passe stocker sur notre Key Vault.
Cependant nous devons saisir des identifiants.
Nous allons maintenant créer une pplication Azure afin de faciliter l’authentification.
Nous allons connecter l’application via un certificat.

Générer le certificat

  1. Sir votre appareil, saisissez le code suivant pour générer le certificat:
$Cert_Name = "MyKeyVault_Cert"
New-SelfSignedCertificate -DnsName $Cert_Name -CertStoreLocation Cert:\currentuser\My
$MyCert = Get-ChildItem -Path "cert:\CurrentUser\My" | Where-Object {$_.Subject -match $Cert_Name}
$Cert_TB = $MyCert.Thumbprint
Export-Certificate -Cert "Cert:\CurrentUser\My\$Cert_TB" -FilePath C:\$Cert_Name.cer
  1. Ci-dessous le résultat obtenu:
  1. Notez la valeur du Thumbprint

Création de l’application Azure

  1. Allez dans le portail Azure
  2. Cliquez sur App registrations
  3. Cliquez sur New registration
  1. Saisissez un nom comme BIOS_PWD_App
  1. Cliquez sur Register

Importer le certificat

Nous allons maintenant importer le certificat dans notre application.

  1. Allez dans le portail Azure
  2. Cliquez sur Certificates & secrets
  1. Dans Certificates, cliquez sur Upload certificate
  1. Choisissez votre certificat, MyCert.cer
  2. Cliquez sur Add
  1. Vous obtiendrez la notification suivante:

Récupérer le mot de passe depuis PowerShell

  1. Dans votre appli Azure allez sur Overview
  2. Notez les infos Application id et tenant id
  3. Cliquez sur Certificate et notez le Thumbprint
  4. Ouvrir PowerShell
  5. Saisissez la commande suivante pour vous connectez depuis l’appli Azure
$TenantID = <Votre ID de tenant>
$App_ID = <ID de votre app AZure>
$ThumbPrint = < Votre Thumbprint>
Connect-AzAccount -tenantid $TenantID -ApplicationId $App_ID -CertificateThumbprint $ThumbPrint
  1. Vous obtiendrez les infos suivantes:
  1. Saisissez la commande suivante pour afficher les infos du key vault
(Get-AzKeyVaultSecret -vaultName "SDVault" -name "NewBiosPassword") | select *
  1. L’erreur suivante s’affiche
  1. C’est normal car l’application n’a pas encore accès du contenu du key vault

Ajouter des accès à votre appli Azure

  1. Allez dans key vault
  2. Cliquez sur Access policies
  1. Cliquez sur add access policies
  1. Dans Configure template, Choisissez Secret management
  2. In Key permissions, décochez tout
  3. In Secret permissions, cochez uniquement Get
  4. In Certificate permissions, décochez tout
  5. In Select principal, cliquez sur None selected
  6. Choisissez votre application, ici BIOS_PWD_App
  7. Cliquez sur select
  8. Cliquez sur Add
  1. Cliquez sur Save
  2. Saisissez à nouveau la commande:
  3. Tadaa nous pouvons maintenant récupérer l’info

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 *