Uso del SDK de Power BI con perfiles de entidad de servicio
En este artículo se explica cómo usar el SDK con perfiles de entidad de servicio. Hay dos maneras de conectar un cliente de Power BI a un perfil de entidad de servicio. Puede:
- Crear un cliente con un id. de objeto de perfil
- Especificar el id. de perfil en la llamada de solicitud de API
Una vez que el cliente está asociado a un perfil, puede obtener el perfil de entidad de servicio actual del cliente de Power BI.
Creación de un cliente de Power BI con un perfil de entidad de servicio
var profileObjectId = new Guid("81f24a6d-7ebb-4478-99c7-2c36f7870a26");
var powerBIclient = new PowerBIClient(credentials, profileObjectId: profileObjectId);
Al crear un cliente de Power BI con el id. de objeto de perfil, cada llamada API que usa el cliente tiene X-PowerBI-profile-id
en el encabezado de solicitud.
Por ejemplo:
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
Establecimiento del perfil en la llamada de solicitud de la API
Como alternativa, puede especificar el id. de perfil en la solicitud de API mediante la propiedad customHeaders
del método WithHttpMessagesAsync
de PowerBIClient sobrecargado de la API.
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);
Por ejemplo,
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
En el ejemplo de código anterior, el encabezado de perfil no forma parte de los encabezados predeterminados del cliente, ya que el código no agrega el encabezado de perfil. Debe especificar este con cada solicitud de API.
Asegúrese de evitar las duplicaciones. Por ejemplo, crear un cliente con un id. de objeto de perfil y, después, especificar el encabezado con la solicitud de API produce errores no autorizados.
Obtención del perfil de entidad de servicio actual del cliente de Power BI
Para recuperar el perfil de entidad de servicio actual del cliente del SDK, llame a GetServicePrincipalProfileObjectId
.
var profileObjectId = new Guid("81f24a6d-7ebb-4478-99c7-2c36f7870a26");
var powerBIclient = new PowerBIClient(credentials, profileObjectId: profileObjectId);
var currentProfileObjectId = powerBIclient.GetServicePrincipalProfileObjectId();
Consideraciones y limitaciones
No se admiten perfiles de entidad de servicio con Azure Analysis Services (AAS) en modo de conexión dinámica.