Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die zertifikatbasierte Authentifizierung ermöglicht es Ihnen, mit einem Clientzertifikat von Microsoft Entra-ID authentifiziert zu werden. Das Clientzertifikat kann sich auf einem Windows-, Android- oder iOS-Gerät befinden, oder das Clientzertifikat kann in einem Azure Key Vault aufbewahrt werden.
Die Verwendung dieser Authentifizierungsmethode ermöglicht die Verwaltung von Zertifikaten von einem zentralen Ort mithilfe der Zertifizierungsstelle (CA) zur Erneuerung oder Sperrung.
Weitere Informationen zu Zertifikaten in der Microsoft Entra-ID finden Sie auf der Seite "Clientanmeldeinformationsflüsse ".
Methode
Schritt 1 : Einbetten von Inhalten mit Dienstprinzipal
Wenn Sie Ihre Inhalte mit einem Dienstprinzipal einbetten möchten, befolgen Sie die Anweisungen unter Einbetten von Power BI-Inhalten mit Dienstprinzipal und einem geheimen Anwendungsschlüssel.
Hinweis
Wenn Sie bereits Inhalte haben, die mit einem Dienstprinzipal eingebettet sind, überspringen Sie diesen Schritt, und fahren Sie mit Schritt 2 fort.
Schritt 2 : Erstellen eines Zertifikats
Sie können ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle erwerben oder selbst ein Zertifikat generieren.
In diesem Abschnitt wird das Erstellen eines Zertifikats mithilfe von Azure Key Vault und das Herunterladen der .cer-Datei beschrieben, die den öffentlichen Schlüssel enthält.
Melden Sie sich bei Microsoft Azure an.
Suchen Sie nach dem Link Schlüsseltresore und wählen Sie ihn aus.
Wählen Sie den Schlüsseltresor aus, dem Sie ein Zertifikat hinzufügen möchten.
Wählen Sie Zertifikateaus.
Wählen Sie die Option Generieren/Importieren aus.
Konfigurieren Sie die Felder zum Erstellen eines Zertifikats wie folgt:
Methode der Zertifikaterstellung – Allgemein
Zertifikatname – Geben Sie einen Namen für Ihr Zertifikat ein.
Typ der Zertifizierungsstelle – selbstsigniertes Zertifikat
Betreff - Ein X.500-Distinguished Name
DNS-Namen - 0 DNS-Namen
Gültigkeitszeitraum (in Monaten) – Gültigkeitsdauer des Zertifikats eingeben
Inhaltstyp - PKCS #12
Aktionstyp "Lebensdauer" – Automatische Verlängerung bei einer bestimmten Prozentualen Lebensdauer
Prozentuale Lebensdauer - 80
Erweiterte Richtlinienkonfiguration – Nicht konfiguriert
Wählen Sie "Erstellen" aus. Das neu erstellte Zertifikat ist standardmäßig deaktiviert. Es kann bis zu fünf Minuten dauern, bis sie aktiviert werden.
Wählen Sie das von Ihnen erstellte Zertifikat aus.
Wählen Sie "Im CER-Format herunterladen" aus. Die heruntergeladene Datei enthält den öffentlichen Schlüssel.
Schritt 3 : Einrichten der Zertifikatauthentifizierung
Wählen Sie in Ihrer Microsoft Entra-Anwendung die Registerkarte "Zertifikate und geheime Schlüssel " aus.
Wählen Sie "Zertifikat hochladen" aus, und laden Sie die .cer Datei hoch, die Sie erstellt und in Schritt 2 dieses Lernprogramms heruntergeladen haben. Die datei .cer enthält den öffentlichen Schlüssel.
Schritt 4 – Abrufen des Zertifikats aus Azure Key Vault
Verwenden Sie managed Service Identity (MSI), um das Zertifikat aus Azure Key Vault abzurufen. Dieser Prozess umfasst das Abrufen des PFX-Zertifikats , das sowohl die öffentlichen als auch privaten Schlüssel enthält.
Weitere Informationen finden Sie im Codebeispiel zum Lesen des Zertifikats aus Azure Key Vault. Wenn Sie Visual Studio verwenden möchten, lesen Sie " Konfigurieren von Visual Studio" für die Verwendung von MSI.
private X509Certificate2 ReadCertificateFromVault(string certName)
{
var serviceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(serviceTokenProvider.KeyVaultTokenCallback));
CertificateBundle certificate = null;
SecretBundle secret = null;
certificate = keyVaultClient.GetCertificateAsync($"https://{KeyVaultName}.vault.azure.net/", certName).Result;
secret = keyVaultClient.GetSecretAsync(certificate.SecretIdentifier.Identifier).Result;
return new X509Certificate2(Convert.FromBase64String(secret.Value));
}
Schritt 5: Authentifizieren mithilfe des Dienstprinzipals und eines Zertifikats
Sie können Ihre App authentifizieren, die einen Dienstprinzipal und ein Zertifikat verwendet, das in Azure Key Vault gespeichert ist, indem Sie eine Verbindung mit Azure Key Vault herstellen.
Um das Zertifikat aus Azure Key Vault zu verbinden und zu lesen, siehe folgendes Codebeispiel.
Hinweis
Wenn Sie bereits über ein von Ihrer Organisation erstelltes Zertifikat verfügen, laden Sie die PFX-Datei in Azure Key Vault hoch.
// Preparing needed variables
var Scope = "https://analysis.windows.net/powerbi/api/.default"
var ApplicationId = "{YourApplicationId}"
var tenantSpecificURL = "https://login.microsoftonline.com/{YourTenantId}/"
X509Certificate2 certificate = ReadCertificateFromVault(CertificateName);
// Authenticating with a SP and a certificate
public async Task<AuthenticationResult> DoAuthentication(){
IConfidentialClientApplication clientApp = null;
clientApp = ConfidentialClientApplicationBuilder.Create(ApplicationId)
.WithCertificate(certificate)
.WithAuthority(tenantSpecificURL)
.Build();
return await clientApp.AcquireTokenForClient(Scope).ExecuteAsync();
}
Konfigurieren von Visual Studio für die Verwendung von MSI
Wenn Sie eine eingebettete Lösung erstellen, kann es hilfreich sein, Visual Studio so zu konfigurieren, dass verwaltete Dienstidentität (Managed Service Identity, MSI) verwendet wird. MSI ist ein Feature, mit dem Sie Ihre Microsoft Entra-Identität verwalten können. Nach der Konfiguration kann Visual Studio sich bei Ihrem Azure Key Vault authentifizieren.
Hinweis
Der Benutzer, der sich bei Visual Studio anmeldet, erfordert Azure Key Vault-Berechtigungen, um das Zertifikat abzurufen.
Öffnen Sie Ihr Projekt in Visual Studio.
Wählen Sie Extras>Optionen aus.
Suchen und wählen Sie "Kontoauswahl" aus.
Fügen Sie das Konto hinzu, das Zugriff auf Ihren Azure Key Vault hat.