Acesse os dados do BigQuery no Power BI com a federação de identidade de colaboradores e o Microsoft Entra

Este guia mostra como permitir que os usuários que estão nos grupos do Microsoft Entra acessem os dados do BigQuery no Power BI usando a federação de identidade de colaboradores.

O Microsoft Entra é o provedor de identidade (IdP). As declarações de grupos do Microsoft Entra são mapeadas para o Google Cloud. Os grupos recebem permissão de gerenciamento de identidade e acesso (IAM) para acessar os dados do BigQuery.

Este guia fornece instruções para o Power BI para computador ou Web.

Antes de começar

  1. Você precisa ter uma organização do Google Cloud configurada.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  3. É necessário ter acesso ao Microsoft Entra e ao Microsoft Graph.

  4. É necessário ter o Power BI configurado.

Funções exigidas

Nesta seção, descrevemos os papéis necessários para administradores e recursos.

Funções para administradores

Para receber as permissões necessárias para configurar a federação de identidade de colaboradores, peça ao administrador para conceder a você o papel do IAM Administrador de pool de colaboradores do IAM (roles/iam.workforcePoolAdmin) na organização. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Como alternativa, o papel básico de Proprietário do IAM (roles/owner) também inclui permissões para configurar a federação de identidade. Não conceda papéis básicos em um ambiente de produção, recomendamos que você faça isso em um ambiente de desenvolvimento ou teste.

Papéis para identidades federadas

O Power BI envia o parâmetro userProject durante a troca de tokens. Por isso, peça ao administrador para conceder o papel Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer) às identidades federadas no projeto de faturamento.

Para conceder o papel a um grupo de identidades federadas, execute o seguinte 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"

Substitua:

  • PROJECT_ID: o ID do projeto de faturamento.
  • WORKFORCE_POOL_ID: o ID do pool de identidade da força de trabalho.
  • GROUP_ID: o ID do grupo, por exemplo, admin-group@example.com. Para ver uma lista de identificadores principais comuns, consulte Identificadores principais.

Criar um pool de identidades da força de trabalho

Nesta seção, descrevemos como criar o pool de identidades de colaboradores. Você criará o provedor de identidade da força de trabalho posteriormente neste guia.

Console

Para criar o pool de identidades da força de trabalho, faça o seguinte:

  1. No console do Google Cloud, acesse a página Pools de identidade da força de trabalho:

    Acessar pools de identidade de colaboradores

  2. Clique em Criar pool e faça o seguinte:

    1. No campo Nome, digite o nome de exibição do pool. O ID do pool é derivado automaticamente do nome à medida que você digita e é exibido no campo Nome. Para atualizar o ID do pool, clique em Editar ao lado dele.

    2. Opcional: em Descrição, insira uma descrição do pool.

    3. A duração da sessão é definida por padrão. Para inserir uma duração personalizada da sessão, clique em Editar. A duração da sessão, que determina por quanto tempo os tokens de acesso do Google Cloud, as sessões de login do console (federado) e o login da CLI gcloud deste pool de forças de trabalho são válidas. A duração precisa ser maior que 15 minutos (900s) e menor que 12 horas (43200s). Se a duração da sessão não for definida, o padrão será de uma hora (3.600 segundos).

    4. Para criar o pool no estado ativado, verifique se a opção Pool ativado está ativada.

    5. Para criar o pool de identidades da força de trabalho, clique em Próxima.

gcloud

Para criar o pool de identidade da força de trabalho, execute o seguinte comando:

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

Substitua:

  • WORKFORCE_POOL_ID: um ID que você quer representar no seu pool de forças de trabalho do Google Cloud. Para informações sobre como formatar o ID, consulte a seção Parâmetros de consulta na documentação da API.
  • ORGANIZATION_ID: o ID numérico da organização do Google Cloud.
  • DISPLAY_NAME: opcional. Um nome de exibição para o pool de identidade de colaboradores.
  • DESCRIPTION: opcional. Uma descrição do pool de identidade da força de trabalho.
  • SESSION_DURATION: opcional. A duração da sessão, que determina por quanto tempo os tokens de acesso do Google Cloud, as sessões de login do, console (federado) e o login da gcloud CLI deste pool de força de trabalho são válidos. A duração precisa ser maior que 15 minutos (900s) e menor que 12 horas (43200s). Se a duração da sessão não for definida, o padrão será de uma hora (3.600 segundos).

Registrar um novo app do Microsoft Entra

Nesta seção, mostramos como criar um app do Microsoft Entra usando o portal do Microsoft Azure.

  1. Registre um novo aplicativo do Microsoft Entra.

  2. No aplicativo Microsoft Entra registrado, crie uma nova chave secreta do cliente. Anote a chave secreta do cliente.

  3. Conceda permissões de API ao seu aplicativo do Microsoft Entra para que ele possa acessar informações de usuários e grupos do Active Directory. Para conceder permissões à API Microsoft Graph, faça o seguinte:

    1. No aplicativo, selecione Permissões da API.
    2. Em Permissões configuradas, clique em Adicionar uma permissão.
    3. Na caixa de diálogo Solicitar permissões da API, selecione Microsoft Graph.
    4. Selecione Permissões do aplicativo.
    5. Na caixa de diálogo Selecionar permissões, faça o seguinte:
      1. No User.ReadBasic.All campo de pesquisa, insira .
      2. Clique em User.ReadBasic.All.
      3. Clique em Adicionar permissões
    6. Na caixa de diálogo Solicitar permissões da API, selecione Microsoft Graph.
    7. Selecione Permissões do aplicativo.
    8. Na caixa de diálogo Selecionar permissões, faça o seguinte:
      1. No GroupMember.Read.All campo de pesquisa, insira .
      2. Clique em GroupMember.Read.All.
      3. Clique em Adicionar permissões
    9. Em Permissões configuradas, clique em Conceder consentimento de administrador para (nome de domínio).
    10. Quando for solicitado que você confirme, clique em Sim.
  4. Para acessar os valores necessários para configurar o provedor do pool da força de trabalho posteriormente neste guia, faça o seguinte:

    1. Acesse a página Overview do aplicativo Microsoft Entra.
    2. Clique em Endpoints.
    3. Observe os seguintes valores:

      • ID do cliente:o ID do app Microsoft Entra que você registrou anteriormente neste guia.
      • Chave secreta do cliente:a chave secreta do cliente que você gerou anteriormente neste guia.
      • ID do locatário:o ID do locatário do app Microsoft Entra que você registrou anteriormente neste guia.
      • URI do emissor:o URI do documento de metadados do OpenID Connect, omitindo /.well-known/openid-configuration. Por exemplo, se o URL do documento de metadados do OpenID Connect for https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration, o URI do emissor será https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.

Criar um provedor de pool de identidade de força de trabalho

Para criar o provedor, execute o seguinte comando:

gcloud iam workforce-pools providers create-oidc 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=azure-ad-groups-mail \
    --extra-attributes-filter=FILTER

Substitua:

  • PROVIDER_ID: um ID de provedor exclusivo. O prefixo gcp- é reservado e não pode ser usado em um ID de provedor.
  • WORKFORCE_POOL_ID: o ID do pool de identidades de colaboradores para conectar seu IdP.
  • DISPLAY_NAME: um nome de exibição opcional fácil de usar para o provedor.
  • ISSUER_URI: o valor do URI do emissor, formatado como https://sts.windows.net/TENANT_ID. Substitua TENANT_ID pelo código do job que você anotou anteriormente.
  • ATTRIBUTE_MAPPING: um mapeamento do grupo e, opcionalmente, outros atributos da declaração do Microsoft Entra para atributos do Google Cloud, por exemplo: google.groups=assertion.groups, google.subject=assertion.sub. O grupo recebe acesso aos dados do BigQuery posteriormente neste guia.
  • APP_ISSUER_URI: o URI do emissor do aplicativo Microsoft Entra que você anotou anteriormente.
  • APP_CLIENT_ID: o ID do cliente do emissor que você anotou anteriormente.
  • APP_CLIENT_SECRET: a chave secreta do cliente do emissor que você anotou anteriormente.
  • FILTER: o filtro usado para solicitar declarações específicas transmitidas do IdP. Ao especificar --extra-attributes-type=azure-ad-groups-mail, --extra-attributes-filter filtra as declarações de grupo de um usuário que são transmitidas do IdP. Por padrão, todos os grupos associados ao usuário são buscados. Os grupos usados precisam ter o e-mail e a segurança ativados. Para saber mais, consulte Usar o parâmetro de consulta $search. É possível buscar no máximo 100 grupos.

    O exemplo a seguir filtra grupos associados a endereços de e-mail de usuários que começam com gcp:

    --extra-attributes-filter='"mail:gcp"'
    O exemplo a seguir filtra grupos associados a usuários que têm endereços de e-mail que começam com gcp e um displayName que contém example:
    --extra-attributes-filter='"mail:gcp" AND "displayName:example"'

Criar políticas do IAM

Nesta seção, você cria uma política de permissão do IAM que concede o papel de Leitor de dados do BigQuery (roles/bigquery.dataViewer) ao grupo mapeado no projeto em que os dados do BigQuery estão armazenados. A política permite que todas as identidades que estão no grupo visualizem dados de tabelas e visualizações do BigQuery armazenadas no projeto.

Para criar uma sub-rede, execute o comando a seguir:

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"

Substitua:

  • BIGQUERY_PROJECT_ID: o ID do projeto em que os dados e metadados do BigQuery são armazenados
  • WORKFORCE_POOL_ID: o ID do pool de identidade da força de trabalho
  • GROUP_ID: o grupo, por exemplo, admin-group@example.com.

Acesse os dados do BigQuery do desktop do Power BI

Para acessar os dados do BigQuery no Power BI Desktop, faça o seguinte:

  1. Abra o Power BI.
  2. Clique em Receber dados.
  3. Clique em Banco de dados.
  4. Na lista de bancos de dados, selecione Google BigQuery (Microsoft Entra ID) (Beta).
  5. Clique em Conectar.
  6. Preencha os campos obrigatórios a seguir.

    • ID do projeto de faturamento:é o ID do projeto de faturamento.
    • URI do público-alvo:o URI do Google Cloud, formatado da seguinte maneira:

      //iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
      

      Substitua:

      • WORKFORCE_POOL_ID: o ID do pool de identidade de colaboradores.

      • PROVIDER_ID: o ID do provedor do pool de identidade da força de trabalho.

  7. Clique em OK.

  8. Clique em Próxima.

  9. Clique em Selecionar os dados.

Se for solicitado que você faça login, use uma identidade do Microsoft Entra que seja membro do grupo.

Agora você pode usar dados do BigQuery no Power BI Desktop.

Acessar os dados do BigQuery no Power BI Web

Para acessar os dados do BigQuery no Power BI Web, faça o seguinte:

  1. Acesse o Power BI Web.

  2. Clique em Consulta de energia para adicionar uma nova fonte de dados.

  3. Clique em Receber dados.

  4. Na lista, encontre e selecione Google BigQuery (Microsoft Entra ID) (Beta).

  5. Preencha os campos obrigatórios a seguir.

    • ID do projeto de faturamento:o projeto de faturamento do Google Cloud

    • URI do público-alvo:o URI do público-alvo, formatado da seguinte maneira:

      //iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
      

      Substitua:

      • WORKFORCE_POOL_ID: o ID do pool de identidade da força de trabalho

      • PROVIDER_ID: o ID do provedor do pool de identidade da força de trabalho

  6. Clique em Credenciais de conexão > Tipo de autenticação.

  7. Selecione Conta organizacional.

  8. Clique em Sign in.

  9. Clique em Próxima.

  10. Clique em Selecionar os dados.

Agora você pode usar dados do BigQuery no Power BI Web.

A seguir