App braucht Zertifikat-Authentifizierung? Certificate Credential hochladen

Veröffentlicht am:

Eine Backend-App muss sich bei Microsoft Entra ID authentifizieren.

Sie soll kein langlebiges Client Secret verwenden.

Das Microsoft-Entra-Muster ist:

App Registration erstellen -> Zertifikat-Schluesselpaar erzeugen -> oeffentliches Zertifikat hochladen -> privaten Schluessel sicher speichern -> mit Zertifikat authentifizieren

Dieses Muster wird verwendet, wenn:

  • kein Benutzer anwesend ist
  • die App als sie selbst laeuft
  • die App einen privaten Schluessel sicher speichern oder abrufen kann
  • keine Managed Identity verfuegbar ist
  • ein Client Secret fuer die Umgebung zu schwach waere

Certificate Credential vs Client Secret

Ein Client Secret ist ein gemeinsames Passwort.

Wer das Secret besitzt, kann sich als App authentifizieren, bis das Secret ablaeuft oder widerrufen wird.

Ein Certificate Credential verwendet asymmetrische Kryptografie.

Die App behaelt den privaten Schluessel.

Microsoft Entra speichert das oeffentliche Zertifikat.

Beim Sign-in signiert die App eine Client Assertion mit dem privaten Schluessel.

Entra prueft diese Signatur mit dem hochgeladenen oeffentlichen Zertifikat.

Der private Schluessel wird nie nach Entra hochgeladen.

App Registration erstellen oder oeffnen

Gehe zu:

Entra ID > App registrations

Erstelle oder oeffne die Anwendung, die Zertifikat-Authentifizierung braucht.

Beispiel:

CloudTrips-CertAuth-App

Diese App Registration repraesentiert den Workload, der Tokens anfordern wird.

Microsoft Entra App registrations Seite mit CloudTrips Zertifikat-Authentifizierungs-App

App-IDs pruefen

Oeffne:

Overview

Bewahre diese Werte fuer die Anwendungskonfiguration auf:

Application (client) ID
Directory (tenant) ID

Die App verwendet diese Werte, wenn sie ein Token von Microsoft Entra ID anfordert.

CloudTrips Zertifikat-App Overview mit Application client ID und Directory tenant ID

Zertifikat vorbereiten

Erzeuge oder beschaffe ein Zertifikat-Schluesselpaar.

Fuer Entra App-Authentifizierung laedst du nur die oeffentliche Zertifikatsdatei hoch.

Typische oeffentliche Zertifikatsformate sind:

.cer
.pem
.crt

Die Anwendung muss den passenden privaten Schluessel sicher speichern, zum Beispiel in:

  • Azure Key Vault
  • einem verwalteten Zertifikatspeicher
  • einem geschuetzten Deployment Secret Store
  • einem Hardware Security Module, wenn erforderlich

Lade keine .pfx-Datei mit privatem Schluessel nach Entra hoch.

Certificates and Secrets oeffnen

Oeffne in der App Registration:

Certificates & secrets > Certificates

Waehle:

Upload certificate

App Registration Certificates and secrets Seite mit Certificates Tab und Upload certificate Aktion

Oeffentliches Zertifikat hochladen

Waehle die oeffentliche Zertifikatsdatei aus.

Fuege eine Beschreibung hinzu, die Ownership oder Rotation erklaert.

Beispiel:

CloudTrips production workload certificate

Lade das Zertifikat hoch.

Upload certificate Blade mit ausgewaehlter oeffentlicher Zertifikatsdatei und Beschreibung

Certificate Credential bestaetigen

Nach dem Upload zeigt Entra das Certificate Credential an.

Pruefe:

Thumbprint
Start date
Expires
Certificate ID

Der Thumbprint ist nuetzlich, wenn die Anwendung ein Zertifikat aus einem Zertifikatspeicher auswaehlt.

Das Ablaufdatum ist betrieblich wichtig.

Wenn das Zertifikat ablaeuft, kann sich die Anwendung mit diesem Credential nicht mehr authentifizieren.

Anwendung konfigurieren

Die Anwendung braucht:

Tenant ID
Client ID
Private key or certificate reference
Certificate thumbprint or key identifier

Die genauen Einstellungsnamen haengen von Runtime und Identity Library ab.

Eine App mit Microsoft Authentication Library kann sich zum Beispiel authentifizieren mit:

client_id
tenant_id
private_key_certificate
scope=resource/.default
grant_type=client_credentials

Der wichtige Unterschied zu einer App mit Secret ist:

client_secret wird nicht verwendet

Certificates Tab mit hochgeladenem Certificate Credential, Thumbprint und Ablaufdatum

Zertifikat-Authentifizierung testen

Fuehre den Workload oder einen kleinen Token-Request-Test aus.

Die App soll ein Token mit dem Certificate Credential anfordern.

Zur Laufzeit signiert die App eine Client Assertion mit dem privaten Schluessel.

Microsoft Entra prueft diese Assertion gegen das hochgeladene oeffentliche Zertifikat.

Wenn die Pruefung erfolgreich ist, stellt Entra ein Application Token aus.

Postman Token Request mit Tenant ID, Client ID, Client Assertion und ohne Client Secret

Vor Ablauf rotieren

Certificate Credentials brauchen Rotationsplanung.

Ein sicheres Rotationsmuster ist:

  1. Lade ein neues oeffentliches Zertifikat hoch, bevor das alte ablaeuft.
  2. Deploye die App mit dem neuen privaten Schluessel oder der neuen Zertifikatsreferenz.
  3. Bestaetige, dass Token Requests mit dem neuen Zertifikat funktionieren.
  4. Entferne das alte Certificate Credential nach dem abgeschlossenen Rollout.

So vermeidest du Downtime waehrend der Rotation.

Enterprise-Hinweis

Zertifikat-Authentifizierung ist staerker als ein Client Secret, aber sie ist keine Magie.

Die Sicherheit haengt davon ab, wie gut der private Schluessel geschuetzt ist.

Empfohlene Checkliste:

  • nur das oeffentliche Zertifikat nach Entra hochladen
  • den privaten Schluessel an einem sicheren Ort speichern
  • Zugriff auf Lesen oder Export des privaten Schluessels begrenzen
  • Zertifikatsablauf ueberwachen
  • Zertifikate vor Ablauf rotieren
  • ungenutzte Certificate Credentials entfernen
  • Managed Identity oder Workload Identity Federation bevorzugen, wenn die Plattform es unterstuetzt