Kommentar
Å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:✅ inbäddad analys i Power BI för dina kunder (App-owns-data) och inbäddad analys i Power BI för din organisation (User-owns-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.
Exemplen i den här artikeln finns i .NET i C#. Om du vill hitta exempel i Javagår du till respektive lagringsplats Python och PowerShell. Exempel på KeyPair-kryptering av autentiseringsuppgifter finns i Python och PowerShell. Exempel på KeyPair-kryptering av autentiseringsuppgifter finns i Python och PowerShell.
Kommentar
- Den anropande användaren eller tjänstens huvudnamn måste vara antingen en semantisk modellägare eller en gatewayadministratör.
- 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 autentiseringssträngen enligt Exempel på uppdatering av datakä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 detaljerna för autentiseringsuppgifterna med krypterade uppgifter.
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 och den offentliga nyckeln genom att anropa Get Gateways.
// 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 eller något ID för datakälla hittas vid anrop av get data sources
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 kopplingen misslyckas om det inte finns någon lämplig gateway eller några lämpliga gatewayar.
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.