你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
GitHub Actions 允许直接在 GitHub 存储库中创建自定义持续集成(CI)和持续部署(CD)工作流。 本文介绍如何使用 GitHub Actions 自动部署 Azure Active Directory B2C (Azure AD B2C) 自定义策略 。
若要自动化自定义策略部署过程,请使用 用于部署 Azure AD B2C 自定义策略的 GitHub 操作。 此 GitHub Action 由 Azure AD B2C 社区开发。
此操作使用 Microsoft Graph API 将自定义策略部署到 Azure AD B2C 租户中。 如果租户中尚不存在该策略,将创建该策略。 否则,将替换它。
重要
借助 Azure Pipelines 管理 Azure AD B2C 自定义策略目前使用 Microsoft Graph API /beta
终结点上提供的预览操作。 不支持在生产应用程序中使用这些 API。 有关详细信息,请参阅 Microsoft Graph REST API beta 版本终结点参考。
先决条件
- 完成 Active Directory B2C 中的自定义策略入门中的步骤。
- 如果尚未创建 GitHub 存储库, 请创建一个。
选择自定义策略文件夹
GitHub 存储库可以包含所有 Azure AD B2C 策略文件和其他资产。 在存储库的根目录中,创建或选择包含自定义策略的现有文件夹。
例如,选择名为 策略的文件夹。 将 Azure AD B2C 自定义策略文件添加到 策略 文件夹。 然后提交更改。
请勿推送更改。 设置部署工作流后,稍后将执行此作。
注册 Microsoft Graph 应用程序
若要允许 GitHub Action 与 Microsoft 图形 API 进行交互,请在 Azure AD B2C 租户中创建应用程序注册。 如果尚未注册,请 注册 Microsoft Graph 应用程序。
若要使 GitHub Action 访问 Microsoft Graph 中的数据,请向已注册的应用程序授予相关 应用程序权限。 在应用注册的 API 权限中授予 Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework 权限。
创建 GitHub 加密机密
GitHub 机密是在组织、存储库或存储库环境中创建的加密环境变量。 在此步骤中,你将存储前面在 “注册 MS Graph 应用程序 ”步骤中注册的应用程序的应用程序机密。
用于部署 Azure AD B2C 自定义策略的 GitHub Action 使用机密信息来获取用于与 Microsoft Graph API 交互的访问令牌。 有关详细信息,请参阅 为存储库创建加密机密。
若要创建 GitHub 机密,请执行以下步骤:
- 在 GitHub 中,导航到存储库的主页。
- 在存储库名称下,选择“设置”。
- 在左侧边栏中,选择“ 机密”。
- 选择“新建存储库机密”。
- 对于 “名称”,请键入 ClientSecret。
- 对于 “值”,请输入之前创建的应用程序机密。
- 选择“添加机密”。
创建 GitHub 工作流
GitHub 工作流是你添加到存储库中的自动化流程。 工作流由一个或多个作业组成,可由事件计划或触发。 在此步骤中,将创建用于部署自定义策略的工作流。
若要创建工作流,请执行以下步骤:
在 GitHub 中,导航到存储库的主页。
在存储库名称下选择操作。
如果以前未配置工作流,请选择 自己设置工作流。 否则,请选择“ 新建工作流”。
GitHub 提议在
.github/workflows
文件夹中创建一个名为main.yml
的工作流文件。 此文件包含有关工作流的信息,包括 Azure AD B2C 环境和要部署的自定义策略。 在 GitHub Web 编辑器中,添加以下 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 }}
更新 YAML 文件的以下属性:
部分 名称 价值 env
clientId
在注册 MS Graph 应用程序步骤中注册的应用程序(客户端)ID。 env
tenant
您的 Azure AD B2C 租户名称(例如 contoso.onmicrosoft.com)。 with
folder
存储自定义策略文件的文件夹,例如 ./Policies
。with
files
要部署的策略文件列表(以逗号分隔),例如 TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml
。重要
运行代理并上传策略文件时,请确保按正确的顺序上传它们:
- TrustFrameworkBase.xml
- TrustFrameworkLocalization.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
选择“开始提交”。
在提交消息字段下方,指示是将提交添加到当前分支还是将提交添加到新分支。 选择 “提交新文件”或 “建议新文件 ”以创建拉取请求。
测试工作流
若要测试您创建的工作流,请推送您的自定义策略的更改。 作业开始运行后,可以看到运行进度的可视化图,并在 GitHub 上查看每个步骤的活动。
在 GitHub 上,导航到存储库的主页。
在存储库名称下,选择操作。
在左侧边栏中,选择创建的工作流。
在 “工作流运行”下,选择要查看的运行的名称。
在 “作业 ”或“可视化效果图”下,选择要查看的作业。
查看每个步骤的结果。 以下屏幕截图演示自定义策略上传步骤日志。
可选:计划工作流
创建的工作流由 推送 事件触发。 如果需要,可以选择另一个事件来触发工作流,例如 拉取请求。
还可以使用 POSIX cron 语法计划在特定 UTC 时间运行的工作流。 计划事件允许你在计划的时间触发工作流。 有关详细信息,请参阅计划事件。
以下示例每天在 5:30 和 17:30 UTC 触发工作流:
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 5,17 * * *'
编辑您的工作流:
在 GitHub 中,导航到存储库的主页。
在存储库名称下,选择“操作”。
在左侧边栏中,选择创建的工作流。
在 “工作流运行”下,选择要查看的运行的名称。
从菜单中选择三个点 ...,然后选择“ 查看工作流文件”。
在 GitHub Web 编辑器中,选择“ 编辑”。
更改
on: push
为上面的示例。提交更改。
后续步骤
- 了解如何配置 触发工作流的事件