Skapa ett självsignerat offentligt certifikat för att autentisera ditt program
Microsoft Entra-ID stöder två typer av autentisering för tjänstens huvudnamn: lösenordsbaserad autentisering (apphemlighet) och certifikatbaserad autentisering. Även om apphemligheter enkelt kan skapas i Azure Portal eller med hjälp av ett Microsoft API som Microsoft Graph, är de långlivade och inte lika säkra som certifikat. Därför rekommenderar vi att programmet använder ett certifikat i stället för en hemlighet.
För testning kan du använda ett självsignerat offentligt certifikat i stället för ett certifikatutfärdare (CA)-signerat certifikat. I den här instruktionen använder du PowerShell för att skapa och exportera ett självsignerat certifikat.
Varning
Självsignerade certifikat är digitala certifikat som inte är signerade av en betrodd certifikatutfärdare från tredje part. Självsignerade certifikat skapas, utfärdas och signeras av företaget eller utvecklaren som ansvarar för att webbplatsen eller programvaran signeras. Därför anses självsignerade certifikat vara osäkra för offentliga webbplatser och program.
När du skapar certifikatet med PowerShell kan du ange parametrar som kryptografiska algoritmer och hash-algoritmer, certifikatets giltighetsperiod och domännamn. Certifikatet kan sedan exporteras med eller utan dess privata nyckel beroende på programmets behov.
Programmet som initierar autentiseringssessionen kräver den privata nyckeln medan programmet som bekräftar autentiseringen kräver den offentliga nyckeln. Om du autentiserar från din PowerShell-skrivbordsapp till Microsoft Entra-ID exporterar du bara den offentliga nyckeln (.cer fil) och laddar upp den till Azure Portal. PowerShell-appen använder den privata nyckeln från ditt lokala certifikatarkiv för att initiera autentisering och hämta åtkomsttoken för att anropa Microsoft-API:er som Microsoft Graph.
Ditt program kan också köras från en annan dator, till exempel Azure Automation. I det här scenariot exporterar du det offentliga och privata nyckelparet från ditt lokala certifikatarkiv, laddar upp den offentliga nyckeln till Azure Portal och den privata nyckeln (en .pfx-fil) till Azure Automation. Ditt program som körs i Azure Automation använder den privata nyckeln för att initiera autentisering och hämta åtkomsttoken för att anropa Microsoft-API:er som Microsoft Graph.
Den här artikeln använder PowerShell-cmdleten New-SelfSignedCertificate
för att skapa det självsignerade certifikatet och cmdleten Export-Certificate
för att exportera det till en plats som är lättillgänglig. Dessa cmdletar är inbyggda i moderna versioner av Windows (Windows 8.1 och senare och Windows Server 2012R2 och senare). Det självsignerade certifikatet har följande konfiguration:
- En 2048-bitars nyckellängd. Även om längre värden stöds rekommenderas 2048-bitarsstorleken starkt för den bästa kombinationen av säkerhet och prestanda.
- Använder den kryptografiska RSA-algoritmen. Microsoft Entra-ID stöder för närvarande endast RSA.
- Certifikatet är signerat med SHA256-hashalgoritmen. Microsoft Entra ID stöder även certifikat som signerats med SHA384- och SHA512-hashalgoritmer.
- Certifikatet är endast giltigt i ett år.
- Certifikatet stöds för både klient- och serverautentisering.
Om du vill anpassa start- och förfallodatum och andra egenskaper för certifikatet läser du New-SelfSignedCertificate.
Skapa och exportera ditt offentliga certifikat
Använd certifikatet som du skapar med den här metoden för att autentisera från ett program som körs från datorn. Du kan till exempel autentisera från PowerShell.
I en PowerShell-prompt kör du följande kommando och lämnar PowerShell-konsolsessionen öppen. Ersätt {certificateName}
med det namn som du vill ge certifikatet.
$certname = "{certificateName}" ## Replace {certificateName}
$cert = New-SelfSignedCertificate -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256
Variabeln $cert
i föregående kommando lagrar certifikatet i den aktuella sessionen och gör att du kan exportera det.
Kommandot nedan exporterar certifikatet i .cer format. Du kan också exportera den i andra format som stöds på Azure Portal inklusive .pem och .crt.
Export-Certificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.cer" ## Specify your preferred location
Certifikatet är nu redo att laddas upp till Azure Portal. När det har laddats upp hämtar du certifikatets tumavtryck för användning för att autentisera ditt program.
(Valfritt): Exportera ditt offentliga certifikat med dess privata nyckel
Om ditt program körs från en annan dator eller ett annat moln, till exempel Azure Automation, behöver du också en privat nyckel.
Om du följer de tidigare kommandona skapar du ett lösenord för din privata certifikatnyckel och sparar det i en variabel. Ersätt {myPassword}
med det lösenord som du vill använda för att skydda din privata certifikatnyckel.
$mypwd = ConvertTo-SecureString -String "{myPassword}" -Force -AsPlainText ## Replace {myPassword}
Använd lösenordet som du lagrade i variabeln $mypwd
, skydda och exportera din privata nyckel med hjälp av kommandot .
Export-PfxCertificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.pfx" -Password $mypwd ## Specify your preferred location
Certifikatet (.cer fil) är nu redo att laddas upp till Azure Portal. Den privata nyckeln (.pfx-filen ) är krypterad och kan inte läsas av andra parter. När du har laddat upp hämtar du certifikatets tumavtryck, som du kan använda för att autentisera ditt program.
Valfri uppgift: Ta bort certifikatet från nyckelarkivet.
Du kan ta bort nyckelparet från ditt personliga arkiv genom att köra följande kommando för att hämta certifikatets tumavtryck.
Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object {$_.Subject -Match "$certname"} | Select-Object Thumbprint, FriendlyName
Kopiera sedan tumavtrycket som visas och använd det för att ta bort certifikatet och dess privata nyckel.
Remove-Item -Path Cert:\CurrentUser\My\{pasteTheCertificateThumbprintHere} -DeleteKey
Känna till certifikatets förfallodatum
Det självsignerade certifikatet som du skapade enligt stegen ovan har en begränsad livslängd innan det upphör att gälla. I avsnittet Appregistreringar i Azure Portal visar skärmen Certifikat och hemligheter certifikatets förfallodatum. Om du använder Azure Automation visar skärmen Certifikat på Automation-kontot certifikatets förfallodatum. Följ föregående steg för att skapa ett nytt självsignerat certifikat.
Nästa steg
Hantera certifikat för federerad enkel inloggning i Microsoft Entra-ID