Het instellen van authenticatie op basis van certificaten met Microsoft Entra ID (voorheen Azure AD) kan een hele klus zijn, vooral als je wachtwoorden wilt vervangen door geautomatiseerde scripts. Als de stappen overweldigend lijken – certificaten aanmaken, exporteren, app-registratie, machtigingen – dan ben je niet de enige. Het is een soort doolhof, maar als je het eenmaal door hebt, is het een zeer betrouwbare manier om PowerShell veilig uit te voeren zonder wachtwoorden in platte tekst op te slaan. Bovendien vermijd je zo de hele MFA-pop-up-onzin bij het automatiseren. Houd er wel rekening mee dat het proces is opgesplitst in het aanmaken van een certificaat, het configureren van Azure en vervolgens het laten communiceren van PowerShell-scripts met services zoals Exchange Online of Teams met behulp van dat certificaat. Het doel is om naadloos en veilig verbinding te maken, zonder prompts of wachtwoordprompts tijdens de uitvoering. Hopelijk maakt deze handleiding het proces duidelijker en minder frustrerend.
Hoe u certificaatgebaseerde authenticatie met Microsoft Entra ID kunt herstellen
Methode 1: Het zelfondertekende certificaat aanmaken en exporteren
Allereerst heb je een certificaat nodig. Dit is je identiteitsbewijs. Je kunt er een aanvragen bij je certificeringsinstantie (CA) of zelf een certificaat genereren om te testen. Het is misschien wat vreemd, maar het genereren van een certificaat met een PowerShell- New-SelfSignedCertificateopdracht op je lokale computer werkt prima. Het genereren van een certificaat met een geldigheidsduur van 3 jaar ziet er bijvoorbeeld zo uit:
$certvalid = (Get-Date).AddYears(3) $newcert = New-SelfSignedCertificate -DnsName "pre_prod.woshub.com" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter $certvalid -KeySpec KeyExchange -FriendlyName "Azure Microsoft Entra ID PowerShell Auth cert" $newcert | fl Subject, Thumbprint, NotBefore, NotAfter
Dit geeft informatie weer, waaronder de vingerafdruk, die min of meer de identificatiecode van je certificaat is. Kopieer die vingerafdruk, die heb je later nodig.
Nu moet je het exporteren zodat Azure het kan accepteren. Exporteer het een paar keer: één keer als een CER-bestand (publieke sleutel) en één keer als een PFX-bestand (privé- en publieke sleutel, beveiligd met een wachtwoord).De commando’s zien er als volgt uit:
$newcert | Export-Certificate -FilePath "C:\PS\azure-auth.cer" $newcert | Export-PfxCertificate -FilePath "C:\PS\azure-auth.pfx" -Password (ConvertTo-SecureString -String "S3dPswrd@123" -AsPlainText -Force)
Zorg ervoor dat de bestandspaden overeenkomen met de gewenste locatie. En vergeet het wachtwoord voor het PFX-bestand niet; dat heb je later nodig bij het importeren.
Methode 2: De app registreren in Azure Entra / Azure Portal
Volgende stap: geef Azure toestemming om dit certificaat te vertrouwen. Meld u aan bij de Azure-portal. Ga naar Microsoft Entra ID > App-registraties > Nieuwe registratie. Geef de registratie een duidelijke naam, selecteer ‘ Alleen accounts in deze organisatiemap’ en klik vervolgens op ‘Registreren’.
Kopieer na de registratie de applicatie-ID (client-ID) — dit is de ID van uw app die PowerShell zal gebruiken voor authenticatie. Noteer deze ID.
Ga in de app-registratie naar API-machtigingen > Een machtiging toevoegen. Kies de API’s die u nodig hebt, zoals Microsoft Graph of Exchange Online. Voor het beheren van Exchange voegt u Exchange. ManageAsApp toe onder Toepassingsmachtigingen. Klik vervolgens op Machtigingen toevoegen en vergeet niet om beheerdersrechten te verlenen. Hiermee geeft u uw app de benodigde rechten.
Upload vervolgens uw gegenereerde certificaat onder Certificaten en geheimen. Gebruik Certificaat uploaden en selecteer uw zelfondertekende PFX-bestand. Ga ook naar Azure Active Directory > Rollen en beheerders. Wijs de rol Exchange-beheerder toe aan uw app door een toewijzing toe te voegen. Hiermee kan uw app Exchange Online beheren, wat meestal nodig is voor postvakscripts, enzovoort.
Methode 3: Verbinding maken met Exchange Online met PowerShell
Als alles is ingesteld, kunt u rechtstreeks verbinding maken vanuit PowerShell, zonder wachtwoord. Ervan uitgaande dat de Exchange Online-module (EXO) is geïnstalleerd, kunt u de volgende variabelen voorbereiden:
$certThumbprint = "9CF05589A4B29BECEE6456F08A76EBC3DC2BC581" $AzureAppID = "11111111-2222-3333-4444-123456789" $tenant="woshub.onmicrosoft.com"
Roep vervolgens de verbindingsopdracht als volgt aan:
Connect-ExchangeOnline -AppId $AzureAppID -CertificateThumbprint $certThumbprint -Organization $tenant
Er zou geen wachtwoord gevraagd moeten worden — gewoon verbinden en aan de slag. Bij sommige configuraties kan het even duren voordat de verbinding tot stand komt; bij andere moet je mogelijk het token vernieuwen of PowerShell opnieuw opstarten. Vreemd, maar het werkt zodra de verbinding tot stand is gebracht.
Om te zien wat er in je tenant aanwezig is, voer je een eenvoudige opdracht uit zoals:
Get-EXOMailbox
En vergeet niet de verbinding te verbreken als je klaar bent:
Disconnect-ExchangeOnline -Confirm:$false
Dezelfde logica geldt als je andere services zoals Teams of Azure AD wilt gebruiken; je hoeft alleen de commando’s om te wisselen:
Connect-MicrosoftTeams -CertificateThumbprint $certThumbprint -ApplicationId $AzureAppID -TenantId $tenant Connect-AzureAD -TenantId $tenant -ApplicationId $AzureAppID -CertificateThumbprint $certThumbprint
Dit alles is afhankelijk van de juiste machtigingen die u in Azure hebt ingesteld. Controleer deze dus nogmaals als er problemen optreden.
Extra: PFX importeren naar een andere computer
Als u hetzelfde certificaat op een andere machine wilt gebruiken, importeer het PFX-bestand dan zorgvuldig. U kunt dit met PowerShell als volgt doen:
$password = ConvertTo-SecureString -String "S3dPswrd@123" -Force -AsPlainText Import-PfxCertificate -Password $password -FilePath "C:\PS\azure-auth.pfx" -CertStoreLocation Cert:\CurrentUser\My
Dit installeert het certificaat in uw lokale gebruikerscertificaatarchief en maakt het beschikbaar voor scripts. Het belangrijkste is ervoor te zorgen dat het PFX-bestand met een wachtwoord is beveiligd en veilig wordt bewaard.
Het is in het begin best veel werk, maar zodra je de certificaten en app-rollen op orde hebt, verloopt de verbinding met services zoals Exchange Online, Teams of Azure zelf vrij soepel — geen wachtwoordprompts meer, gewoon schone scripts. En het is de moeite waard vanwege de extra beveiliging en automatiseringsmogelijkheden. Ja, het vergt wat gepriegel, maar als het eenmaal is ingesteld, is het een goede configuratie waarmee je scripts probleemloos kunnen blijven werken.
Samenvatting
- Genereer en exporteer zelfondertekende certificaten voor Azure-authenticatie.
- Apps maken en registreren in de Azure Entra-portal
- Wijs de juiste machtigingen en rollen toe in Azure.
- Gebruik PowerShell met vingerafdruk en app-ID voor stille verbindingen.
- Vergeet niet om de sessies daarna af te sluiten.
Samenvatting
Al met al kan authenticatie met certificaten in eerste instantie intimiderend lijken, maar het is betrouwbaar zodra je het onder de knie hebt. De sleutel is het begrijpen van het proces: certificaten aanmaken, apps registreren, rollen toewijzen en vervolgens de aanmelding scripten. Het zal waarschijnlijk niet meteen perfect zijn, vooral niet met de machtigingen – Azure kan daar nogal kieskeurig in zijn – maar als je het goed doet, werkt je automatisering veilig en probleemloos. Hopelijk helpt dit iemand een hoop kopzorgen te besparen bij de installatie.