En esta guía, se muestra cómo permitir que los usuarios que están en grupos de Microsoft Entra accedan a los datos de BigQuery en Power BI mediante la federación de identidades de personal.
Microsoft Entra es el proveedor de identidad (IdP). Las reclamaciones de grupos de Microsoft Entra se asignan a Google Cloud. A los grupos se les otorga permiso de Identity and Access Management (IAM) para acceder a los datos de BigQuery.
En esta guía, se proporcionan instrucciones para Power BI Desktop o Web.
Antes de comenzar
- Asegúrate de tener configurada una organización de Google Cloud .
-
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando:
gcloud init
Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.
- Debes tener acceso a Microsoft Entra y Microsoft Graph.
- Debes tener configurado Power BI.
Costos
La federación de identidades de personal está disponible como una función sin costo. Sin embargo, el registro de auditoría detallado de la federación de identidades para la fuerza laboral usa Cloud Logging. Para obtener información sobre los precios de Logging, consulta Precios de Google Cloud Observability.
Roles requeridos
En esta sección, se describen los roles que son necesarios para los administradores y los recursos.
Roles para administradores
A fin de obtener los permisos que necesitas para configurar la federación de identidades de personal, pídele a tu administrador que te otorgue el rol de IAM Administrador de grupos de trabajadores de IAM (roles/iam.workforcePoolAdmin
) en la organización.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
De manera alternativa, el rol básico de propietario de IAM (roles/owner
) también incluye permisos para configurar la federación de identidades.
No deberías otorgar funciones básicas en un entorno de producción, pero puedes otorgarlas en un entorno de desarrollo o de prueba.
Roles para identidades federadas
Power BI envía el parámetro userProject
durante el intercambio de tokens. Debido a esto, debes pedirle al administrador que otorgue el rol Consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer
) a las identidades federadas en el proyecto de facturación.
Para otorgar el rol a un grupo de identidades federadas, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \
--role="roles/serviceusage.serviceUsageConsumer" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto de facturación.WORKFORCE_POOL_ID
: El ID del grupo de Workforce Identity.GROUP_ID
: Es el ID del grupo, por ejemplo,admin-group@altostrat.com
. Para ver una lista de identificadores de principal comunes, consulta Identificadores de principal.
Crea un grupo de Workforce Identity
En esta sección, se describe cómo crear el grupo de identidades de personal. Crearás el proveedor de grupos de identidades de personal más adelante en esta guía.
gcloud
Para crear el grupo de identidades de personal, ejecuta el siguiente comando:
gcloud iam workforce-pools create WORKFORCE_POOL_ID \
--organization=ORGANIZATION_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--session-duration=SESSION_DURATION \
--location=global
Reemplaza lo siguiente:
WORKFORCE_POOL_ID
: Es un ID que elijas para representar tu Google Cloud grupo de personal. Para obtener información sobre el formato del ID, consulta la sección Parámetros de consulta en la documentación de la API.ORGANIZATION_ID
: Es el ID numérico de tu organización Google Cloud para el grupo de identidades de personal. Los grupos de identidad del personal están disponibles en todos los proyectos y carpetas de la organización.DISPLAY_NAME
: Opcional Un nombre visible para tu grupo de identidad del personal.DESCRIPTION
: Opcional Una descripción del grupo de identidad del personal.SESSION_DURATION
: Opcional Duración de la sesión, expresada como un número al que se agregas
, por ejemplo,3600s
. La duración de la sesión determina el tiempo de acceso a los tokens de acceso de Google Cloud , las sesiones de acceso de la consola (federada) y las sesiones de acceso de gcloud CLI de este grupo de personal son válidas. La duración predeterminada de la sesión es de una hora (3,600 s). El valor de duración de la sesión debe estar entre 15 minutos (900 s) y 12 horas (43,200 s).
Console
Para crear el grupo de identidades de personal, haz lo siguiente:
En la consola de Google Cloud , ve a la página Grupos de identidades de personal:
Selecciona la organización para tu grupo de identidades del personal. Los grupos de identidades para la fuerza laboral están disponibles en todos los proyectos y carpetas de una organización.
Haz clic en Crear grupo y haz lo siguiente:
En el campo Nombre, ingresa el nombre visible del grupo. El ID del grupo se deriva automáticamente del nombre a medida que escribes y se muestra en el campo Nombre. Para actualizar el ID del grupo, haz clic en Editar junto a él.
Opcional: En Descripción, ingresa una descripción del grupo.
Para crear el grupo de identidades de personal, haz clic en Siguiente.
La duración de la sesión del grupo de identidades del personal se establece de forma predeterminada en una hora (3,600 s). La duración de la sesión determina el tiempo de validez de los tokens de acceso Google Cloud , la consola (federada) y las sesiones de acceso de gcloud CLI de este grupo de personal. Después de crear el grupo, puedes actualizarlo para establecer una duración de sesión personalizada. La duración de la sesión debe ser de 15 minutos (900 s) a 12 horas (43,200 s).
Registra una nueva app de Microsoft Entra
En esta sección, se muestra cómo crear una app de Microsoft Entra con el portal de Microsoft Azure.
En la aplicación de Microsoft Entra que registraste, crea un nuevo secreto del cliente. Anota el secreto del cliente.
Otorga permisos de API a tu aplicación de Microsoft Entra para que pueda acceder a la información de usuarios y grupos de Active Directory. A fin de otorgar permisos para la API de Microsoft Graph, haz lo siguiente:
- En tu aplicación, selecciona Permisos de API.
- En Permisos configurados, haz clic en Agregar un permiso.
- En el cuadro de diálogo Solicitar permisos de API, selecciona Microsoft Graph.
- Selecciona Permisos de aplicación.
- En el cuadro de diálogo Seleccionar permisos, haz lo siguiente:
- En el campo de búsqueda, ingresa
User.ReadBasic.All
. - Haz clic en User.ReadBasic.All.
- Haz clic en Agregar permisos.
- En el campo de búsqueda, ingresa
- En el cuadro de diálogo Solicitar permisos de API, selecciona Microsoft Graph.
- Selecciona Permisos de aplicación.
- En el cuadro de diálogo Seleccionar permisos, haz lo siguiente:
- En el campo de búsqueda, ingresa
GroupMember.Read.All
. - Haz clic en GroupMember.Read.All.
- Haz clic en Agregar permisos.
- En el campo de búsqueda, ingresa
- En Permisos configurados, haz clic en Otorgar consentimiento del administrador para (nombre de dominio).
- Cuando se te solicite confirmar, haz clic en Sí.
Para acceder a los valores que necesitas para configurar el proveedor de grupos de personal más adelante en esta guía, haz lo siguiente:
- Ve a la página Descripción general de la aplicación de Microsoft Entra.
- Haz clic en Extremos.
Anota los siguientes valores:
- ID de cliente: Es el ID de la app de Microsoft Entra que registraste anteriormente en esta guía.
- Secreto de cliente: Es el secreto del cliente que generaste antes en esta guía.
- ID de usuario: Es el ID de usuario de la app de Microsoft Entra que registraste antes en esta guía.
- URI de la entidad emisora: Es el URI del documento de metadatos de OpenID Connect, sin incluir
/.well-known/openid-configuration
. Por ejemplo, si la URL del documento de metadatos de OpenID Connect eshttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration
, el URI del emisor eshttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/
.
Crea un proveedor de grupos de Workforce Identity
Para crear la política, ejecuta el siguiente comando:
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global \
--display-name=DISPLAY_NAME \
--issuer-uri=ISSUER_URI \
--client-id=https://analysis.windows.net/powerbi/connector/GoogleBigQuery \
--attribute-mapping=ATTRIBUTE_MAPPING \
--web-sso-response-type=id-token \
--web-sso-assertion-claims-behavior=only-id-token-claims \
--extra-attributes-issuer-uri=APP_ISSUER_URI \
--extra-attributes-client-id=APP_CLIENT_ID \
--extra-attributes-client-secret-value=APP_CLIENT_SECRET \
--extra-attributes-type=EXTRA_GROUPS_TYPE \
--extra-attributes-filter=EXTRA_FILTER \
--detailed-audit-logging
Reemplaza lo siguiente:
WORKFORCE_PROVIDER_ID
: un ID de proveedor único. El prefijogcp-
está reservado y no se puede usar en un ID de proveedor.WORKFORCE_POOL_ID
: el ID del grupo de identidades de personal al que se conecta el IdP.DISPLAY_NAME
: Es un nombre visible opcional y fácil de usar para el proveedor.ISSUER_URI
: Es el valor del URI del emisor, con el formatohttps://sts.windows.net/TENANT_ID
. ReemplazaTENANT_ID
por el ID de usuario que anotaste anteriormente.ATTRIBUTE_MAPPING
: Es una asignación del grupo y, de manera opcional, otros atributos del reclamo de Microsoft Entra a atributos deGoogle Cloud , por ejemplo,google.groups=assertion.groups, google.subject=assertion.sub
. Más adelante en esta guía, se le otorgará acceso al grupo a los datos de BigQuery.Para obtener más información, consulta Asignación de atributos.
APP_ISSUER_URI
: Es el URI de la entidad emisora de la aplicación de Microsoft Entra que anotaste anteriormente.APP_CLIENT_ID
: Es el ID de cliente de la entidad emisora que anotaste antes.APP_CLIENT_SECRET
: Es el secreto del cliente de la entidad emisora que anotaste antes.EXTRA_GROUPS_TYPE
: Es el tipo de identificador de grupo, que puede ser uno de los siguientes:azure-ad-groups-mail
: Las direcciones de correo electrónico de los grupos se recuperan del IdP, por ejemplo,admin-group@altostrat.com
.azure-ad-groups-id
: Los UUID que representan los grupos se recuperan del IdP, por ejemplo,abcdefgh-0123-0123-abcdef
.
EXTRA_FILTER
: Es el filtro que se usa para solicitar que el IdP pase aserciones específicas. Especificando filtros--extra-attributes-type=azure-ad-groups-mail
y--extra-attributes-filter
para las declaraciones de grupo de un usuario que se pasan desde el IdP De forma predeterminada, se recuperan todos los grupos asociados al usuario. Los grupos que se usan deben tener habilitadas las funciones de correo y seguridad. Para obtener más información, consulta Usa el parámetro de consulta $search.En el siguiente ejemplo, se filtran los grupos asociados con direcciones de correo electrónico de usuarios que comienzan con
gcp
: En el siguiente ejemplo, se filtran los grupos asociados con usuarios que tienen direcciones de correo electrónico que comienzan con--extra-attributes-filter='"mail:gcp"'
gcp
y un displayName que contieneexample
:--extra-attributes-filter='"mail:gcp" AND "displayName:example"'
El registro de auditoría detallado de la federación de identidades de personal registra la información que recibe de tu IdP en Logging. El registro de auditoría detallado puede ayudarte a solucionar problemas relacionados con la configuración del proveedor de grupo de identidades de personal. Para obtener información sobre cómo solucionar problemas de errores de asignación de atributos con registros de auditoría detallados, consulta Errores generales de asignación de atributos. Para obtener información sobre los precios de Logging, consulta los precios de Google Cloud Observability.
Para inhabilitar el registro de auditoría detallado de un proveedor de grupos de identidades de personal, omite la marca
--detailed-audit-logging
cuando ejecutesgcloud iam workforce-pools providers create
. Para inhabilitar el registro de auditoría detallado, también puedes actualizar el proveedor.
Crea políticas de IAM
En esta sección, crearás una política de permisos de IAM que otorga el rol de Visualizador de datos de BigQuery (roles/bigquery.dataViewer
) al grupo asignado en el proyecto en el que se almacenan los datos de BigQuery. La política permite que todas las identidades que están en el grupo vean los datos de las tablas y vistas de BigQuery almacenados en el proyecto.
Para crear la política, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding BIGQUERY_PROJECT_ID \
--role="roles/bigquery.dataViewer" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Reemplaza lo siguiente:
BIGQUERY_PROJECT_ID
: Es el ID del proyecto en el que se almacenan tus datos y metadatos de BigQuery.WORKFORCE_POOL_ID
: el ID del grupo de la identidad de personalGROUP_ID
: Es el identificador del grupo, que depende del valor de--extra-attributes-type
que se usó para crear el proveedor de grupos de identidades de personal, de la siguiente manera:azure-ad-groups-mail
: El identificador del grupo es una dirección de correo electrónico, por ejemplo,admin-group@altostrat.com
.azure-ad-groups-id
: El identificador del grupo es un UUID para el grupo, por ejemplo:abcdefgh-0123-0123-abcdef
Accede a los datos de BigQuery desde Power BI Desktop
Para acceder a los datos de BigQuery desde Power BI Desktop, haz lo siguiente:
- Abre Power BI.
- Haz clic en Obtener datos.
- Haz clic en Base de datos.
- En la lista de bases de datos, selecciona Google BigQuery (Microsoft Entra ID) (Beta).
- Haz clic en Conectar.
Completa los siguientes campos obligatorios:
- ID del proyecto de facturación: Es el ID del proyecto de facturación.
URI de público: El URI de Google Cloud , con el siguiente formato:
//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Reemplaza lo siguiente:
WORKFORCE_POOL_ID
: El ID del grupo de identidades de personal.WORKFORCE_PROVIDER_ID
: El ID del proveedor de grupo de identidades de personal.
Haz clic en Aceptar.
Haz clic en Siguiente.
Haz clic en Seleccionar los datos.
Si se te solicita que accedas, usa una identidad de Microsoft Entra que sea miembro del grupo.
Ahora puedes usar datos de BigQuery en Power BI Desktop.
Accede a los datos de BigQuery desde Power BI Web
Para acceder a los datos de BigQuery desde Power BI Web, haz lo siguiente:
Ve a Power BI Web.
Haz clic en Power Query para agregar una fuente de datos nueva.
Haz clic en Obtener datos.
En la lista, busca y selecciona Google BigQuery (Microsoft Entra ID) (Beta).
Completa los siguientes campos obligatorios:
ID del proyecto de facturación: El Google Cloud proyecto de facturación
URI de público: Es el URI de público, con el siguiente formato:
//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Reemplaza lo siguiente:
WORKFORCE_POOL_ID
: el ID del grupo de Workforce IdentityWORKFORCE_PROVIDER_ID
: El ID del proveedor del grupo de identidades de personal
Haz clic en Credenciales de conexión > Tipo de autenticación.
Selecciona Cuenta de organización.
Haz clic en Acceder.
Haz clic en Siguiente.
Haz clic en Seleccionar los datos.
Ahora puedes usar datos de BigQuery en Power BI Web.
¿Qué sigue?
- Para borrar los usuarios de la federación de identidades de personal y sus datos, consulta Borra los usuarios de la federación de identidades de personal y sus datos.
- Para obtener información sobre la compatibilidad de los Google Cloud productos con la federación de identidades de personal, consulta Federación de identidades: productos y limitaciones compatibles