Este guia mostra como permitir que os utilizadores que estão em grupos do Microsoft Entra acedam aos dados do BigQuery no Power BI através da Workforce Identity Federation.
O Microsoft Entra é o fornecedor de identidade (IdP). Os grupos de reivindicações do Microsoft Entra estão mapeados para Google Cloud. Os grupos recebem autorização da gestão de identidade e de acesso (IAM) para aceder aos dados do BigQuery.
Este guia fornece instruções para o Power BI Desktop ou Web.
Antes de começar
- Certifique-se de que tem uma organização do Google Cloud configurada.
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Tem de ter acesso ao Microsoft Entra e ao Microsoft Graph.
- Tem de ter o Power BI configurado.
Custos
A federação de identidade da força de trabalho está disponível como uma funcionalidade sem custos financeiros. No entanto, o registo de auditoria detalhado da federação de identidades da força de trabalho usa o Cloud Logging. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.
Funções necessárias
Esta secção descreve as funções necessárias para os administradores e os recursos.
Funções para administradores
Para receber as autorizações de que
precisa para configurar a Workforce Identity Federation,
peça ao seu administrador para lhe conceder a função de
administrador do Workforce Pool da IAM (roles/iam.workforcePoolAdmin
)
da IAM na organização.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Em alternativa, a função básica de proprietário da IAM (roles/owner
) também inclui autorizações para configurar a federação de identidades.
Não deve conceder funções básicas num ambiente de produção, mas pode concedê-las num ambiente de desenvolvimento ou de teste.
Funções para identidades federadas
O Power BI envia o parâmetro userProject
durante a troca de tokens. Por este motivo, tem de pedir ao administrador que conceda a função Consumidor de utilização de serviços (roles/serviceusage.serviceUsageConsumer
) às identidades federadas no projeto de faturação.
Para conceder a função 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 o seguinte:
PROJECT_ID
: o ID do projeto de faturação.WORKFORCE_POOL_ID
: o ID do Workforce Identity Pool.GROUP_ID
: o ID do grupo, por exemplo,admin-group@altostrat.com
. Para ver uma lista de identificadores principais comuns, consulte a secção Identificadores principais.
Crie um Workforce Identity Pool
Esta secção descreve como criar o Workload Identity Pool. Cria o fornecedor do Workforce Identity Pool mais tarde neste guia.
gcloud
Para criar o Workforce Identity Pool, 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 o seguinte:
WORKFORCE_POOL_ID
: um ID que escolhe para representar o seu workforce pool. Google Cloud Para obter informações sobre a formatação do ID, consulte a secção Parâmetros de consulta na documentação da API.ORGANIZATION_ID
: o ID numérico da organização da sua organização para o Workload Identity Pool. Google Cloud Os Workload Identity Pools estão disponíveis em todos os projetos e pastas da organização.DISPLAY_NAME
: opcional. Um nome a apresentar para o seu Workforce Identity Pool.DESCRIPTION
: opcional. Uma descrição do Workload Identity Pool.SESSION_DURATION
: opcional. A duração da sessão, expressa como um número anexado coms
, por exemplo,3600s
. A duração da sessão determina durante quanto tempo os Google Cloud tokens de acesso, sessões de início de sessão da consola (federadas) e sessões de início de sessão da CLI gcloud deste workforce pool são válidas. A duração da sessão é predefinida para uma hora (3600 s). O valor da duração da sessão tem de estar entre 15 minutos (900 s) e 12 horas (43 200 s).
Consola
Para criar o Workforce Identity Pool, faça o seguinte:
Na Google Cloud consola, aceda à página Workforce Identity Pools:
Selecione a organização para o seu conjunto de identidades de pessoal. Os conjuntos de identidades da força de trabalho estão disponíveis em todos os projetos e pastas de uma organização.
Clique em Criar conjunto e faça o seguinte:
No campo Nome, introduza o nome a apresentar do conjunto. O ID do conjunto é derivado automaticamente do nome à medida que escreve e é apresentado no campo Nome. Pode atualizar o ID do conjunto clicando em Editar junto ao ID do conjunto.
Opcional: em Descrição, introduza uma descrição do conjunto.
Para criar o Workforce Identity Pool, clique em Seguinte.
A duração da sessão do Workload Identity Pool é de uma hora (3600 s) por predefinição. A duração da sessão determina durante quanto tempo os Google Cloud tokens de acesso, a consola (federada) e as sessões de início de sessão da CLI gcloud deste conjunto de colaboradores estão válidos. Depois de criar o conjunto, pode atualizar o conjunto para definir uma duração da sessão personalizada. A duração da sessão tem de ser entre 15 minutos (900 s) e 12 horas (43 200 s).
Registe uma nova app do Microsoft Entra
Esta secção mostra como criar uma app Microsoft Entra através do portal do Microsoft Azure.
Na aplicação Microsoft Entra que registou, crie um novo segredo do cliente. Anote o segredo do cliente.
Conceda autorizações de API à sua aplicação Microsoft Entra para que possa aceder às informações de utilizadores e grupos do Active Directory. Para conceder autorizações para a API Microsoft Graph, faça o seguinte:
- Na sua aplicação, selecione Autorizações da API.
- Em Autorizações configuradas, clique em Adicionar uma autorização.
- Na caixa de diálogo Pedir autorizações da API, selecione Microsoft Graph.
- Selecione Autorizações da aplicação.
- Na caixa de diálogo Selecionar autorizações, faça o seguinte:
- No campo de pesquisa, introduza
User.ReadBasic.All
. - Clique em User.ReadBasic.All.
- Clique em Adicionar autorizações.
- No campo de pesquisa, introduza
- Na caixa de diálogo Pedir autorizações da API, selecione Microsoft Graph.
- Selecione Autorizações da aplicação.
- Na caixa de diálogo Selecionar autorizações, faça o seguinte:
- No campo de pesquisa, introduza
GroupMember.Read.All
. - Clique em GroupMember.Read.All.
- Clique em Adicionar autorizações.
- No campo de pesquisa, introduza
- Em Autorizações configuradas, clique em Conceder consentimento de administrador para (nome do domínio).
- Quando lhe for pedido que confirme, clique em Sim.
Para aceder aos valores de que precisa para configurar o fornecedor do conjunto de trabalhadores mais adiante neste guia, faça o seguinte:
- Aceda à página Vista geral da aplicação Microsoft Entra.
- Clique em Pontos finais.
Tenha em atenção os seguintes valores:
- ID de cliente: o ID da app Microsoft Entra que registou anteriormente neste guia.
- Segredo do cliente: o segredo do cliente que gerou anteriormente neste guia.
- ID do inquilino: o ID do inquilino da app Microsoft Entra que registou 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 forhttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration
, o URI do emissor éhttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/
.
Crie um fornecedor do Workforce Identity Pool
Para criar o fornecedor, execute o seguinte 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
Substitua o seguinte:
WORKFORCE_PROVIDER_ID
: um ID do fornecedor exclusivo. O prefixogcp-
está reservado e não pode ser usado num ID do fornecedor.WORKFORCE_POOL_ID
: o ID do Workforce Identity Pool ao qual associar o seu IdP.DISPLAY_NAME
: um nome a apresentar opcional e intuitivo para o fornecedor.ISSUER_URI
: o valor do URI do emissor, formatado como,https://sts.windows.net/TENANT_ID
. SubstituaTENANT_ID
pelo ID do inquilino que anotou anteriormente.ATTRIBUTE_MAPPING
: um mapeamento do grupo e, opcionalmente, outros atributos da reivindicação do Microsoft Entra para atributos, por exemplo:Google Cloudgoogle.groups=assertion.groups, google.subject=assertion.sub
. O grupo recebe acesso aos dados do BigQuery mais adiante neste guia.Para mais informações, consulte o artigo Mapeamento de atributos.
APP_ISSUER_URI
: o URI do emissor da aplicação Microsoft Entra que anotou anteriormente.APP_CLIENT_ID
: o ID de cliente do emissor que anotou anteriormente.APP_CLIENT_SECRET
: o segredo do cliente do emissor que anotou anteriormente.EXTRA_GROUPS_TYPE
: o tipo de identificador do grupo, que pode ser um dos seguintes:azure-ad-groups-mail
: os endereços de email dos grupos são obtidos a partir do IdP, por exemplo:admin-group@altostrat.com
.azure-ad-groups-id
: os UUIDs que representam os grupos são obtidos do IdP, por exemplo:abcdefgh-0123-0123-abcdef
.
EXTRA_FILTER
: o filtro usado para pedir que sejam transmitidas afirmações específicas do IdP. Especificando--extra-attributes-type=azure-ad-groups-mail
,--extra-attributes-filter
filtros para as reivindicações de grupos de um utilizador que são transmitidas a partir do IdP. Por predefinição, são obtidos todos os grupos associados ao utilizador. Os grupos usados têm de ter o email e a segurança ativados. Para saber mais, consulte a secção Use o parâmetro de consulta $search.O exemplo seguinte filtra os grupos associados a endereços de email de utilizadores que começam por
gcp
: O exemplo seguinte filtra grupos associados a utilizadores com endereços de email que começam por--extra-attributes-filter='"mail:gcp"'
gcp
e um displayName que contémexample
:--extra-attributes-filter='"mail:gcp" AND "displayName:example"'
A Workforce Identity Federation registra em detalhe a auditoria das informações recebidas do seu IdP no Logging. O registo de auditoria detalhado pode ajudar a resolver problemas de configuração do fornecedor do conjunto de identidades da força de trabalho. Para saber como resolver problemas de erros de mapeamento de atributos com registo de auditoria detalhado, consulte o artigo Erros gerais de mapeamento de atributos. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.
Para desativar o registo de auditoria detalhado para um fornecedor do Workload Identity Pool, omita a flag
--detailed-audit-logging
quando executargcloud iam workforce-pools providers create
. Para desativar o registo de auditoria detalhado, também pode atualizar o fornecedor.
Crie políticas IAM
Nesta secção, cria uma política de autorização de IAM que concede a função de visualizador de dados do BigQuery (roles/bigquery.dataViewer
) ao grupo mapeado no projeto onde os seus dados do BigQuery estão armazenados. A política permite que todas as identidades que estão no grupo vejam dados de tabelas e vistas do BigQuery armazenados no projeto.
Para criar a política, execute o seguinte 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"
Substitua o seguinte:
BIGQUERY_PROJECT_ID
: o ID do projeto onde os seus dados e metadados do BigQuery estão armazenados.WORKFORCE_POOL_ID
: o ID do Workforce Identity PoolGROUP_ID
: o identificador do grupo, que depende do valor de--extra-attributes-type
que foi usado para criar o fornecedor do Workload Identity Pool, da seguinte forma:azure-ad-groups-mail
: o identificador do grupo é um endereço de email, por exemplo:admin-group@altostrat.com
azure-ad-groups-id
: o identificador do grupo é um UUID para o grupo, por exemplo:abcdefgh-0123-0123-abcdef
Aceda aos dados do BigQuery a partir do Power BI Desktop
Para aceder aos dados do BigQuery a partir do Power BI Desktop, faça o seguinte:
- Abra o Power BI.
- Clique em Obter dados.
- Clique em Base de dados.
- Na lista de bases de dados, selecione Google BigQuery (Microsoft Entra ID) (beta).
- Clique em Ligar.
Preencha os seguintes campos obrigatórios:
- ID do projeto de faturação: o ID do projeto de faturação.
URI do público: o Google Cloud URI, formatado da seguinte forma:
//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Substitua o seguinte:
WORKFORCE_POOL_ID
: o ID do Workforce Identity Pool.WORKFORCE_PROVIDER_ID
: o ID do fornecedor do Workforce Identity Pool.
Clique em OK.
Clicar em Seguinte.
Clique em Selecionar os dados.
Se lhe for pedido para iniciar sessão, use uma identidade do Microsoft Entra que seja membro do grupo.
Agora, pode usar dados do BigQuery no Power BI Desktop.
Aceda aos dados do BigQuery a partir do Power BI Web
Para aceder aos dados do BigQuery a partir do Power BI Web, faça o seguinte:
Aceda ao Power BI Web.
Clique em Power Query para adicionar uma nova origem de dados.
Clique em Obter dados.
Na lista, encontre e selecione Google BigQuery (Microsoft Entra ID) (beta).
Preencha os seguintes campos obrigatórios:
ID do projeto de faturação: o Google Cloud projeto de faturação
URI do público-alvo: o URI do público-alvo, formatado da seguinte forma:
//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Substitua o seguinte:
WORKFORCE_POOL_ID
: o ID do Workforce Identity PoolWORKFORCE_PROVIDER_ID
: o ID do fornecedor do Workforce Identity Pool
Clique em Credenciais de ligação > Tipo de autenticação.
Selecione Conta de organização.
Clique em Iniciar sessão.
Clicar em Seguinte.
Clique em Selecionar os dados.
Agora, pode usar dados do BigQuery no Power BI Web.
O que se segue?
- Para eliminar utilizadores da Workforce Identity Federation e os respetivos dados, consulte o artigo Elimine utilizadores da Workforce Identity Federation e os respetivos dados
- Para saber mais sobre o suporte dos produtos para a federação de identidade da força de trabalho, consulte o artigo Federação de identidade: produtos suportados e limitações Google Cloud