Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Fabric Git Integration é a base para organizações que implementam pipelines de CI/CD totalmente automatizados, permitindo a movimentação contínua de ativos em ambientes de desenvolvimento, teste e produção.
Atualmente, o Fabric Git Integration dá suporte a dois grandes provedores Git:
- Azure DevOps
- GitHub
Este artigo foca na capacidade do Service Principal para Azure DevOps. Essa integração permite que o usuário do Fabric realize operações git usando uma entidade de serviço.
Azure DevOps: Autenticação – automática e configurada
Por padrão, cada workspace do Fabric não está conectado a nenhum repositório Git. Um workspace do Fabric tem duas maneiras diferentes de autenticar em um repositório git. Esses processos são chamados:
- Credencial automática do Git
- Credencial configurada
Credencial automática do Git
Quando um usuário administrador deseja conectar um workspace a um repositório do Azure DevOps (ADO), o usuário deve primeiro fazer login nas configurações do workspace. O sistema, então, identifica quais organizações do ADO o usuário pode acessar no locatário atual do Fabric, permitindo que o usuário prossiga com a configuração.
Depois que a conexão inicial for estabelecida, qualquer usuário adicional com pelo menos permissões de colaborador no mesmo workspace não precisará repetir o processo de conexão. Em vez disso, o sistema tenta autenticar o segundo usuário com o repositório ADO configurado. Se o usuário não tiver as permissões necessárias, o painel de controle do código-fonte do Fabric Git Integration exibirá um indicador vermelho.
Esse processo de autenticação simplificado é conhecido como "Credencial Automática do Git".
Credencial configurada
Com a credencial configurada, você pode criar de forma programática uma conexão com a nuvem do Azure DevOps usando uma entidade de serviço.
A conexão do Azure DevOps dá suporte a dois métodos de autenticação:
- OAuth 2.0
- Principal de Serviço
Ambos os métodos incluem suporte para cenários multitenant (cruzamento de locatários), proporcionando às organizações flexibilidade em diversos ambientes.
Qualquer outro usuário com pelo menos permissões de Colaborador no mesmo workspace não precisa repetir o processo de conexão. Antes do suporte à entidade de serviço, o sistema tentou autenticar usuários secundários somente por meio da autenticação automática.
Se a autenticação automática falhar, o sistema também tentará se conectar usando qualquer Credencial Configurada à qual o usuário tem acesso, garantindo uma experiência mais suave e reduzindo as etapas de instalação redundantes.
Como funciona
Para conectar um workspace do Fabric a um provedor Git externo usando um Principal de Serviço, a integração do Git deve usar uma conexão de nuvem do Fabric do tipo Azure DevOps – Controle do Código-Fonte.
Essa conexão de nuvem pode ser criada de duas maneiras por meio do portal:
- Manualmente por meio do Gerenciamento de Configurações de Conexão
- Por meio de configurações de workspace usando a opção Adicionar Conta
Em ambos os casos, a conexão é criada na identidade do usuário conectado.
Se uma Entidade de Serviço precisar usar essa conexão, o usuário precisará fazer uma das seguintes ações
- compartilhar a conexão com a entidade de serviço
- crie uma nova conexão usando a API REST de Conexões, passando as credenciais do Principal de Serviço.
As etapas abaixo descrevem como usar a API para criar a conexão de nuvem usando um principal de serviço.
Pré-requisitos
Para concluir as etapas descritas, você precisa das seguintes permissões:
Registre um aplicativo de ID do Entra e observe:
- ID do locatário
- ID do cliente
- Segredo de Cliente
Conceda ao Principal de Serviço:
- Acesso à organização e ao projeto relevantes do Azure DevOps.
- Permissões de administrador no workspace do Fabric.
Conectar um novo workspace ao Azure DevOps usando o Principal de Serviço
Para conectar um workspace do Fabric ao Azure DevOps usando o Principal de Serviço programaticamente, as seguintes etapas precisam ser seguidas:
- Gerar token de acesso do Principal de Serviço: Autentica no Microsoft Fabric usando um principal de serviço.
- Criar conexão de nuvem do Azure DevOps: Cria um novo recurso de conexão no Microsoft Fabric que armazena as credenciais e a configuração do repositório do Azure DevOps.
- Conecte o workspace ao git: Vincula um workspace específico do Fabric ao repositório do Azure DevOps usando a conexão criada na etapa 2.
- Inicializar conexão: Inicializa a conexão Git.
1. Gerar token de acesso do Principal de Serviço
Os exemplos a seguir mostram como gerar o token de acesso do principal de serviço.
curl --request GET \
--url https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \
--header 'content-type: multipart/form-data' \
--form grant_type=client_credentials \
--form client_id=<client-id> \
--form 'client_secret=<client-secret>' \
--form scope=https://api.fabric.microsoft.com/.default
Observação
Copie o access_token da resposta para etapas posteriores.
2. Criar conexão de nuvem do Azure DevOps
Cria um novo recurso de conexão no Microsoft Fabric que armazena as credenciais e a configuração do repositório do Azure DevOps.
curl --request POST \
--url https://api.fabric.microsoft.com/v1/connections \
--header 'authorization: Bearer <step1: access-token>' \
--header 'content-type: application/json' \
--data '{
"displayName": "<name of the connection>",
"connectivityType": "ShareableCloud",
"connectionDetails": {
"creationMethod": "AzureDevOpsSourceControl.Contents",
"type": "AzureDevOpsSourceControl",
"parameters": [
{
"dataType": "Text",
"name": "url",
"value": "https://dev.azure.com/<ado org name>/<project name>/_git/<repo name>/"}]},
"credentialDetails": {
"credentials": {
"credentialType": "ServicePrincipal",
"tenantId": "<tenant-id>",
"servicePrincipalClientId": "<client-id>",
"servicePrincipalSecret": "<client-secret>"}}}'
Observação
Salve a ID da resposta. Ele é usado nas próximas etapas.
Conectar o espaço de trabalho ao git
Vincula um workspace específico do Fabric ao repositório do Azure DevOps usando a conexão criada na etapa 2.
curl --request POST \
--url https://api.fabric.microsoft.com/v1/workspaces/<workspace-id>/git/connect \
--header 'authorization: Bearer <step1: access-token>' \
--header 'content-type: application/json' \
--data '{
"gitProviderDetails": {
"organizationName": "<ado org name>",
"projectName": "<project name>",
"gitProviderType": "AzureDevOps",
"repositoryName": "<repo name>",
"branchName": "<branch name>",
"directoryName": "<folder name – must exist before OR empty>"
},
"myGitCredentials": {
"source": "ConfiguredConnection",
"connectionId": "<step 2 – the new connection id>"}}'
4. Inicializar conexão
Inicialize Conexão, leia mais aqui.
Observação
Substitua <> por seus valores, preste atenção ao parâmetro initializationStrategy. Caso o espaço de trabalho conectado já possua itens, considere usar "preferWorkspace".
curl --request POST \
--url https://api.fabric.microsoft.com/v1/workspaces/<workspace-id>/git/initializeConnection \
--header 'authorization: Bearer <step1: access-token>' \
--header 'content-type: application/json' \
--data '{"initializationStrategy": "PreferRemote"}'
Se o repositório /workspace não estiver vazio, a resposta retornará o parâmetro requiredAction (que se baseia em sua initializationStrategy), use update-from-git ou commit-to-git de acordo com workspaceHead e remoteCommitHash da resposta para finalizar o processo.
Conectar um workspace existente à entidade de serviço
Se o workspace já estiver conectado ao Azure DevOps usando uma identidade de usuário, mas você quiser executar operações da API REST do Git do Fabric com um Principal de Serviço, siga estas etapas:
- Adicionar o Service Principal como Administrador do Workspace.
- Conceda ao Principal de Serviço acesso à Conexão da Nuvem do Azure DevOps. Você tem duas opções:
- Compartilhar uma conexão existente: Faça logon com um usuário que tenha acesso à conexão de nuvem do ADO relevante e compartilhe-a com a Entidade de Serviço por meio de Gerenciar Usuários.
- Crie uma nova conexão: Repita as Etapas 1 e 2 da seção anterior para criar uma nova conexão de nuvem usando as credenciais da Entidade de Serviço.
- Verificar o acesso – Use a API GET Connections para confirmar se o Principal de Serviço pode acessar a conexão de nuvem necessária aqui:
curl --request GET \
--url https://api.fabric.microsoft.com/v1/connections \
--header 'authorization: Bearer <step 2: access-token>'
Obtenha o valor do ID da conexão relevante na resposta.
- Atualizar a Credencial do Git: gerar um token de acesso (etapa 1 da seção anterior) e chamar a API Atualizar Minha Credencial git, leia mais aqui (Substitua <> por seus valores):
curl --request PATCH \
--url https://api.fabric.microsoft.com/v1/workspaces/<workspace-id>/git/myGitCredentials \
--header 'authorization: Bearer <step 2: access-token>' \
--header 'content-type: application/json' \
--data '{
"source": "ConfiguredConnection",
"connectionId": "<step 3: connection id>"}'
Após essas etapas, o Principal da Serviço está totalmente configurado e pronto para executar operações da API REST do Git do Fabric.