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.
GILT FÜR: Die App besitzt die Daten
Der Benutzer besitzt die Daten
Befolgen Sie die Schritte in diesem Artikel, um Anmeldeinformationen programmgesteuert für Power BI zu konfigurieren. Wenn Sie Anmeldeinformationen programmgesteuert konfigurieren, können Sie Anmeldeinformationen auch verschlüsseln.
Die Beispiele in diesem Artikel finden Sie in .NET in C#. Um Beispiele in Java, Python und PowerShell zu finden, wechseln Sie zum jeweiligen Repository. Beispiele für die Verschlüsselung von KeyPair-Anmeldeinformationen finden Sie unter Python und PowerShell. Beispiele für die Verschlüsselung von KeyPair-Anmeldeinformationen finden Sie unter Python und PowerShell.
Hinweis
- Der aufrufende Benutzer oder Dienstprinzipal muss entweder ein Semantikmodellbesitzer oder ein Gatewayadministrator sein.
- Clouddatenquellen und die zugehörigen Anmeldeinformationen werden auf Benutzerebene verwaltet.
Aktualisieren des Anmeldeinformationsflows für Datenquellen
Entdecken Sie die Datenquellen des semantischen Modells durch Aufrufen von Datenquellen abrufen. Im Antworttext für jede Datenquelle sind Typ, Verbindungsdetails, Gateway und Datenquellen-ID angegeben.
// Select a datasource var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value; var datasource = datasources.First();Erstellen Sie die Anmeldedatenzeichenfolge entsprechend den Beispielen für das Aktualisieren von Datenquellen. Der Inhalt der Anmeldeinformationszeichenfolge hängt vom Typ der Anmeldeinformationen ab.
var credentials = new BasicCredentials(username: "username", password :"*****");Hinweis
Wenn Sie Clouddatenquellen verwenden, führen Sie die nächsten Schritte in diesem Abschnitt nicht aus. Rufen Sie Update Datasource auf, um die Anmeldeinformationen anhand der Gateway-ID und der Datenquellen-ID festzulegen, die Sie in Schritt 1 erhalten haben.
Um den öffentlichen Gatewayschlüssel abzurufen, rufen Sie Gateway abrufen auf.
var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);Verschlüsseln Sie die Anmeldeinformationen.
var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);Erstellen Sie die Anmeldedaten-Details mit verschlüsselten Anmeldeinformationen.
Verwenden Sie die AssymetricKeyEncryptor-Klasse mit dem in Schritt 3 abgerufenen öffentlichen Schlüssel.
var credentialDetails = new CredentialDetails( credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);Legen Sie Anmeldeinformationen fest, indem Sie Datenquelle aktualisieren aufrufen.
pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
Konfigurieren Sie eine neue Datenquelle für ein Datengateway
Installieren Sie das lokale Datengateway auf Ihrem Computer.
Um die Gateway-ID und den öffentlichen Schlüssel abzurufen, rufen Sie Gateways abrufen auf.
// Select a gateway var gateways = pbiClient.Gateways.GetGateways().Value; var gateway = gateways.First();Erstellen Sie die Details der Anmeldeinformationen, indem Sie das im Abschnitt Ablauf zum Aktualisieren von Anmeldeinformationen für Datenquellen beschriebene Verfahren unter Verwendung des öffentlichen Schlüssels des Gateways befolgen, den Sie in Schritt 2 abgerufen haben.
Erstellen Sie den Anforderungstext.
var request = new PublishDatasourceToGatewayRequest( dataSourceType: "SQL", connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}", credentialDetails: credentialDetails, dataSourceName: "my sql datasource");Rufen Sie die API zum Erstellen von Datenquellen auf.
pbiClient.Gateways.CreateDatasource(gateway.Id, request);
Arten von Anmeldedaten
Wenn Sie Datenquelle erstellen oder Datenquelle aktualisieren über die Power BI-REST-API in einem lokalen Unternehmensgateway aufrufen, verschlüsseln Sie den Wert der Anmeldeinformationen mithilfe des öffentlichen Gatewayschlüssels.
Hinweis
.NET SDK v3 kann auch die folgenden .NET SDK v2-Beispiele ausführen.
Windows und einfache Anmeldeinformationen
// Windows credentials
var credentials = new WindowsCredentials(username: "john", password: "*****");
// Or
// Basic credentials
var credentials = new BasicCredentials(username: "john", password: "*****");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Wichtige Zugangsdaten
var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
OAuth2-Anmeldeinformationen
var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Anonyme Anmeldeinformationen
var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);
Problembehandlung
Beim Aufrufen von „Datenquelle abrufen“ werden keine Gateway- und Datenquellen-ID gefunden
Dieses Problem bedeutet, dass das Semantikmodell nicht an ein Gateway gebunden ist. Beim Erstellen eines neuen Semantikmodells wird im Cloudgateway des Benutzers oder der Benutzerin für jede Cloudverbindung automatisch eine Datenquelle ohne Anmeldeinformationen erstellt. Dieses Cloudgateway wird verwendet, um die Anmeldeinformationen für Cloudverbindungen zu speichern.
Nachdem Sie das Semantikmodell erstellt haben, wird eine automatische Bindung zwischen ihm und einem passenden Gateway hergestellt, die übereinstimmende Datenquellen für alle Verbindungen enthält. Die automatische Bindung schlägt fehl, wenn kein geeignetes Gateway bzw. keine geeigneten Gateways vorhanden sind.
Wenn Sie lokale Semantikmodelle verwenden, erstellen Sie die fehlenden lokalen Datenquellen, und binden Sie das Semantikmodell mithilfe von Bind To Gateway (An Gateway binden) manuell an ein Gateway.
Um Gateways zu ermitteln, die gebunden werden könnten, verwenden Sie Gateways entdecken.