Vytvoření veřejného certifikátu podepsaného svým držitelem pro ověření aplikace
Id Microsoft Entra podporuje dva typy ověřování pro instanční objekty: ověřování na základě hesla (tajný klíč aplikace) a ověřování na základě certifikátů. I když se tajné kódy aplikací dají snadno vytvářet na webu Azure Portal nebo pomocí rozhraní Microsoft API, jako je Microsoft Graph, jsou dlouhodobé a ne tak zabezpečené jako certifikáty. Proto se doporučuje, aby vaše aplikace místo tajného kódu používala certifikát.
K testování můžete místo certifikátu podepsaného certifikační autoritou (CA) použít veřejný certifikát podepsaný svým držitelem. V tomto postupu použijete PowerShell k vytvoření a exportu certifikátu podepsaného svým držitelem.
Upozornění
Certifikáty podepsané svým držitelem jsou digitální certifikáty, které nejsou podepsané důvěryhodnou certifikační autoritou třetí strany. Certifikáty podepsané svým držitelem jsou vytvořeny, vystaveny a podepsány společností nebo vývojářem, kteří jsou zodpovědní za podepsání webu nebo softwaru. Proto jsou certifikáty podepsané svým držitelem považovány za nebezpečné pro veřejně přístupné weby a aplikace.
Při vytváření certifikátu pomocí PowerShellu můžete zadat parametry, jako jsou kryptografické a hashovací algoritmy, období platnosti certifikátu a název domény. V závislosti na potřebách vaší aplikace je pak možné certifikát exportovat s privátním klíčem nebo bez jeho privátního klíče.
Aplikace, která spouští relaci ověřování, vyžaduje privátní klíč, zatímco aplikace, která potvrzuje, že ověření vyžaduje veřejný klíč. Takže pokud ověřujete z desktopové aplikace PowerShellu do Microsoft Entra ID, exportujete jenom veřejný klíč (.cer soubor) a nahrajete ho na azure Portal. Aplikace PowerShell používá privátní klíč z místního úložiště certifikátů k zahájení ověřování a získání přístupových tokenů pro volání rozhraní Microsoft API, jako je Microsoft Graph.
Vaše aplikace může běžet také z jiného počítače, jako je Azure Automation. V tomto scénáři exportujete dvojici veřejného a privátního klíče z místního úložiště certifikátů, nahrajete veřejný klíč na web Azure Portal a privátní klíč ( soubor .pfx ) do Služby Azure Automation. Vaše aplikace spuštěná ve službě Azure Automation použije privátní klíč k zahájení ověřování a získání přístupových tokenů pro volání rozhraní MICROSOFT API, jako je Microsoft Graph.
Tento článek používá rutinu PowerShellu New-SelfSignedCertificate
k vytvoření certifikátu podepsaného svým držitelem a rutiny Export-Certificate
k jeho exportu do umístění, které je snadno přístupné. Tyto rutiny jsou integrované v moderních verzích Windows (Windows 8.1 a novější a Windows Server 2012R2 a novější). Certifikát podepsaný svým držitelem bude mít následující konfiguraci:
- Délka 2048bitového klíče. I když se podporují delší hodnoty, pro nejlepší kombinaci zabezpečení a výkonu se důrazně doporučuje 2048bitová velikost.
- Používá kryptografický algoritmus RSA. Id Microsoft Entra v současné době podporuje pouze RSA.
- Certifikát je podepsaný pomocí algoritmu hash SHA256. Id Microsoft Entra také podporuje certifikáty podepsané pomocí hash algoritmů SHA384 a SHA512.
- Certifikát je platný pouze jeden rok.
- Certifikát je podporovaný pro použití pro ověřování klientů i serverů.
Pokud chcete přizpůsobit datum zahájení a vypršení platnosti a další vlastnosti certifikátu, přečtěte si článek New-SelfSignedCertificate.
Vytvoření a export veřejného certifikátu
Certifikát, který vytvoříte pomocí této metody, použijte k ověření z aplikace spuštěné z vašeho počítače. Například se ověřte z PowerShellu.
V příkazovém řádku PowerShellu spusťte následující příkaz a nechte relaci konzoly PowerShellu otevřenou. Nahraďte {certificateName}
názvem, který chcete vašemu certifikátu poskytnout.
$certname = "{certificateName}" ## Replace {certificateName}
$cert = New-SelfSignedCertificate -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256
Proměnná $cert
v předchozím příkazu ukládá certifikát v aktuální relaci a umožňuje ji exportovat.
Následující příkaz exportuje certifikát ve formátu .cer . Můžete ho také exportovat v jiných formátech podporovaných na webu Azure Portal, včetně souborů .pem a .crt.
Export-Certificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.cer" ## Specify your preferred location
Váš certifikát je teď připravený k nahrání na web Azure Portal. Po nahrání načtěte kryptografický otisk certifikátu pro ověření aplikace.
(Volitelné): Export veřejného certifikátu s jeho privátním klíčem
Pokud bude vaše aplikace spuštěná z jiného počítače nebo cloudu, jako je Azure Automation, budete také potřebovat privátní klíč.
Podle předchozích příkazů vytvořte heslo pro privátní klíč certifikátu a uložte ho do proměnné. Nahraďte {myPassword}
heslem, které chcete použít k ochraně privátního klíče certifikátu.
$mypwd = ConvertTo-SecureString -String "{myPassword}" -Force -AsPlainText ## Replace {myPassword}
Pomocí hesla, které jste uložili v $mypwd
proměnné, zabezpečte a vyexportujte svůj privátní klíč pomocí příkazu;
Export-PfxCertificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.pfx" -Password $mypwd ## Specify your preferred location
Váš certifikát (soubor .cer ) je teď připravený k nahrání na web Azure Portal. Privátní klíč (soubor .pfx ) je šifrovaný a ostatní strany je nečte. Po nahrání načtěte kryptografický otisk certifikátu, který můžete použít k ověření aplikace.
Nepovinný úkol: Odstraňte certifikát z úložiště klíčů.
Pár klíčů můžete z osobního úložiště odstranit spuštěním následujícího příkazu, který načte kryptografický otisk certifikátu.
Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object {$_.Subject -Match "$certname"} | Select-Object Thumbprint, FriendlyName
Potom zkopírujte kryptografický otisk, který se zobrazí, a použijte ho k odstranění certifikátu a jeho privátního klíče.
Remove-Item -Path Cert:\CurrentUser\My\{pasteTheCertificateThumbprintHere} -DeleteKey
Zjištění data vypršení platnosti certifikátu
Certifikát podepsaný svým držitelem, který jste vytvořili podle výše uvedených kroků, má omezenou životnost před vypršením platnosti. V části Registrace aplikací webu Azure Portal se na obrazovce Certifikáty a tajné kódy zobrazí datum vypršení platnosti certifikátu. Pokud používáte Azure Automation, na obrazovce Certifikáty na účtu Automation se zobrazí datum vypršení platnosti certifikátu. Pomocí předchozích kroků vytvořte nový certifikát podepsaný svým držitelem.
Další kroky
Správa certifikátů pro federované jednotné přihlašování v Microsoft Entra ID