身份验证

本文概述了各种可编程性工具的身份验证设置。

在 Microsoft Entra ID 中注册客户端应用程序

有关常规 Microsoft Entra 客户端应用程序创建的概述,请访问 快速入门:向 Microsoft 身份平台注册应用程序。 但是,对于 Microsoft Power Platform,以下各节中介绍了一些值得一提的细节。

身份验证高级设置

在 Azure 门户中,导航到新创建的客户端应用程序,选择管理 - 身份验证选项卡。在高级设置部分下,将公共客户端切换设置为。 这将确保您可以使用简单的用户名和密码身份验证获取 JSON Web 令牌 (JWT)。 对于您可能构建的交互式应用程序以及在 Microsoft Power Platform 中注册“服务主体”条目,此类型的身份验证是必需的。

API 权限

在 Azure 门户中,导航到管理 - API 权限选项卡。在配置权限部分下,选择添加权限。 在打开的对话窗口中,选择我的组织使用的 API 选项卡,然后搜索 Power Apps 服务(或 PowerApps 服务)。 您可能会看到几个名称与此相似的条目,因此请确保将其与 GUID 475226c6-020e-4fb2-8a90-7a972cbfc1d4 一起使用。 包括所有委托的权限,如用户权限 - 访问 Power Apps 服务 API 选项。

将此项添加到客户端应用程序后,选择授予管理员同意完成设置。 对于要开始使用诸如 REST API 之类的工具的实例而言,这是必需的,因为它们没有可以在每次使用时请求同意的图形用户界面 (GUI)。

证书和密码

在 Azure 门户中,导航到管理 - 证书和密码选项卡。在证书部分下,上载可用于进行身份验证的 x509 证书。 或者,您也可以使用密码部分生成客户端密码。 将密码保存在安全的位置,以在您需要自动化时使用。 证书或密码选项让您可以通过 Microsoft Entra 进行身份验证并接收此客户端的令牌,然后将其传递到 REST API 或 PowerShell cmdlet。

获取用户名和密码身份验证的令牌

使用用户名和密码有效负载通过 HTTP 将 POST 请求发送到 Microsoft Entra ID。

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://service.powerapps.com//.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password

上面的示例包含占位符,您可以在 Microsoft Entra ID 中从您的客户端应用程序检索这些占位符。 您将收到一个响应,它可以用于对 Power Platform API 进行后续调用。

{
  "token_type": "Bearer",
  "scope": "https://service.powerapps.com//User https://service.powerapps.com//.default",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOi...UBkeW5hbWljc2F4ZGVtby5vbm1pY3Jvc29mdC5jb20iLCJ1dGkiOiI1Q1Fnb25PR0dreWlTc1I2SzR4TEFBIiwidmVyIjoiMS4wIn0.N_oCJiEz2tRU9Ls9nTmbZF914MyU_u7q6bIUJdhXd9AQM2ZK-OijiKtMGfvvVmTYZp4C6sgkxSt0mOGcpmvTSagSRDY92M2__p-pEuKqva5zxXXXmpC-t9lKYDlXRcKq1m5xv-q6buntnLrvZIdd6ReD3n3_pnGAa6OxU0s82f7DqAjSQgXR3hwq_NZOa0quCUN9X-TvpIYrJfVgQfVu0R189hWmUzbYpuoPrUMj2vQI_19gEHz_FryXolM4RMStugYrC0Z72ND5vFlGgvYhZfbWJRC6hGvQQin_eAASmmjLwhRBGMJd6IdbgEXAkFF2rFITFFtFY_4hrN3bvHsveg"
}

请在使用授权 HTTP 标头对 Power Platform API 进行的后续调用中使用 access_token 值。

获取客户端身份验证的令牌

使用客户端密码有效负载通过 HTTP 将 POST 请求发送到 Microsoft Entra ID。 这通常称为服务主体身份验证。

重要提示

只有在您按照相关的 PowerShellREST 文档向 Microsoft Power Platform 注册了此客户端应用程序 ID 后,才能使用此方法。

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://service.powerapps.com//.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials

上面的示例包含占位符,您可以在 Microsoft Entra ID 中从您的客户端应用程序检索这些占位符。 您将收到一个响应,它可以用于对 Power Platform API 进行后续调用。

{
  "token_type": "Bearer",
  "scope": "https://service.powerapps.com//User https://service.powerapps.com//.default",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOi...UBkeW5hbWljc2F4ZGVtby5vbm1pY3Jvc29mdC5jb20iLCJ1dGkiOiI1Q1Fnb25PR0dreWlTc1I2SzR4TEFBIiwidmVyIjoiMS4wIn0.N_oCJiEz2tRU9Ls9nTmbZF914MyU_u7q6bIUJdhXd9AQM2ZK-OijiKtMGfvvVmTYZp4C6sgkxSt0mOGcpmvTSagSRDY92M2__p-pEuKqva5zxXXXmpC-t9lKYDlXRcKq1m5xv-q6buntnLrvZIdd6ReD3n3_pnGAa6OxU0s82f7DqAjSQgXR3hwq_NZOa0quCUN9X-TvpIYrJfVgQfVu0R189hWmUzbYpuoPrUMj2vQI_19gEHz_FryXolM4RMStugYrC0Z72ND5vFlGgvYhZfbWJRC6hGvQQin_eAASmmjLwhRBGMJd6IdbgEXAkFF2rFITFFtFY_4hrN3bvHsveg"
}

请在使用授权 HTTP 标头对 Power Platform API 进行的后续调用中使用 access_token 值。

另请参见

预览版:通过 API 创建服务主体应用程序