在使用Terraform的appRegistration Azure中赋予所有者角色方面的问题

时间:2018-09-24 13:45:45

标签: permissions azure-active-directory terraform-provider-azure

我正在使用Terraform在Azure中创建应用注册。

此后,我尝试将所有者权限授予其他人(我自己),但不允许我这样做。

我正在使用的命令序列是:

resource "azurerm_azuread_application" "service_principal" {
  name                       = "${var.departamentoCamel}-${var.appnameCamel}-${var.entorno}"
  homepage                   = "https://${lower("${var.appnameCamel}")}.asisa.es"
  available_to_other_tenants = false
  oauth2_allow_implicit_flow = true
}
resource "azurerm_azuread_service_principal" "service_principal" {
  application_id = "${azurerm_azuread_application.service_principal.application_id}"
}
resource "azurerm_azuread_service_principal_password" "service_principal" {
  service_principal_id  = "${azurerm_azuread_service_principal.service_principal.id}"
  value                       = "${random_string.password.result}="
  end_date              = "2020-01-01T01:02:03Z"
}

resource "azurerm_role_assignment" "test" {
  scope                = "${azurerm_azuread_application.service_principal.id}"
  role_definition_name = "Owner"
  principal_id         = "8c7b71b3-cf32-4da5-9bbb-5e5dd249c607"
}

但是我收到以下错误消息:

* azurerm_role_assignment.test: authorization.RoleAssignmentsClient#Create: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="MissingSubscription" Message="The request did not have a provided subscription. All requests must have an associated subscription Id."

有人知道如何将拥有者角色赋予具有ObjectID的人吗? 8c7b71b3-cf32-4da5-9bbb-5e5dd249c607吗?

谢谢, 胡安拉

1 个答案:

答案 0 :(得分:0)

AFAIK,azurerm_role_assignment用于将给定的委托人(用户或应用程序)分配给给定的角色。

scope应该是您的Azure订阅下的Azure资源的资源ID,服务主体属于Azure AD,而不是订阅中的资源。

如果要将所有者添加到服务主体中,似乎不支持通过terraform。

解决方法:

1。导航到Azure门户Azure AD->企业应用程序-所有应用程序->服务主体->所有者->添加。

2。使用天蓝色的Powershell Add-AzureADServicePrincipalOwner