【问题标题】:Create Azure AD Application using terraform(Invalid UUID)使用 terraform 创建 Azure AD 应用程序(无效的 UUID)
【发布时间】:2021-10-24 09:28:34
【问题描述】:

我正在使用 terraform 创建一个 Azure AD 应用程序,我已经尝试了 terraform 示例 https://registry.terraform.io/providers/hashicorp/azuread/latest/docs/resources/application 中的默认示例,我还从我手动创建的代码中自定义了下面的代码(基本上,我已经手动创建了一个应用程序AD 并使用 terraform 为创建的应用程序从数据资源中获取详细信息)。两个代码都抛出相同的错误

错误:值必须是有效的 UUID │ │ azuread_application.example,│在 adapp.tf 第 3 行,在资源中 "azuread_application" "example": │ 3: 资源 “azuread_application” “示例” {

这是我根据原始示例自定义的代码

data "azuread_client_config" "current" {}

resource "azuread_application" "example" {
  display_name     = "example"
  identifier_uris  = ["api://example-app"]
  owners           = [data.azuread_client_config.current.object_id]
  sign_in_audience = "AzureADMultipleOrgs"

  required_resource_access {
    resource_app_id = "00000003-0000-0000-c000-000000000000"
    resource_access {
      id   = "..."
      type = "Scope"
    }
  }

  web {
    redirect_uris = ["https://app.example.net/account"]

    implicit_grant {
      access_token_issuance_enabled = false
    }
  }
}

我已经验证了“data.azuread_client_config.current.object_id”,它不为空并且它产生了值。

地形配置:

windows_amd64 上的 Terraform v0.15.4

  • 提供者 registry.terraform.io/hashicorp/azuread v1.6.0

【问题讨论】:

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


    【解决方案1】:

    当您使用 "Microsoft Graph" (00000003-0000-0000-c000-000000000000) 的资源应用程序 ID 时,您必须提供您的应用程序在 Microsoft 图表中所需的委派权限,例如 User.read 等.

    一些 CLI 命令可帮助您获取 Microsoft Graph 资源 App Id 和 Delegated Permissions Id:

     - az ad sp list --display-name "Microsoft Graph" --query
       '[].{appDisplayName:appDisplayName, appId:appId}' 
               --output table
     - az ad sp show --id 00000003-0000-0000-c000-000000000000 --query
       "oauth2Permissions[].{Value:value, Id:id}" --output table
    

    因此,由于您已经在使用默认的 Microsoft Graph App Id,我们需要获取委派的权限 ID 以在资源访问 ID 中提供。

    那么您的 terraform 代码将如下所示:

    data "azuread_client_config" "current" {}
    
    resource "azuread_application" "example" {
      display_name     = "example"
      identifier_uris  = ["api://example-app"]
      owners           = [data.azuread_client_config.current.object_id]
      sign_in_audience = "AzureADMultipleOrgs"
    
      required_resource_access {
        resource_app_id = "00000003-0000-0000-c000-000000000000"# resourceid of microsoft graph
        resource_access {
          id   = "e1fe6dd8-ba31-4d61-89e7-88639da4683d"  # User.Read
          type = "Scope"
        }
      }
    
      web {
        redirect_uris = ["https://app.example.net/account"]
    
        implicit_grant {
          access_token_issuance_enabled = false
        }
      }
    }
    

    制定地形计划:

    注意: 默认 Microsoft Graph 应用 ID 为 "00000003-0000-0000-c000-000000000000",默认 Windows Active Directory 应用 ID (Azure AD Graph) 为 "00000002-0000-0000-c000-000000000000"。根据您的要求,您可以使用 Microsoft Graph 或 Azure AD Graph。

    【讨论】:

      猜你喜欢
      • 2019-07-17
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 2022-11-04
      • 2019-07-15
      • 2021-05-07
      相关资源
      最近更新 更多