Azure Active Directory - graphrbac.GroupsClient # Список: ошибка ответа на запрос: StatusCode = 403

Мой участник службы пытается прочитать определенную группу AD, используя следующий код terraform:

data "azuread_group" "hosting_ad_group" {
  name = local.hosting_ad_group_name
}

Согласно документации на https://www.terraform.io/docs/providers/azuread/d/group.html :

ПРИМЕЧАНИЕ. Если вы проходите проверку подлинности с использованием субъекта-службы, у него должны быть разрешения на чтение данных каталога в API-интерфейсе Windows Azure Active Directory.

И действительно, у моего SP есть это разрешение: введите описание изображения здесь

Тем не менее, когда я запускаю terraform apply как этот SP, я получаю следующее:

Error: Error finding Azure AD Group with display name "AdminRole-Product-DFDevelopmentOps": Error listing Azure AD Groups for filter "displayName eq 'AdminRole-Product-DFDevelopmentOps'": graphrbac.GroupsClient#List: 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":"2020-02-09T13:59:32","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"b4f52aca-7306-4d12-95c9-cf922ae59483"}}]

Что мне не хватает?

РЕДАКТИРОВАТЬ 1

Вот как я устанавливаю разрешения API от terraform:

resource "azuread_application" "app" {
  name = local.ctx.HostingAppName

  # AAD Graph API   
  required_resource_access {
    resource_app_id = "00000002-0000-0000-c000-000000000000"

    # Sign in and read user profile
    resource_access {
      id   = "311a71cc-e848-46a1-bdf8-97ff7156d8e6"
      type = "Scope"
    }

    # Manage apps that this app creates or owns
    resource_access {
      id   = "824c81eb-e3f8-4ee6-8f6d-de7f50d565b7"
      type = "Role"
    }

    # Read directory data
    resource_access {
      id   = "5778995a-e1bf-45b8-affa-663a9f3f4d04"
      type = "Scope"
    }
  }
}

Всего 1 ответ


Обратите внимание, что разрешения для приложений отличаются от разрешений для делегирования . Если вы используете сервисный принципал для вызова API, вы должны предоставить разрешение приложения.

введите описание изображения здесь

Ссылка:

Типы разрешений


Есть идеи?

10000