Konfigurace přihlašovacích údajů pro Power BI prostřednictvím kódu programu
PLATÍ PRO: Aplikace vlastní data , která uživatel vlastní.
Pokud chcete pro Power BI nakonfigurovat přihlašovací údaje prostřednictvím kódu programu, postupujte podle kroků v tomto článku. Konfigurace přihlašovacích údajů prostřednictvím kódu programu také umožňuje šifrovat přihlašovací údaje.
Poznámka:
- Volající uživatel musí být vlastníkem sémantického modelu nebo správcem brány. Můžete také použít instanční objekt. Instanční objekt může být například vlastníkem sémantického modelu.
- Cloudové zdroje dat a jejich odpovídající přihlašovací údaje se spravují na úrovni uživatele.
Aktualizace toku přihlašovacích údajů pro zdroje dat
Seznamte se se zdroji dat sémantického modelu voláním Získat zdroje dat. Text odpovědi pro každý zdroj dat obsahuje typ, podrobnosti o připojení, bránu a ID zdroje dat.
// Select a datasource var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value; var datasource = datasources.First();
Sestavte řetězec přihlašovacích údajů podle příkladů aktualizace zdroje dat. Obsah řetězce přihlašovacích údajů závisí na typu přihlašovacích údajů.
var credentials = new BasicCredentials(username: "username", password :"*****");
Poznámka:
Pokud používáte cloudové zdroje dat, nepoužívejte další kroky v této části. Voláním aktualizace zdroje dat nastavte přihlašovací údaje pomocí ID brány a ID zdroje dat, které jste získali v kroku 1.
Načtěte veřejný klíč brány zavoláním metody Get Gateway.
var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);
Zašifrujte přihlašovací údaje.
var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);
Sestavte podrobnosti přihlašovacích údajů pomocí šifrovaných přihlašovacích údajů.
Použijte třídu AsymetricKeyEncryptor s veřejným klíčem načteným v kroku 3.
var credentialDetails = new CredentialDetails( credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Nastavte přihlašovací údaje voláním update Datasource.
pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
Konfigurace nového zdroje dat pro bránu dat
Načtěte ID brány a veřejný klíč voláním Get Gateways.
// Select a gateway var gateways = pbiClient.Gateways.GetGateways().Value; var gateway = gateways.First();
Podrobné informace o přihlašovacích údajích sestavujte podle postupu popsaného v postupu aktualizace přihlašovacích údajů pro zdroje dat pomocí veřejného klíče brány, který jste získali v kroku 2.
Sestavte text požadavku.
var request = new PublishDatasourceToGatewayRequest( dataSourceType: "SQL", connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}", credentialDetails: credentialDetails, dataSourceName: "my sql datasource");
Volejte rozhraní API pro vytvoření zdroje dat.
pbiClient.Gateways.CreateDatasource(gateway.Id, request);
Typy přihlašovacích údajů
Když zavoláte vytvořit zdroj dat nebo aktualizovat zdroj dat z rozhraní REST API Power BI v podnikové místní bráně, zašifrujte hodnotu přihlašovacích údajů pomocí veřejného klíče brány.
Poznámka:
.NET SDK v3 může také spustit následující příklady sady .NET SDK v2.
Windows a základní přihlašovací údaje
// 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);
Přihlašovací údaje ke klíči
var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Přihlašovací údaje OAuth2
var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Anonymní přihlašovací údaje
var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);
Řešení problému
Při volání získat zdroje dat se nenašlo žádné ID brány a zdroje dat.
Tento problém znamená, že sémantický model není vázán na bránu. Když vytvoříte nový sémantický model, vytvoří se zdroj dat bez přihlašovacích údajů automaticky v cloudové bráně uživatele pro každé cloudové připojení. Cloudová brána slouží k ukládání přihlašovacích údajů pro cloudová připojení.
Po vytvoření sémantického modelu se vytvoří automatická vazba mezi sémantickým modelem a vhodnou bránou, která obsahuje odpovídající zdroje dat pro všechna připojení. Automatická vazba selže, pokud není k dispozici žádná vhodná brána nebo brány.
Pokud používáte místní sémantické modely, vytvořte chybějící místní zdroje dat a vytvořte ručně sémantický model s bránou pomocí metody Bind To Gateway.
Pokud chcete zjistit brány, které se dají svázat, použijte příkaz Zjistit brány.