Maak een zelfondertekend openbaar certificaat om uw toepassing te verifiëren

Microsoft Entra ID ondersteunt twee typen verificatie voor service-principals: verificatie op basis van wachtwoorden (app-geheim) en verificatie op basis van certificaten. App-geheimen kunnen eenvoudig worden gemaakt in Azure Portal of met behulp van een Microsoft-API zoals Microsoft Graph, maar ze zijn lang en niet zo veilig als certificaten. Het wordt daarom aanbevolen dat uw toepassing een certificaat gebruikt in plaats van een geheim.

Voor testen kunt u een zelfondertekend openbaar certificaat gebruiken in plaats van een certificaat dat is ondertekend met een certificeringsinstantie (CA). In deze instructies gebruikt u PowerShell om een zelfondertekend certificaat te maken en te exporteren.

Let op

Zelfondertekende certificaten zijn digitale certificaten die niet zijn ondertekend door een vertrouwde certificeringsinstantie van derden. Zelfondertekende certificaten worden gemaakt, uitgegeven en ondertekend door het bedrijf of de ontwikkelaar die verantwoordelijk is voor de website of software die wordt ondertekend. Daarom worden zelfondertekende certificaten als onveilig beschouwd voor openbare websites en toepassingen.

Tijdens het maken van het certificaat met behulp van PowerShell kunt u parameters opgeven, zoals cryptografische en hash-algoritmen, geldigheidsperiode van certificaten en domeinnaam. Het certificaat kan vervolgens worden geëxporteerd met of zonder de persoonlijke sleutel, afhankelijk van de behoeften van uw toepassing.

De toepassing die de verificatiesessie start, vereist de persoonlijke sleutel terwijl de toepassing die de verificatie bevestigt, de openbare sleutel vereist. Dus als u verificatie uitvoert vanuit uw PowerShell-desktop-app naar Microsoft Entra ID, exporteert u alleen de openbare sleutel (.cer bestand) en uploadt u deze naar Azure Portal. De PowerShell-app gebruikt de persoonlijke sleutel uit uw lokale certificaatarchief om verificatie te initiëren en toegangstokens te verkrijgen voor het aanroepen van Microsoft-API's zoals Microsoft Graph.

Uw toepassing kan ook worden uitgevoerd vanaf een andere computer, zoals Azure Automation. In dit scenario exporteert u het openbare en persoonlijke sleutelpaar uit uw lokale certificaatarchief, uploadt u de openbare sleutel naar Azure Portal en de persoonlijke sleutel (een PFX-bestand ) naar Azure Automation. Uw toepassing die wordt uitgevoerd in Azure Automation, gebruikt de persoonlijke sleutel om verificatie te initiëren en toegangstokens te verkrijgen voor het aanroepen van Microsoft-API's zoals Microsoft Graph.

In dit artikel wordt de New-SelfSignedCertificate PowerShell-cmdlet gebruikt om het zelfondertekende certificaat en de Export-Certificate cmdlet te maken om het te exporteren naar een locatie die gemakkelijk toegankelijk is. Deze cmdlets zijn ingebouwd in moderne versies van Windows (Windows 8.1 en hoger, en Windows Server 2012R2 en hoger). Het zelfondertekende certificaat heeft de volgende configuratie:

  • Een 2048-bits sleutellengte. Hoewel langere waarden worden ondersteund, wordt de 2048-bits grootte sterk aanbevolen voor de beste combinatie van beveiliging en prestaties.
  • Maakt gebruik van het cryptografische RSA-algoritme. Microsoft Entra ID ondersteunt momenteel alleen RSA.
  • Het certificaat is ondertekend met het SHA256-hash-algoritme. Microsoft Entra ID ondersteunt ook certificaten die zijn ondertekend met SHA384- en SHA512-hashalgoritmen.
  • Het certificaat is slechts één jaar geldig.
  • Het certificaat wordt ondersteund voor gebruik voor zowel client- als serververificatie.

Als u de begin- en vervaldatum en andere eigenschappen van het certificaat wilt aanpassen, raadpleegt u New-SelfSignedCertificate.

Uw openbare certificaat maken en exporteren

Gebruik het certificaat dat u met deze methode maakt om te verifiëren vanuit een toepassing die wordt uitgevoerd vanaf uw computer. Verifieer bijvoorbeeld vanuit PowerShell.

Voer in een PowerShell-prompt de volgende opdracht uit en laat de PowerShell-consolesessie geopend. Vervang {certificateName} door de naam die u aan uw certificaat wilt geven.

$certname = "{certificateName}"    ## Replace {certificateName}
$cert = New-SelfSignedCertificate -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256

Met $cert de variabele in de vorige opdracht wordt uw certificaat opgeslagen in de huidige sessie en kunt u het exporteren.

Met de onderstaande opdracht exporteert u het certificaat in .cer indeling. U kunt deze ook exporteren in andere indelingen die worden ondersteund in Azure Portal, waaronder .pem en .crt.


Export-Certificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.cer"   ## Specify your preferred location

Uw certificaat is nu klaar voor uploaden naar de Azure Portal. Haal na het uploaden de vingerafdruk van het certificaat op voor gebruik om uw toepassing te verifiëren.

(Optioneel): Uw openbare certificaat exporteren met de bijbehorende persoonlijke sleutel

Als uw toepassing wordt uitgevoerd vanaf een andere computer of cloud, zoals Azure Automation, hebt u ook een persoonlijke sleutel nodig.

Maak op basis van de vorige opdrachten een wachtwoord voor de persoonlijke sleutel van uw certificaat en sla het op in een variabele. Vervang {myPassword} door het wachtwoord dat u wilt gebruiken om uw persoonlijke certificaatsleutel te beveiligen.


$mypwd = ConvertTo-SecureString -String "{myPassword}" -Force -AsPlainText  ## Replace {myPassword}

Gebruik het wachtwoord dat u hebt opgeslagen in de $mypwd variabele, beveilig en exporteer uw persoonlijke sleutel met behulp van de opdracht;


Export-PfxCertificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.pfx" -Password $mypwd   ## Specify your preferred location

Uw certificaat (.cer-bestand ) is nu klaar om te uploaden naar Azure Portal. De persoonlijke sleutel (PFX-bestand ) is versleuteld en kan niet worden gelezen door andere partijen. Nadat u het certificaat hebt geüpload, haalt u de vingerafdruk van het certificaat op, die u kunt gebruiken om uw toepassing te verifiëren.

Optionele taak: verwijder het certificaat uit het sleutelarchief.

U kunt het sleutelpaar uit uw persoonlijke archief verwijderen door de volgende opdracht uit te voeren om de vingerafdruk van het certificaat op te halen.


Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object {$_.Subject -Match "$certname"} | Select-Object Thumbprint, FriendlyName

Kopieer vervolgens de vingerafdruk die wordt weergegeven en gebruik deze om het certificaat en de bijbehorende persoonlijke sleutel te verwijderen.


Remove-Item -Path Cert:\CurrentUser\My\{pasteTheCertificateThumbprintHere} -DeleteKey

De vervaldatum van uw certificaat weten

Het zelfondertekende certificaat dat u hebt gemaakt volgens de bovenstaande stappen, heeft een beperkte levensduur voordat het verloopt. In de App-registraties sectie van Azure Portal geeft het scherm Certificaten en geheimen de vervaldatum van het certificaat weer. Als u Azure Automation gebruikt, wordt in het scherm Certificaten in het Automation-account de vervaldatum van het certificaat weergegeven. Volg de vorige stappen om een nieuw zelfondertekend certificaat te maken.

Volgende stappen

Certificaten voor federatieve eenmalige aanmelding beheren in Microsoft Entra-id