Inserción de un informe con identidad basada en token (SSO)

SE APLICA A: La aplicación es la propietaria de los datos El usuario es el propietario de los datos

La identidad basada en tokens permite a un ISV usar un token de acceso de Microsoft Entra para pasar la identidad de un cliente a una base de datos de Azure SQL administrada en el inquilino del cliente.

Los clientes de ISV que mantienen y administran sus datos en Azure SQL Database pueden mantener sus datos seguros en su inquilino al integrarlos con Power BI Embedded en la aplicación de ISV.

Al generar el token de inserción, especifique la identidad del usuario en Azure SQL pasando el token de acceso de Microsoft Entra de ese usuario al servidor Azure SQL. A continuación, el token de acceso se usa para extraer solo los datos pertinentes para ese usuario de Azure SQL, para esa sesión específica.

Dibujo esquemático que muestra al ISV pasando la identidad efectiva al tenant de SQL y al cliente devolviendo un token de inserción.

Importante

Limitaciones del SSO de App-owns-data:

  • En escenarios de datos propios de la aplicación (entidad de servicio o autenticación de usuario maestro), el inicio de sesión único para orígenes de datos de DirectQuery se admite solo con Azure SQL Database.
  • Al generar un token de integración con SSO, debe proporcionar un IdentityBlob para cada origen de datos que tenga habilitado el SSO. Si se omite IdentityBlob, se produce un error en la generación de tokens o la ejecución de consultas.

Configuración de la identidad basada en token

La identidad basada en token sólo funciona con modelos de DirectQuery en una capacidad conectada a una base de datos de Azure SQL Database configurada para permitir la autenticación con Microsoft Entra. El origen de datos del modelo semántico se debe configurar para usar las credenciales de OAuth2 de los usuarios finales, a fin de usar una identidad basada en token. Obtenga más información sobre la autenticación con Microsoft Entra para Azure SQL Database.

Antes de configurar la identidad basada en tokens, compruebe lo siguiente:

  • El origen de datos de DirectQuery es Azure SQL Database (el único origen de datos de SSO admitido para escenarios de datos propios de la aplicación).
  • El Azure SQL Database está configurado para la autenticación Microsoft Entra.
  • Tiene el token de acceso de Microsoft Entra del usuario para pasar como IdentityBlob al servidor de Azure SQL.
  1. En el portal de Power BI, seleccione Modelo semántico > Más opciones (tres puntos) > Configuración > Credenciales de origen de datos > Editar credenciales.

    Captura de pantalla de la opción de configuración del conjunto de datos en el portal de Power BI.

  2. Active la casilla de opción OAuth2.

    Captura de pantalla de la configuración del servidor de Azure SQL.

Generar un token de identidad

Para crear un token de acceso para Azure SQL, la aplicación debe tener permiso delegado para acceder a Azure SQL DB y Data Warehouse a través de API de Azure SQL Database en la configuración de registro de la aplicación de Microsoft Entra en el Azure Portal.

Captura de pantalla de las opciones de configuración de registro de aplicaciones de Microsoft Entra en Azure Portal. Autentique y adquiera un token para el usuario desde el punto de conexión de Azure AD, versión 2 para el siguiente ámbito: https://database.windows.net/.default

Consulte los siguientes ejemplos de código MSAL para obtener ayuda:

Generar token de inserción

Para insertar un informe con una identidad basada en tokens, genere un token de inserción que contenga la identidad base del token del usuario de ISV deseado. Consulte los ejemplos siguientes para generar tokens de inserción para diferentes escenarios.

Note

Debe incluir una entrada datasourceIdentities con un identityBlob válido para cada origen de datos de Azure SQL que tenga habilitado el inicio de sesión único. Si a algún origen de datos habilitado para SSO le falta su identityBlob, se producirá un error en la llamada de generación de tokens para insertar o la ejecución de consultas devolverá un error.

{
  "datasets": [
    {
      "id": "66ba5010-xxxx-xxxx-xxxx-f2bf0125abeb",
    }
  ],
  "reports": [
    {
      "allowEdit": false,
      "id": "9e6da541-xxxx-xxxx-xxxx-7d9442827cce"
    }
  ],
  "datasourceIdentities": [
    {
      "identityBlob": "eyJ…",
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "YourServerName.database.windows.net",
            "database": "YourDataBaseName"
          }
        }
      ]
    }
  ]
}

En el ejemplo siguiente se muestra un informe de Power BI insertado con SSO y RLS aplicados al conjunto de datos:

Captura de pantalla que muestra un informe de Power BI insertado con SSO y RLS aplicados al conjunto de datos.