Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Интеграция Fabric Git является основой для организаций, реализующих полностью автоматизированные конвейеры CI/CD, что позволяет легко перемещать ресурсы в средах разработки, тестирования и рабочей среды.
В настоящее время Интеграция Fabric Git поддерживает два основных поставщика Git:
- Azure DevOps
- GitHub
Эта статья фокусируется на возможности служебного принципала для Azure DevOps. Эта интеграция позволяет пользователю Fabric выполнять git-операции с помощью учетной записи службы.
Azure DevOps: проверка подлинности — автоматическая и настроенная
По умолчанию каждая рабочая область Fabric не подключена к любому репозиторию Git. Рабочая область Fabric имеет два разных способа проверки подлинности в репозитории Git. Эти процессы называются:
- Автоматическая учетная запись Git
- Настроенные учетные данные
Автоматические учетные данные Git
Когда администратор хочет подключить рабочую область к репозиторию Azure DevOps (ADO), сначала необходимо войти в систему через настройки рабочей области. Затем система определяет, к каким организациям ADO пользователь может получить доступ в текущем клиенте Fabric, что позволяет ему продолжить настройку.
После установки первоначального подключения любой дополнительный пользователь с по крайней мере разрешениями участника в той же рабочей области не должен повторять процесс подключения. Вместо этого система пытается пройти проверку подлинности второго пользователя с настроенным репозиторием ADO. Если у пользователя отсутствуют необходимые разрешения, панель управления версиями Git Fabric отображает красный индикатор.
Этот упрощенный процесс проверки подлинности называется "Автоматическая учетная запись Git".
Настроенные учетные данные
С помощью настроенных учетных данных можно программно создать облачное подключение Azure DevOps с помощью сервисного принципала.
Подключение Azure DevOps поддерживает два метода проверки подлинности:
- OAuth 2.0
- Служебный принципал
Оба метода включают поддержку сценариев мультитенантного (кросстенантного) и обеспечивают организациям гибкость в разных средах.
Любой другой пользователь с по крайней мере разрешениями участника в той же рабочей области не должен повторять процесс подключения. Перед поддержкой субъекта-службы система попыталась пройти проверку подлинности вторичных пользователей только с помощью автоматической проверки подлинности.
Если автоматическая проверка подлинности завершается ошибкой, система также пытается подключиться с помощью любых настроенных учетных данных , к которым у пользователя есть доступ, обеспечивая более плавное взаимодействие и уменьшая избыточные действия по настройке.
Принцип работы
Чтобы подключить рабочую область Fabric к внешнему поставщику Git с использованием сервисного принципала, интеграция Git должна использовать облачное подключение Fabric типа Azure DevOps – Управление исходным кодом.
Это облачное подключение можно создать двумя способами через портал:
- Вручную через Управление параметрами подключения
- С помощью параметров рабочей области с помощью параметра "Добавить учетную запись"
В обоих случаях подключение создается под удостоверением пользователя, вошедшего в систему.
Если сервисный принципал должен использовать это подключение, пользователь должен либо
- предоставление общего доступа к соединению с субъектом-службой
- создайте новое подключение с помощью REST API Connections, передав учетные данные Service Principal.
Ниже описано, как использовать API для создания облачного подключения с помощью субъекта-службы.
Предпосылки
Чтобы выполнить описанные действия, вам потребуются следующие разрешения:
Зарегистрируйте приложение Entra ID и запишите:
- Идентификатор арендатора
- Идентификатор клиента
- Секрет клиента
Предоставьте субъекту-службе:
- Доступ к соответствующей организации и проекту Azure DevOps.
- Разрешения администратора в рабочей области Fabric.
Подключение новой рабочей области к Azure DevOps с помощью субъекта-службы
Чтобы подключить рабочую область Fabric к Azure DevOps программно через служебного принципала, выполните следующие шаги.
- Создайте токен доступа учетной записи службы: Выполняется аутентификация в Microsoft Fabric с использованием учетной записи службы.
- Создайте облачное подключение Azure DevOps: Создает новый ресурс подключения в Microsoft Fabric, в который хранятся учетные данные и конфигурации репозитория Azure DevOps.
- Подключение рабочей области к Git: Связывает определенную рабочую область Fabric с репозиторием Azure DevOps с помощью подключения, созданного на шаге 2.
- Инициализация подключения: Инициализирует подключение 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
Создает новый ресурс подключения в Microsoft Fabric, в который хранятся учетные данные и конфигурации репозитория 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>"}}}'
Замечание
Сохраните идентификатор из ответа. Он используется в следующих шагах.
3. Подключение рабочей области к Git
Связывает определенную рабочую область Fabric с репозиторием Azure DevOps с помощью подключения, созданного на шаге 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. Инициализация подключения
Инициализация подключения, подробнее читайте здесь.
Замечание
Замените <> значениями, обратите внимание на параметр 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"}'
Если репозиторий /workspace не пуст, ответ возвращает параметр requiredAction (который основан на стратегии инициализации), используйте update-from-git или commit-to-git соответственно используя workspaceHead и remoteCommitHash из ответа, чтобы завершить процесс.
Подключение существующей рабочей области для использования учетной записи службы
Если ваша рабочая область уже подключена к Azure DevOps с помощью удостоверения пользователя, но вы хотите выполнять операции Fabric Git REST API с использованием учетной записи-службы, выполните следующие действия:
- Добавьте субъекта-службы в качестве администратора рабочей области.
- Предоставьте субъекту-службе доступ к Azure DevOps Cloud Connection. У вас есть два варианта:
- Предоставление общего доступа к существующему подключению: Войдите с помощью пользователя, имеющего доступ к соответствующему облачному подключению ADO, и поделитесь им с субъектом-службой с помощью управления пользователями.
- Создайте новое подключение: Повторите шаги 1 и 2 из предыдущего раздела, чтобы создать новое облачное подключение с помощью учетных данных субъекта-службы.
- Проверьте доступ - вызовите API GET Connections, чтобы подтвердить, что служебный принципал может получить доступ к необходимому облачному подключению здесь:
curl --request GET \
--url https://api.fabric.microsoft.com/v1/connections \
--header 'authorization: Bearer <step 2: access-token>'
Получите значение id соответствующего подключения из ответа.
- Обновите учетные данные Git: создайте маркер доступа (шаг 1 из предыдущего раздела) и вызовите API обновления учетных данных Git, дополнительные сведения см. здесь (замените <> значения):
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>"}'
После выполнения этих действий служебный принципал полностью настроен и готов к выполнению операций Git Fabric REST API.