在本教程中,你将设置 GitHub OIDC 并Microsoft Entra 联合标识凭据(FIC),以便 GitHub Actions 可以在不存储客户端密码的情况下向 Power Platform 进行身份验证。
在本教程中,你将:
- 在 GitHub 存储库中配置 OIDC
- 创建 Microsoft Entra 应用注册并配置 FIC
- 在 Power Platform 管理中心授予应用访问权限
- 创建 GitHub 工作流以运行 Power Platform 操作
步骤 1:在 GitHub 存储库中配置 OIDC
在 GitHub 中,打开存储库并确保已启用 GitHub Actions。
若要在存储库中启用 GitHub Actions,请选择“设置>”,然后在“常规”下显示启用选项。 如果未在“设置”下看到“操作”,则你没有所需的存储库安全权限。
查看 OIDC 设置和主题声明自定义指南。 请参阅 GitHub Actions 中的 OpenID Connect。
配置本教程的 OIDC 主体声明模板为
repository, workflow,如上图所示。 它为存储库中的每个工作流创建唯一的主题声明,然后可以在 Microsoft Entra ID 的联合凭据配置中引用该声明。主题格式解析为以下值:
repo:MyOrg/MyRepo:workflow:MyWorkflow
保存存储库 OIDC 配置。
步骤 2:创建Microsoft Entra 应用注册并添加 FIC
在 Azure 门户中,转到 Microsoft Entra ID>应用注册>“新建注册”。
创建应用注册,并复制 应用程序(客户端)ID 和 目录(租户)ID 值。
打开 API 权限>添加权限>Dynamics CRM 并授予 Dataverse 权限。
打开证书和机密(或联合凭据,具体取决于门户体验),并在
Other选择。
使用此显式使用者标识符:
repo:MyOrg/MyRepo:workflow:MyWorkflow保存联合凭据。
注释
GitHub 中的使用者声明和联合凭据中的使用者标识符必须完全匹配。
步骤 3:在 Power Platform 管理中心授予应用访问权限
将 Entra ID 应用注册添加为应用程序用户,并在每个目标环境中分配所需的安全角色。
有关详细步骤,请参阅 Power Platform 管理中心中的“管理应用程序用户”。
步骤 4:创建 GitHub 工作流以运行 Power Platform 操作
在存储库中创建或更新工作流
.github/workflows/。确保工作流为运行 Power Platform 操作的作业请求 OIDC 令牌权限。
配置您的 Power Platform GitHub 操作以使用:
- 租户 ID
- 应用(客户端)ID
- 环境 URL
- 操作支持的基于 OIDC/FIC 的身份验证参数
将示例工作流 YAML 粘贴到此部分中,并更新环境的占位符。
# https://docs.github.com/en/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-azure
name: fic-auth
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
who-am-i:
runs-on: ubuntu-latest
permissions:
id-token: write # Grant permissions to the OIDC endpoint for federation
contents: read
steps:
- name: Install Power Platform Tools
uses: microsoft/powerplatform-actions/actions-install@v1
with:
pac-version-override: 2.4.1
- name: WhoAmI
uses: microsoft/powerplatform-actions/who-am-i@v1
with:
environment-url: https://MyOrg.crm.dynamics.com/
app-id: 00000000-0000-0000-0000-000000000000 # Client (application) ID from your app registration
tenant-id: 00000000-0000-0000-0000-000000000000 # Directory (tenant) ID from your app registration
工作流运行时,GitHub 会颁发 OIDC 令牌。 Microsoft Entra 会根据您的联合凭据验证该令牌,该操作无需客户端密钥即可对 Dataverse/Power Platform 进行身份验证。