패브릭 Git 통합은 완전히 자동화된 CI/CD 파이프라인을 구현하여 개발, 테스트 및 프로덕션 환경에서 자산을 원활하게 이동할 수 있도록 하는 조직의 기반입니다.
현재 Fabric Git Integration은 두 가지 주요 Git 공급자를 지원합니다.
- Azure DevOps
- 깃허브
이 문서에서는 Azure DevOps의 서비스 주체 기능에 중점을 둡니다. 이 통합을 통해 패브릭 사용자는 서비스 주체를 사용하여 git 작업을 수행할 수 있습니다.
Azure DevOps: 인증 - 자동 및 구성
기본적으로 각 패브릭 작업 영역은 Git 리포지토리에 연결되지 않습니다. 패브릭 작업 영역에는 git 리포지토리에 인증할 수 있는 두 가지 방법이 있습니다. 이러한 프로세스를 호출합니다.
- 자동 git 자격 증명
- 구성된 자격 증명
자동 git 자격 증명
관리자 사용자가 작업 영역을 ADO(Azure DevOps) 리포지토리에 연결하려는 경우 사용자는 먼저 작업 영역 설정에서 로그인해야 하며, 시스템은 사용자가 현재 패브릭 테넌트 내에서 액세스할 수 있는 ADO 조직을 식별하여 사용자가 구성을 진행할 수 있도록 합니다.
초기 연결이 설정되면 동일한 작업 영역에 대한 기여자 이상의 권한이 있는 추가 사용자는 연결 프로세스를 반복할 필요가 없습니다. 대신 시스템은 구성된 ADO 리포지토리를 사용하여 두 번째 사용자를 인증하려고 시도합니다. 사용자에게 필요한 권한이 없는 경우 Fabric Git 통합 소스 제어 창에 빨간색 표시기가 표시됩니다.
이 간소화된 인증 프로세스를 "자동 Git 자격 증명"으로 알려져 있습니다.
구성된 자격 증명
구성된 자격 증명을 사용하면 서비스 주체를 사용하여 프로그래밍 방식으로 Azure DevOps 클라우드 연결을 만들 수 있습니다.
Azure DevOps 연결은 다음 두 가지 인증 방법을 지원합니다.
- OAuth 2.0
- 서비스 프린시펄
두 방법 모두 다중 테넌트(테넌트 간) 시나리오에 대한 지원을 포함하며, 조직에서 환경 전반에 걸쳐 유연성을 제공합니다.
동일한 작업 영역에서 기여자 이상의 권한이 있는 다른 사용자는 연결 프로세스를 반복할 필요가 없습니다. 서비스 주체가 지원되기 전에 시스템은 자동 인증을 통해서만 보조 사용자를 인증하려고 했습니다.
자동 인증에 실패하면 시스템은 사용자가 액세스할 수 있는 구성된 자격 증명을 사용하여 연결을 시도하여 더 원활한 환경을 보장하고 중복 설정 단계를 줄입니다.
작동 방식
서비스 주체를 사용하여 패브릭 작업 영역을 외부 Git 공급자에 연결하려면 Git 통합에서 Azure DevOps – Source Control 형식의 패브릭 클라우드 연결을 사용해야 합니다.
이 클라우드 연결은 포털을 통해 두 가지 방법으로 만들 수 있습니다.
두 경우 모두 로그인한 사용자의 ID 아래에 연결이 만들어집니다.
서비스 주체가 이 연결을 사용해야 하는 경우 사용자는 다음 중 하나를 수행해야 합니다.
- 서비스 주체와 연결 공유
- 연결 REST API를 사용하여 새 연결을 만들고 서비스 주체 자격 증명을 전달합니다.
아래 단계에서는 API를 사용하여 서비스 주체를 사용하여 클라우드 연결을 만드는 방법을 간략하게 설명합니다.
필수 조건
설명된 단계를 완료하려면 다음 권한이 필요합니다.
Entra ID 애플리케이션을 등록하고 다음을 기록해 둡니다.
- 임차인 ID
- 클라이언트 ID
- 클라이언트 암호
서비스 주체에게 다음을 부여합니다.
- 관련 Azure DevOps 조직 및 프로젝트에 액세스합니다.
- 패브릭 작업 영역에 대한 관리자 권한입니다.
서비스 주체를 사용하여 Azure DevOps에 새 작업 영역 연결
프로그래밍 방식으로 서비스 주체를 사용하여 Azure DevOps에 패브릭 작업 영역을 연결하려면 다음 단계를 수행해야 합니다.
- 서비스 주체 액세스 토큰 생성: 서비스 주체를 사용하여 Microsoft Fabric으로 인증합니다.
- Azure DevOps 클라우드 연결 만들기: Azure DevOps 리포지토리 자격 증명 및 구성을 저장하는 새 연결 리소스를 Microsoft Fabric에 만듭니다.
- git에 작업 영역 연결: 2단계에서 만든 연결을 사용하여 특정 패브릭 작업 영역을 Azure DevOps 리포지토리에 연결합니다.
- 연결 초기화: Git 연결을 초기화합니다.
1. 서비스 주체 액세스 토큰 생성
다음 예제에서는 서비스 주체 액세스 토큰을 생성하는 방법을 보여 줍니다.
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
비고
이후 단계를 위해 응답에서 access_token 복사합니다.
2. Azure DevOps 클라우드 연결 만들기
Azure DevOps 리포지토리 자격 증명 및 구성을 저장하는 새 연결 리소스를 Microsoft Fabric에 만듭니다.
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>"}}}'
비고
응답에서 ID를 저장합니다. 다음 단계에서 사용됩니다.
3. git에 작업 영역 연결
2단계에서 만든 연결을 사용하여 특정 패브릭 작업 영역을 Azure DevOps 리포지토리에 연결합니다.
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. 연결 초기화
연결을 초기화하고 여기에서 자세히 읽어 보세요.
비고
값을 바꾸고 <> initializationStrategy 매개 변수에 주의하세요. 연결된 작업 영역에 이미 항목이 있는 경우 "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"}'
리포지토리 /작업 영역이 비어 있지 않으면, 응답은 initializationStrategy에 기반한 requiredAction 매개 변수를 반환합니다. 이어서, 응답에 포함된 workspaceHead 및 remoteCommitHash와 함께 update-from-git 또는 commit-to-git을 사용하여 프로세스를 완료합니다.
기존 작업 영역을 연결하여 서비스 주체를 사용하기
작업 영역이 사용자 ID를 사용하여 Azure DevOps에 이미 연결되어 있지만 서비스 주체를 사용하여 패브릭 Git REST API 작업을 수행하려는 경우 다음 단계를 수행합니다.
- 서비스 주체를 작업 영역 관리자로 추가합니다.
- Azure DevOps 클라우드 연결에 대한 서비스 주체 액세스 권한을 부여합니다. 두 가지 옵션이 있습니다.
- 기존 연결을 공유합니다. 관련 ADO 클라우드 연결에 대한 액세스 권한이 있는 사용자와 로그인하고 사용자 관리를 통해 서비스 주체와 공유합니다.
- 새 연결을 만듭니다. 이전 섹션의 1단계와 2단계를 반복하여 서비스 주체 자격 증명을 사용하여 새 클라우드 연결을 만듭니다.
- 액세스 확인 - GET 연결 API를 호출하여 서비스 주체가 여기에 필요한 클라우드 연결에 액세스할 수 있는지 확인합니다.
curl --request GET \
--url https://api.fabric.microsoft.com/v1/connections \
--header 'authorization: Bearer <step 2: access-token>'
응답에서 관련 연결의 ID 값을 가져옵니다.
- Git 자격 증명 업데이트: 액세스 토큰 (이전 섹션의 1단계)을 생성하고 내 Git 자격 증명 업데이트 API를 호출합니다. 자세한 내용은 여기 를 참조하세요(값으로 바꾸기 <> ).
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>"}'
이러한 단계가 완료되면 서비스 주체가 완전히 구성되고 Fabric Git REST API 작업을 실행할 준비가 됩니다.