Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: Appen äger data
Användaren äger data
Följ stegen i den här artikeln om du vill konfigurera autentiseringsuppgifter programmatiskt för Power BI. Genom att konfigurera autentiseringsuppgifter programmatiskt kan du även kryptera autentiseringsuppgifter.
Kommentar
- Den anropande användaren måste vara en semantisk modellägare eller gatewayadministratör. Du kan också använda tjänstens huvudnamn. Tjänstens huvudnamn kan till exempel vara semantisk modellägare.
- Molndatakällor och deras motsvarande autentiseringsuppgifter hanteras på användarnivå.
Uppdatera autentiseringsuppgifternas flöde för datakällor
Identifiera semantikmodellens datakällor genom att anropa Hämta datakällor. Svarstexten för varje datakälla innehåller typ, anslutningsinformation, gateway och datakällans ID.
// Select a datasource var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value; var datasource = datasources.First();Skapa autentiseringsuppgifterna enligt Exempel på uppdateringsdatakälla. Innehållet i autentiseringsuppgifternas sträng beror på typen av autentiseringsuppgifter.
var credentials = new BasicCredentials(username: "username", password :"*****");Kommentar
Om du använder molndatakällor följer du inte nästa steg i det här avsnittet. Anropa Uppdatera datakälla för att ange autentiseringsuppgifterna med hjälp av gateway-ID:t och datakäll-ID:t som du fick i steg 1.
Hämta den offentliga gatewaynyckeln genom att anropa Hämta gateway.
var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);Kryptera autentiseringsuppgifterna.
var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);Skapa information om autentiseringsuppgifter med krypterade autentiseringsuppgifter.
Använd klassen AsymetricKeyEncryptor med den offentliga nyckeln som hämtades i steg 3.
var credentialDetails = new CredentialDetails( credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);Ange autentiseringsuppgifter genom att anropa Uppdatera datakälla.
pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
Konfigurera en ny datakälla för en datagateway
Installera den lokala datagatewayen på datorn.
Hämta gateway-ID:t och den offentliga nyckeln genom att anropa Hämta gatewayer.
// Select a gateway var gateways = pbiClient.Gateways.GetGateways().Value; var gateway = gateways.First();Skapa information om autentiseringsuppgifter genom att följa den procedur som beskrivs i avsnittet uppdatera autentiseringsuppgifter för datakällor med hjälp av den offentliga gatewaynyckel som du hämtade i steg 2.
Skapa begärandetexten.
var request = new PublishDatasourceToGatewayRequest( dataSourceType: "SQL", connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}", credentialDetails: credentialDetails, dataSourceName: "my sql datasource");Anropa API:et Skapa datakälla .
pbiClient.Gateways.CreateDatasource(gateway.Id, request);
Typer av autentiseringsuppgifter
När du anropar Skapa datakälla eller Uppdatera datakälla från Power BI REST API på en lokal företagsgateway krypterar du värdet för autentiseringsuppgifterna med hjälp av den offentliga gatewaynyckeln.
Kommentar
.NET SDK v3 kan också köra följande .NET SDK v2-exempel.
Windows och grundläggande autentiseringsuppgifter
// 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);
Nyckelautentiseringsuppgifter
var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
OAuth2-autentiseringsuppgifter
var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Anonyma autentiseringsuppgifter
var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);
Felsökning
Ingen gateway och datakällans ID hittas när du anropar hämta datakällor
Det här problemet innebär att den semantiska modellen inte är bunden till en gateway. När du skapar en ny semantisk modell skapas en datakälla utan autentiseringsuppgifter automatiskt på användarens molngateway för varje molnanslutning. Molngatewayen används för att lagra autentiseringsuppgifterna för molnanslutningar.
När du har skapat den semantiska modellen skapas en automatisk bindning mellan den semantiska modellen och en lämplig gateway som innehåller matchande datakällor för alla anslutningar. Den automatiska bindningen misslyckas om det inte finns någon lämplig gateway eller gateway.
Om du använder lokala semantiska modeller skapar du de lokala datakällor som saknas och binder semantikmodellen till en gateway manuellt med hjälp av Bind till gateway.
Om du vill identifiera gatewayer som kan bindas använder du Identifiera gatewayer.