-->

At BlinkLearning we adapt and distribute the digital educational content of more than 50 national and international publishers, such as Anaya, Santillana, Oxford, and Macmillan. We offer educational centers tools for managing the classroom and we provide them with access to over 15,000 digital textbooks.

Este artículo muestra cómo puede autenticar a los usuarios en la aplicación de Power BI y recuperar un token de acceso para usarlo con la API REST de Power BI.This article shows how you can authenticate users in your Power BI application and retrieve an access token to use with the Power BI REST API.

Antes de que la aplicación llame a la API REST, es preciso obtener un token de acceso de autenticación de Azure Active Directory (Azure AD).Before your app calls the REST API, you need to get an Azure Active Directory (Azure AD) authentication access token.La aplicación usa un token para acceder a los paneles, iconos e informes de Power BI.Your app uses a token to get access to Power BI dashboards, tiles, and reports.Para más información, consulte Autorización del acceso a aplicaciones web de Azure Active Directory mediante el flujo de concesión de código OAuth 2.0.To learn more, see Authorize access to Azure Active Directory web applications using the OAuth 2.0 code grant flow.

En función de cómo vaya a insertar el contenido, el token de acceso se recupera de forma diferente.Depending on how you're embedding content, the access token is retrieved differently.En este artículo se muestran dos enfoques diferentes.This article shows two different approaches.

Token de acceso para usuarios de Power BI (el usuario es propietario de los datos)Access token for Power BI users (user owns data)

Este ejemplo tiene validez cuando los usuarios inician sesión de forma manual en Azure AD con su inicio de sesión de la organización.This example is for when your users manually sign into Azure AD with their organization sign in.Esta tarea se utiliza para insertar contenido para los usuarios que tienen acceso al servicio Power BI.This task is used when embedding content for users that have Power BI service access.

Obtención de un código de autorización de Azure ADGet an Azure AD authorization code

El primer paso para obtener un token de acceso consiste en obtener un código de autorización de Azure AD.The first step to get an access token is to get an authorization code from Azure AD.Cree una cadena de consulta con las propiedades siguientes y vuelva a Azure AD.Construct a query string with the following properties, and redirect to Azure AD.

Cadena de consulta del código de autorizaciónAuthorization code query string

Después de crear una cadena de consulta, vuelva a Azure AD para obtener un código de autorización.After you construct a query string, you redirect to Azure AD to get an authorization code.A continuación se muestra un método de C# completo para crear una cadena de consulta de código de autorización y volver a Azure AD.Below is a complete C# method to construct an authorization code query string, and redirect to Azure AD.A continuación, use el código de autorización para obtener un token de acceso.You then use the authorization code to get an access token.

En redirect.aspx.cs, se llama a AuthenticationContext.AcquireTokenByAuthorizationCode para generar el token.Within redirect.aspx.cs, AuthenticationContext.AcquireTokenByAuthorizationCode calls to generate the token.

Obtener código de autorizaciónGet authorization code

Obtener un token de acceso del código de autorizaciónGet an access token from authorization code

Una vez que Azure AD le devuelve a la aplicación web con un código de autorización, puede utilizarlo para obtener un token de acceso.Once Azure AD redirects back to your web app with an authorization code, you can use it to get an access token.A continuación se muestra un ejemplo de C# que se puede usar en la página de redireccionamiento y en el evento Page_Load de la página default.aspx.Below is a C# sample that you can use in your redirect page and the default.aspx's Page_Load event.

Puede recuperar el espacio de nombres Microsoft.IdentityModel.Clients.ActiveDirectory del paquete NuGet Biblioteca de autenticación de Active Directory.You can retrieve the Microsoft.IdentityModel.Clients.ActiveDirectory namespace from the Active Directory Authentication Library NuGet package.

Redirect.aspx.csRedirect.aspx.cs

Default.aspxDefault.aspx

Token de acceso para usuarios que no sean de Power BI (la aplicación es propietaria de los datos)Access token for non-Power BI users (app owns data)

Este enfoque se usa normalmente para aplicaciones del tipo proveedor de software independiente (ISV) en las que la aplicación es propietaria del acceso a los datos.This approach is typically used for independent software vendor (ISV) type applications where the app owns access to the data.Los usuarios no son necesariamente usuarios de Power BI y la aplicación controla la autenticación y el acceso de los usuarios.Users aren't necessarily Power BI users, and the application controls user authentication and access.

Token de acceso con una cuenta maestraAccess token with a master account

Para este enfoque, se usa una sola cuenta maestra que es un usuario de Power BI Pro.For this approach, you use a single master account that is a Power BI Pro user.Las credenciales de la cuenta se almacenan con la aplicación.The account credentials are stored with the application.La aplicación se autentica en Azure AD con las credenciales almacenadas.The application authenticates against Azure AD with these stored credentials.El código de ejemplo que se muestra a continuación proviene del ejemplo de App owns dataThe example code shown below comes from the App owns data sample

Token de acceso con la entidad de servicioAccess token with service principal

Para este enfoque, se usa una entidad de servicio, es decir un token de solo aplicación.For this approach, you use a service principal, that is an app-only token.La aplicación se autentica en Azure AD con la entidad de servicio.The application authenticates against Azure AD with service principal.El código de ejemplo que se muestra a continuación proviene del ejemplo de App owns dataThe example code shown below comes from the App owns data sample

EmbedService.csEmbedService.cs

Solución de problemasTroubleshoot

Let's play lep's world 1 for mac free. Mensaje de error: 'AuthenticationContext no contiene una definición para AcquireToken y no se encontró ningún elemento AcquireToken accesible que acepte un primer argumento del tipo AuthenticationContext (¿falta una directiva de uso o una referencia de ensamblado?)'.Error message: 'AuthenticationContext' doesn't contain a definition for 'AcquireToken' and no accessible 'AcquireToken' accepting a first argument of type 'AuthenticationContext' could be found (are you missing a using directive or an assembly reference?)'.

Pruebe a descargar Microsoft.IdentityModel.Clients.ActiveDirectory si aparece este error.Try downloading Microsoft.IdentityModel.Clients.ActiveDirectory if you see this error.

Pasos siguientesNext steps

Ahora que tiene el token de acceso, puede llamar a la API de REST de Power BI para insertar contenido.Now that you have the access token, you can call the Power BI REST API to embed content.Para obtener información, consulte Cómo insertar el contenido de Power BI.For information, see How to embed your Power BI content.

¿Tiene más preguntas?More questions?Pruebe a preguntar a la comunidad de Power BITry asking the Power BI Community