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.
In diesem Artikel wird erläutert, wie Sie das SDK mit Dienstprinzipalprofilen verwenden. Es gibt zwei Möglichkeiten, einen Power BI-Client mit einem Dienstprinzipalprofil zu verbinden. Ihre Möglichkeiten:
- Erstellen eines Clients mit einer Profilobjekt-ID
- Angeben der Profil-ID im Aufruf der API-Anforderung
Sobald der Client einem Profil zugeordnet ist, können Sie das aktuelle Profil des Dienstprinzipals aus dem Power BI-Client abrufen.
Erstellen eines Power BI-Clients mit Dienstprinzipalprofil
var profileObjectId = new Guid("81f24a6d-7ebb-4478-99c7-2c36f7870a26");
var powerBIclient = new PowerBIClient(credentials, profileObjectId: profileObjectId);
Wenn Sie einen Power BI-Client mit der Profilobjekt-ID erstellen, enthält jeder API-Aufruf, der den Client verwendet, die X-PowerBI-profile-id im Anforderungsheader.
Beispiel:
GET https://powerbiapi.analysis-df.windows.net/v1.0/myorg/groups
Authorization: Bearer eyJ0eXAiO.....5U_g
X-PowerBI-profile-id: 81f24a6d-7ebb-4478-99c7-2c36f7870a26
Festlegen des Profils für den Aufruf der API-Anforderung
Alternativ können Sie die Profil-ID in der API-Anforderung angeben, indem Sie die Eigenschaft customHeaders in der überladenen PowerBIClient-Methode WithHttpMessagesAsync der API verwenden.
var powerBIclient = new PowerBIClient(credentials);
var profileHeader = new Dictionary<string, List<string>>();
profileHeader.Add("X-PowerBI-profile-id", new List<string> { "81f24a6d-7ebb-4478-99c7-2c36f7870a26" });
var groups = await powerBIclient.Groups.GetGroupsWithHttpMessagesAsync(customHeaders: profileHeader);
Beispiel:
GET https://powerbiapi.analysis-df.windows.net/v1.0/myorg/groups
Authorization: Bearer eyJ0eXAiO.....5U_g
X-PowerBI-profile-id: 81f24a6d-7ebb-4478-99c7-2c36f7870a26
Im vorherigen Codebeispiel gehört der Profilheader nicht zu den Clientstandardheadern, weil der Profilheader nicht vom Code hinzugefügt wird. Sie müssen den Profilheader bei jeder API-Anforderung angeben.
Stellen Sie sicher, dass Sie Duplizierungen vermeiden. Wenn Sie z. B. einen Client mit einer Profilobjekt-ID erstellen und dann den Header mit der API-Anforderung angeben, führt dies zu Fehlern des Typs „Nicht autorisiert“.
Abrufen des aktuellen Dienstprinzipalprofils aus dem Power BI-Client
Rufen Sie GetServicePrincipalProfileObjectId auf, um das aktuelle Dienstprinzipalprofil aus dem SDK-Client abzurufen.
var profileObjectId = new Guid("81f24a6d-7ebb-4478-99c7-2c36f7870a26");
var powerBIclient = new PowerBIClient(credentials, profileObjectId: profileObjectId);
var currentProfileObjectId = powerBIclient.GetServicePrincipalProfileObjectId();
Überlegungen und Einschränkungen
Dienstprinzipalprofile werden im Liveverbindungsmodus nicht mit Azure Analysis Services (AAS) unterstützt.