我正在尝试使用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 Step的样子(我正在使用服务连接来提供服务主体)。
要配置服务主体,我为服务连接选择“管理服务主体”。
然后,我已经为Microsoft Graph和Windows Azure Active Directory提供了所有“必需的权限”。我不认为我需要Microsoft Graph,但是因为Windows AAD无法正常工作。
根据错误信息,它表明您无权这样做。
我按照terraform qazxsw poi,我们需要分配对应于应用程序的权限。
注意:如果您使用服务主体进行身份验证,则它必须具有读取和写入所有应用程序的权限,并且必须具有Windows Azure Active Directory API中的登录和读取用户配置文件的权限
在测试期间,我将以下权限分配给Azure Active Directory,有关详细信息,请参阅屏幕截图。
注意:请不要忘记单击授予权限
测试结果: