无法使用 Azure DevOps + Terraform 创建 Azure AD 应用程序

ran*_*ons 3 azure-devops terraform-provider-azure

我正在尝试使用 terraform 和 Azure DevOps 管道创建 Azure AD 应用程序,但出现以下错误:

1 error(s) occurred:

* module.cluster.module.cluster.azuread_application.cluster: 1 error(s) occurred:

* azuread_application.cluster: graphrbac.ApplicationsClient#Create: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="Unknown" Message="Unknown service error" Details=[{"odata.error":{"code":"Authorization_RequestDenied","date":"2019-02-19T23:22:23","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"<SOME GUID>"}}]
Run Code Online (Sandbox Code Playgroud)

我很确定这是因为管道的服务主体在我们的 Azure AD 中没有适当的权限。

这是违规的 Terraform 代码:

resource "azuread_application" "cluster" {
  name = "some-application"
}

resource "azuread_service_principal" "cluster" {
  application_id = "${azuread_application.cluster.application_id}"
}
Run Code Online (Sandbox Code Playgroud)

这是 Terraform 步骤的样子(我正在使用服务连接来提供服务主体)。

地形步骤

为了配置服务主体,我为服务连接选择了“管理服务主体”。

服务连接

然后,我为 Microsoft Graph 和 Windows Azure Active Directory 授予了所有“必需的权限”。我不认为我需要 Microsoft Graph,但是因为 Windows AAD 无法正常工作,所以我这样做了。

服务主体配置

Tom*_*SFT 5

根据错误信息,它表明您无权这样做。

我遵循 terraform指南文档,我们需要为应用程序分配相应的权限。

注意:如果您使用服务主体进行身份验证,则它必须具有读取和写入所有应用程序以及登录和读取Windows Azure Active Directory API 中的用户配置文件的权限

在测试过程中,我为 Azure Active Directory 分配了以下权限,更多信息请参考截图。

在此处输入图片说明

注意?请不要忘记点击授予权限

测试结果:

在此处输入图片说明

在此处输入图片说明

  • 该指南的链接现在已失效,有更新吗? (2认同)