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

Cannot Create Azure AD Application with Azure DevOps + Terraform

我正在尝试使用 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>"}}]

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

这是有问题的 Terraform 代码:​​

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

resource "azuread_service_principal" "cluster" {
  application_id = "${azuread_application.cluster.application_id}"
}

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

要配置服务主体,我选择 "Manage Service Principal" 作为服务连接。

然后我为 Microsoft Graph 和 Windows Azure Active Directory 提供了全部 "required permissions"。我认为我不需要 Microsoft Graph,但因为 Windows AAD 无法正常工作,所以才这样做。

根据错误信息表明您没有权限这样做。

我遵循地形guide document,我们需要分配与应用程序相对应的权限。

NOTE: If you're authenticating using a Service Principal then it must have permissions to both Read and write all applications and Sign in and read user profile within the Windows Azure Active Directory API

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

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

测试结果: