Развертывание настраиваемых политик с помощью GitHub Actions

Это важно

Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".

GitHub Actions позволяет создавать пользовательские рабочие процессы непрерывной интеграции (CI) и непрерывного развертывания (CD) непосредственно в репозитории GitHub. В этой статье описывается, как автоматизировать развертывание настраиваемых политик Azure Active Directory B2C (Azure AD B2C) с помощью GitHub Actions.

Чтобы автоматизировать процесс развертывания пользовательской политики, используйте действие GitHub для развертывания пользовательских политик Azure AD B2C. Это действие GitHub разработано сообществом Azure AD B2C.

Это действие развертывает пользовательские политики Azure AD B2C в клиенте Azure AD B2C с помощью API Microsoft Graph. Если политика еще не существует в вашем арендаторе, она будет создана. В противном случае он будет заменен.

Это важно

Управление пользовательскими политиками Azure AD B2C с помощью Azure Pipelines в настоящее время использует операции предварительной версии, доступные в конечной точке Microsoft Graph API. Использование этих API в рабочих приложениях не поддерживается. Дополнительные сведения см. в справочнике по бета-точке REST API Microsoft Graph.

Предпосылки

Выбор папки настраиваемых политик

Репозиторий GitHub может содержать все файлы политики Azure AD B2C и другие ресурсы. В корневом каталоге репозитория создайте или выберите существующую папку, содержащую пользовательские политики.

Например, выберите папку с именем policies. Добавьте файлы пользовательской политики Azure AD B2C в папку политик . Затем зафиксируйте изменения.

Не отправляйте изменения. Это будет выполняться позже после настройки рабочего процесса развертывания.

Регистрация приложения Microsoft Graph

Чтобы разрешить GitHub Action взаимодействовать с API Microsoft Graph, создайте регистрацию приложения в клиенте Azure AD B2C. Если вы еще этого не сделали, зарегистрируйте приложение Microsoft Graph.

Чтобы действие GitHub получило доступ к данным в Microsoft Graph, предоставьте соответствующие разрешения приложения зарегистрированному приложению. Предоставьте разрешение Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework в рамках разрешений API при регистрации приложения.

Создание зашифрованного секрета GitHub

Секреты GitHub — это зашифрованные переменные среды, которые вы создаете в организации, репозитории или окружении репозитория. На этом шаге вы храните секрет приложения для приложения, зарегистрированного ранее на шаге регистрации приложения MS Graph .

Действие GitHub для развертывания пользовательских политик Microsoft Azure AD B2C использует секретный ключ для получения токена доступа, используется для взаимодействия с API Microsoft Graph. Дополнительные сведения см. в разделе "Создание зашифрованных секретов для репозитория".

Чтобы создать секрет GitHub, выполните следующие действия.

  1. В GitHub перейдите на главную страницу репозитория.
  2. Под именем репозитория выберите Параметры.
  3. На левой боковой панели выберите "Секреты".
  4. Выберите новый секрет репозитория.
  5. В поле "Имя" введите ClientSecret.
  6. В поле "Значение" введите секрет приложения, созданный ранее.
  7. Выберите "Добавить секрет".

Создание рабочего процесса GitHub

Рабочий процесс GitHub — это автоматическая процедура, которую вы добавляете в репозиторий. Рабочие процессы состоят из одного или нескольких заданий и могут быть запланированы или активированы событием. На этом шаге вы создадите рабочий процесс, который развертывает настраиваемую политику.

Чтобы создать рабочий процесс, выполните следующие действия.

  1. В GitHub перейдите на главную страницу репозитория.

  2. В поле имени репозитория выберите Действия.

    Снимок экрана: вкладка

  3. Если вы еще не настроили рабочий процесс, выберите настроить рабочий процесс самостоятельно. В противном случае выберите новый рабочий процесс.

    Снимок экрана: создание нового рабочего процесса

  4. GitHub предлагает создать файл рабочего процесса с именем main.yml в папке .github/workflows . Этот файл содержит сведения о рабочем процессе, включая среду Azure AD B2C и настраиваемые политики для развертывания. В веб-редакторе GitHub добавьте следующий код YAML:

    on: push
    
    env:
      clientId: 00001111-aaaa-2222-bbbb-3333cccc4444
      tenant: your-tenant.onmicrosoft.com
    
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v2
    
        - name: 'Upload TrustFrameworkBase Policy'
          uses: azure-ad-b2c/deploy-trustframework-policy@v3
          with:
            folder: "./Policies"
            files: "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml"
            tenant: ${{ env.tenant }}
            clientId: ${{ env.clientId }}
            clientSecret: ${{ secrets.clientSecret }}
    
  5. Обновите следующие свойства ФАЙЛА YAML:

    Секция Имя Ценность
    env clientId Идентификатор приложения (клиента), зарегистрированного на шаге регистрации приложения MS Graph .
    env tenant Имя клиента Azure AD B2C (например, contoso.onmicrosoft.com).
    with folder Папка, в которой хранятся файлы пользовательских политик, например ./Policies.
    with files Список файлов политики с разделителями-запятыми для развертывания, например TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml.

    Это важно

    При запуске агентов и отправке файлов политики убедитесь, что они отправляются в правильном порядке:

    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml
  6. Выберите Начать фиксацию.

  7. Под полями сообщения коммита укажите, следует ли добавить коммит в текущую ветвь или создать новую ветвь. Выберите "Зафиксировать новый файл" или "Предложить новый файл", чтобы создать пулл-реквест.

Тестирование рабочего процесса

Чтобы протестировать созданный рабочий процесс, отправьте изменения настраиваемой политики. Как только ваше задание начнется, вы сможете увидеть диаграмму хода выполнения и просмотреть действия каждого из шагов на GitHub.

  1. На сайте GitHub перейдите на главную страницу репозитория.

  2. В поле имени репозитория выберите Действия.

  3. На левой боковой панели выберите созданный рабочий процесс.

  4. В разделе "Выполнение рабочего процесса" выберите имя запуска, которое вы хотите просмотреть.

    Снимок экрана: выбор действия рабочего процесса

  5. В разделе "Задания " или в графе визуализации выберите задание, которое нужно просмотреть.

  6. Просмотрите результаты каждого шага. На следующем снимке экрана демонстрируется лог шага отправки пользовательской политики.

    Журнал шагов настраиваемой политики загрузки

Опционально: запланируйте рабочий процесс

Рабочий процесс, который вы создали, запускается push-событием. Если вы предпочитаете, вы можете выбрать другое событие, чтобы активировать ваш рабочий процесс, например pull request.

Можно также запланировать выполнение рабочего процесса в определенное время в формате UTC с помощью синтаксиса cron POSIX. Событие расписания позволяет активировать рабочий процесс в запланированное время. Дополнительные сведения см. в разделе Запланированные события.

В следующем примере рабочий процесс активируется каждый день в 5:30 и 17:30 UTC:

on:
  schedule:
    # * is a special character in YAML so you have to quote this string
    - cron:  '30 5,17 * * *'

Чтобы изменить рабочий процесс, выполните приведенные действия.

  1. В GitHub перейдите на главную страницу репозитория.

  2. В поле имени репозитория выберите Действия.

  3. На левой боковой панели выберите созданный рабочий процесс.

  4. В разделе "Выполнение рабочего процесса" выберите имя запуска, которое вы хотите просмотреть.

  5. В меню выберите три точки ..., а затем выберите "Просмотреть файл рабочего процесса".

    Снимок экрана: просмотр файла рабочего процесса

  6. В веб-редакторе GitHub нажмите кнопку "Изменить".

  7. Измените on: push на приведенный выше пример.

  8. Зафиксируйте изменения.

Дальнейшие шаги