Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Identyfikator Entra firmy Microsoft obsługuje dwa typy uwierzytelniania dla jednostek usługi: uwierzytelnianie oparte na hasłach (klucz tajny aplikacji) i uwierzytelnianie oparte na certyfikatach. Tajne dane aplikacji można łatwo utworzyć w portalu Azure lub za pomocą interfejsu API firmy Microsoft, takiego jak Microsoft Graph, jednak są one długoterminowe i nie tak bezpieczne jak certyfikaty. Dlatego zaleca się, aby aplikacja używała certyfikatu, a nie tajnego hasła.
Do testowania można użyć certyfikatu publicznego z podpisem własnym zamiast certyfikatu z podpisem urzędu certyfikacji. W tym przewodniku użyjesz programu PowerShell do utworzenia i wyeksportowania certyfikatu z podpisem własnym.
Uwaga
Certyfikaty z podpisem własnym to certyfikaty cyfrowe, które nie są podpisane przez zaufany urząd certyfikacji innej firmy. Certyfikaty z podpisem własnym są tworzone, wystawiane i podpisane przez firmę lub dewelopera, który jest odpowiedzialny za podpisaną witrynę internetową lub oprogramowanie. Dlatego certyfikaty z podpisem własnym są uważane za niebezpieczne dla publicznych witryn internetowych i aplikacji.
Podczas tworzenia certyfikatu przy użyciu programu PowerShell można określić parametry, takie jak algorytmy kryptograficzne i algorytmy skrótu, okres ważności certyfikatu i nazwa domeny. Certyfikat można następnie wyeksportować z kluczem prywatnym lub bez go w zależności od potrzeb aplikacji.
Aplikacja, która inicjuje sesję uwierzytelniania, wymaga klucza prywatnego, podczas gdy aplikacja, która potwierdza, że uwierzytelnianie wymaga klucza publicznego. Jeśli więc uwierzytelniasz się z aplikacji klasycznej programu PowerShell do identyfikatora Entra firmy Microsoft, wyeksportujesz tylko klucz publiczny (plik .cer ) i przekażesz go do witryny Azure Portal. Aplikacja PowerShell używa klucza prywatnego z lokalnego magazynu certyfikatów do inicjowania uwierzytelniania i uzyskiwania tokenów dostępu do wywoływania interfejsów API firmy Microsoft, takich jak Microsoft Graph.
Aplikacja może być również uruchomiona z innej maszyny, takiej jak usługa Azure Automation. W tym scenariuszu należy wyeksportować parę kluczy publicznych i prywatnych z lokalnego magazynu certyfikatów, przekazać klucz publiczny do witryny Azure Portal oraz klucz prywatny ( plik PFX ) do usługi Azure Automation. Aplikacja działająca w usłudze Azure Automation będzie używać klucza prywatnego do inicjowania uwierzytelniania i uzyskiwania tokenów dostępu do wywoływania interfejsów API firmy Microsoft, takich jak Microsoft Graph.
W tym artykule użyto New-SelfSignedCertificate
polecenia cmdlet programu PowerShell do utworzenia certyfikatu z podpisem własnym i Export-Certificate
polecenia cmdlet w celu wyeksportowania go do lokalizacji, która jest łatwo dostępna. Te polecenia cmdlet są wbudowane w nowoczesne wersje systemu Windows (Windows 8.1 i nowsze oraz Windows Server 2012R2 i nowsze). Certyfikat z podpisem własnym będzie miał następującą konfigurację:
- Długość klucza 2048-bitowego. Chociaż obsługiwane są dłuższe wartości, rozmiar 2048-bitowy jest zdecydowanie zalecany w celu uzyskania najlepszej kombinacji zabezpieczeń i wydajności.
- Używa algorytmu kryptograficznego RSA. Identyfikator Entra firmy Microsoft obecnie obsługuje tylko rsa.
- Certyfikat jest podpisany przy użyciu algorytmu wyznaczania skrótu SHA256. Identyfikator Entra firmy Microsoft obsługuje również certyfikaty podpisane przy użyciu algorytmów wyznaczania wartości skrótu SHA384 i SHA512.
- Certyfikat jest ważny tylko przez jeden rok.
- Certyfikat jest obsługiwany do użycia zarówno w przypadku uwierzytelniania klienta, jak i serwera.
Aby dostosować datę rozpoczęcia i wygaśnięcia oraz inne właściwości certyfikatu, zobacz New-SelfSignedCertificate.
Tworzenie i eksportowanie certyfikatu publicznego
Użyj certyfikatu utworzonego przy użyciu tej metody, aby uwierzytelnić się z poziomu aplikacji uruchomionej na komputerze. Na przykład uwierzytelnij się za pomocą programu PowerShell.
W wierszu polecenia programu PowerShell uruchom następujące polecenie i pozostaw otwartą sesję konsoli programu PowerShell. Zastąp {certificateName}
nazwą, którą chcesz nadać certyfikatowi.
$certname = "{certificateName}" ## Replace {certificateName}
$cert = New-SelfSignedCertificate -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256
Zmienna $cert
w poprzednim poleceniu przechowuje certyfikat w bieżącej sesji i umożliwia jego wyeksportowanie.
Poniższe polecenie eksportuje certyfikat w formacie .cer . Można go również wyeksportować w innych formatach obsługiwanych w witrynie Azure Portal, w tym pem i crt.
Export-Certificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.cer" ## Specify your preferred location
Certyfikat jest teraz gotowy do przekazania do witryny Azure Portal. Po przesłaniu, pobierz odcisk palca certyfikatu, aby użyć go do uwierzytelniania aplikacji.
(Opcjonalnie): wyeksportuj certyfikat publiczny przy użyciu klucza prywatnego
Jeśli aplikacja będzie działać z innej maszyny lub chmury, takiej jak usługa Azure Automation, musisz również mieć klucz prywatny.
Po wykonaniu poprzednich poleceń utwórz hasło dla klucza prywatnego certyfikatu i zapisz je w zmiennej. Zastąp {myPassword}
ciąg hasłem, którego chcesz użyć do ochrony klucza prywatnego certyfikatu.
$mypwd = ConvertTo-SecureString -String "{myPassword}" -Force -AsPlainText ## Replace {myPassword}
Używając hasła przechowywanego w zmiennej $mypwd
, zabezpiecz i wyeksportuj klucz prywatny przy użyciu polecenia ;
Export-PfxCertificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.pfx" -Password $mypwd ## Specify your preferred location
Certyfikat (plik .cer ) jest teraz gotowy do przekazania do witryny Azure Portal. Klucz prywatny (plik pfx ) jest szyfrowany i nie można go odczytać przez inne strony. Po przesłaniu certyfikatu, pobierz jego odcisk palca, którego można użyć do uwierzytelnienia aplikacji.
Opcjonalne zadanie: Usuń certyfikat z magazynu kluczy.
Parę kluczy można usunąć z magazynu osobistego, uruchamiając następujące polecenie, aby pobrać odcisk palca certyfikatu.
Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object {$_.Subject -Match "$certname"} | Select-Object Thumbprint, FriendlyName
Następnie skopiuj wyświetlany odcisk palca i użyj go do usunięcia certyfikatu i jego klucza prywatnego.
Remove-Item -Path Cert:\CurrentUser\My\{pasteTheCertificateThumbprintHere} -DeleteKey
Znajomość daty wygaśnięcia certyfikatu
Certyfikat z podpisem własnym utworzony zgodnie z powyższymi krokami ma ograniczony okres istnienia przed jego wygaśnięciem. W sekcji Rejestracje aplikacji portalu Azure ekran Certyfikaty i tajne wyświetla datę wygaśnięcia certyfikatu. Jeśli używasz usługi Azure Automation, na ekranie Certyfikaty na koncie usługi Automation jest wyświetlana data wygaśnięcia certyfikatu. Wykonaj poprzednie kroki, aby utworzyć nowy certyfikat z podpisem własnym.
Następne kroki
Zarządzanie certyfikatami dla federacyjnego logowania jednokrotnego w usłudze Microsoft Entra ID