Freigeben über


Erstellen Sie ein selbstsigniertes öffentliches Zertifikat zum Authentifizieren Ihrer Anwendung.

Microsoft Entra ID unterstützt zwei Authentifizierungsarten für Dienstprinzipale: kennwortbasierte Authentifizierung (App-Geheimnis) und zertifikatbasierte Authentifizierung. Auch wenn App-Geheimnisse ganz einfach im Azure-Portal oder mithilfe einer Microsoft-API wie Microsoft Graph erstellt werden können, sind sie langlebig und nicht so sicher wie Zertifikate. Daher wird empfohlen, statt eines Geheimnisses ein Zertifikat für Ihre Anwendung zu verwenden.

Zu Testzwecken können Sie anstelle eines von einer Zertifizierungsstelle signierten Zertifikats ein selbstsigniertes öffentliches Zertifikat verwenden. In dieser Anleitung verwenden Sie PowerShell zum Erstellen und Exportieren eines selbstsignierten Zertifikats.

Achtung

Selbstsignierte Zertifikate sind digitale Zertifikate, die nicht von einer vertrauenswürdigen Drittanbieterzertifizierungsstelle signiert wurden. Selbstsignierte Zertifikate werden von den Unternehmen oder Entwickler*innen erstellt, ausgestellt und signiert, die für die signierte Website oder Software verantwortlich sind. Aus diesem Grund gelten selbstsignierte Zertifikate als unsicher für öffentlich zugängliche Websites und Anwendungen.

Beim Erstellen des Zertifikats mithilfe von PowerShell können Sie Parameter wie Kryptografie- und Hashalgorithmen, Zertifikatgültigkeitszeitraum und Domänenname angeben. Das Zertifikat kann dann je nach Bedarf Ihrer Anwendung mit oder ohne privaten Schlüssel exportiert werden.

Die Anwendung, die die Authentifizierungssitzung initiiert, benötigt den privaten Schlüssel, während die Anwendung, die die Authentifizierung bestätigt, den öffentlichen Schlüssel benötigt. Wenn Sie sich über Ihre PowerShell-Desktop-App bei Microsoft Entra ID authentifizieren, exportieren Sie daher nur den öffentlichen Schlüssel (CER-Datei) und laden ihn in das Azure-Portal hoch. Die PowerShell-App verwendet den privaten Schlüssel aus Ihrem lokalen Zertifikatspeicher, um die Authentifizierung zu initiieren und Zugriffstoken zum Aufruf von Microsoft-APIs wie etwa Microsoft Graph abzurufen.

Ihre Anwendung kann auch von einem anderen Computer ausgeführt werden, z. B. Azure Automation. In diesem Szenario exportieren Sie das Paar aus öffentlichem und privatem Schlüssel aus Ihrem lokalen Zertifikatspeicher, laden den öffentlichen Schlüssel in das Azure-Portal und den privaten Schlüssel (PFX-Datei) in Azure Automation hoch. Ihre Anwendung, die in Azure Automation ausgeführt wird, verwendet den privaten Schlüssel, um die Authentifizierung zu initiieren und Zugriffstoken zum Aufruf von Microsoft-APIs wie etwa Microsoft Graph abzurufen.

In diesem Artikel wird das PowerShell-Cmdlet New-SelfSignedCertificate zum Erstellen des selbstsignierten Zertifikats und das Cmdlet Export-Certificate verwendet, um das Zertifikat an einen Speicherort zu exportieren, der leicht zugänglich ist. Diese Cmdlets sind in moderne Versionen von Windows integriert (Windows 8.1 und höher sowie Windows Server 2012R2 und höher). Das selbstsignierte Zertifikat ist wie folgt konfiguriert:

  • Das Zertifikat weist eine Schlüssellänge von 2048 Bit auf. Obwohl längere Werte unterstützt werden, wird die Größe von 2048 Bit als optimale Kombination von Sicherheit und Leistung empfohlen.
  • Das Zertifikat verwendet den RSA-Kryptografiealgorithmus. Microsoft Entra ID unterstützt derzeit nur RSA.
  • Das Zertifikat ist mit dem SHA256-Hashalgorithmus signiert. Microsoft Entra ID unterstützt auch Zertifikate, die mit SHA384- und SHA512-Hashalgorithmen signiert sind.
  • Das Zertifikat ist nur ein Jahr lang gültig.
  • Die Verwendung des Zertifikats wird sowohl für die Client- als auch für die Serverauthentifizierung unterstützt.

Informationen zum Anpassen des Start- und Ablaufdatums und zu anderen Eigenschaften des Zertifikats finden Sie unter New-SelfSignedCertificate.

Erstellen und Exportieren des öffentlichen Zertifikats

Verwenden Sie das Zertifikat, das Sie mit dieser Methode erstellen, für die Authentifizierung über eine Anwendung, die auf Ihrem Computer ausgeführt wird, z. B. für die Authentifizierung über PowerShell.

Führen Sie an einer PowerShell-Eingabeaufforderung den folgenden Befehl aus, und lassen Sie die PowerShell-Konsolensitzung geöffnet. Ersetzen Sie {certificateName} durch den Namen, den Sie Ihrem Zertifikat geben möchten.

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

Die $cert-Variable im obigen Befehl speichert Ihr Zertifikat in der aktuellen Sitzung und ermöglicht es, das Zertifikat zu exportieren.

Mit dem folgenden Befehl wird das Zertifikat im CER-Format exportiert. Sie können es auch in anderen Formaten exportieren, die im Azure-Portal unterstützt werden, z. B. im PEM- und CRT-Format.


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

Ihr Zertifikat kann jetzt in das Azure-Portal hochgeladen werden. Rufen Sie nach dem Hochladen den Zertifikatfingerabdruck ab, der für die Authentifizierung Ihrer Anwendung verwendet werden soll.

(Optional): Exportieren Ihres öffentlichen Zertifikats mit dem privaten Schlüssel

Wenn Ihre Anwendung von einem anderen Computer oder in einer anderen Cloud (z. B. Azure Automation) ausgeführt wird, benötigen Sie auch einen privaten Schlüssel.

Erstellen Sie im Anschluss an die vorherigen Befehle ein Kennwort für den privaten Schlüssel des Zertifikats, und speichern Sie es in einer Variablen. Ersetzen Sie {myPassword} durch das Kennwort, das Sie zum Schutz des privaten Schlüssels Ihres Zertifikats verwenden möchten.


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

Verwenden Sie nun das Kennwort, das Sie in der Variablen $mypwd gespeichert haben, um mithilfe des Befehls den privaten Schlüssel zu schützen und zu exportieren:


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

Ihr Zertifikat (CER-Datei) kann jetzt in das Azure-Portal hochgeladen werden. Der private Schlüssel (PFX-Datei) ist verschlüsselt und kann nicht von anderen Parteien gelesen werden. Rufen Sie nach dem Hochladen den Zertifikatfingerabdruck ab, den Sie für die Authentifizierung Ihrer Anwendung verwenden können.

Optionale Aufgabe: Löschen Sie das Zertifikat aus dem Keystore.

Sie können das Schlüsselpaar aus Ihrem persönlichen Speicher löschen, indem Sie mit dem folgenden Befehl den Zertifikatfingerabdruck abrufen.


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

Kopieren Sie dann den angezeigten Fingerabdruck, und verwenden Sie ihn, um das Zertifikat und den zugehörigen privaten Schlüssel zu löschen.


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

Ermitteln des Ablaufdatums Ihres Zertifikats

Das selbstsignierte Zertifikat, das Sie mit den obigen Schritten erstellt haben, weist eine begrenzte Lebensdauer auf, bevor es abläuft. Im Abschnitt App-Registrierungen des Azure-Portals wird das Ablaufdatum des Zertifikats auf dem Bildschirm Zertifikate & Geheimnisse angezeigt. Wenn Sie Azure Automation verwenden, wird das Ablaufdatum des Zertifikats auf dem Bildschirm Zertifikate des Automation-Kontos angezeigt. Führen Sie die oben beschriebenen Schritte aus, um ein neues selbstsigniertes Zertifikat zu erstellen.

Nächste Schritte

Verwalten von Zertifikaten für die einmalige Verbundanmeldung in Microsoft Entra ID