在Terraform中设置Azure AD Microsoft Graph电子邮件API/权限

cgfeq70w  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(156)

我正在使用Terraform配置一些Azure基础设施。安装要求中包括Azure AD注册应用程序的一些配置,这需要授予以下Microsoft Graph权限(请参见下图):

  • GroupMember.Read.All
  • 电子邮件(OpenId)

x1c 0d1x的数据
在我的Terraform配置中,我在required_resource_access子块中的resource "azuread_application"块中包含了以下代码片段。对于resource_access id,我使用了Microsoft页面上提供的值-https://learn.microsoft.com/en-us/graph/permissions-reference



我的Terraform配置目前能够成功添加GroupMember.Read.All权限,但不知何故,它无法添加所需的电子邮件权限,如下面的屏幕截图所示,显示的是电子邮件引用,而不是实际名称“email”。
我还希望能够在我的Terraform配置中为API/服务器授予管理员同意的能力(在最右边的一列中描述)。



有什么建议可以让我实现以上所有目标吗?

m2xkgtsf

m2xkgtsf1#

对于权限typeScope对应于Delegated权限类型,其中RoleApplication类型。
email OpenID作用域是Delegated权限类型,因此您需要将权限typeRole更改为Scope

resource_access {
    id = "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0"
    type = "Scope"
}

字符串

btqmn9zl

btqmn9zl2#

为了解决OP询问的第二部分,确实可以通过Terraform“授予管理员同意”。请参阅azuread_app_role_assignment documentation,其中有一个很好的例子来说明如何实现这一点。
下文引用了相关的例子。

data "azuread_application_published_app_ids" "well_known" {}

resource "azuread_service_principal" "msgraph" {
  application_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph
  use_existing   = true
}

resource "azuread_application" "example" {
  display_name = "example"

  required_resource_access {
    resource_app_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph

    resource_access {
      id   = azuread_service_principal.msgraph.app_role_ids["User.Read.All"]
      type = "Role"
    }

    resource_access {
      id   = azuread_service_principal.msgraph.oauth2_permission_scope_ids["User.ReadWrite"]
      type = "Scope"
    }
  }
}

resource "azuread_service_principal" "example" {
  application_id = azuread_application.example.application_id
}

resource "azuread_app_role_assignment" "example" {
  app_role_id         = azuread_service_principal.msgraph.app_role_ids["User.Read.All"]
  principal_object_id = azuread_service_principal.example.object_id
  resource_object_id  = azuread_service_principal.msgraph.object_id
}

字符串

相关问题