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:

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.

Pasos siguientes