Какие ТОЧНЫЕ разрешения необходимы для использования Get-AzureRmRoleAssignment в качестве приложения через ServicePrincipal?

Я видел сообщения подобные этому где возникает путаница в отношении того, какое именно разрешение требуется, чтобы позволить ServicePrincipal вызывать Get-AzureRmRoleAssignment при входе в систему с помощью Login-AzureRmAccount.

В моем случае, если я вызову Get-AzureRmRoleAssignment с флагом -debug, я смогу зафиксировать следующую ошибку в теле ответа HTTP:

Body:
{
  "odata.error": {
    "code": "Authorization_RequestDenied",
    "message": {
      "lang": "en",
      "value": "Insufficient privileges to complete the operation."
    }
  }
}

Я установил разрешения для приложения следующим образом... сначала доступ к Azure AD:

Разрешения Azure AD

А затем доступ к Microsoft Graph:

Разрешения MS Graph

Это по-прежнему дает ошибку сбоя authZ. Я даже пытался провести эксперимент, в котором я дал приложению ВСЕ разрешения для каждого API, и это все равно не сработало.

Чего не хватает? Какие разрешения ТОЧНО необходимы, чтобы разрешить программный доступ только для чтения для перечисления назначений ролей с помощью этого вызова?


person Dana Epp    schedule 10.04.2018    source источник


Ответы (1)


Во-первых, как я ответил в этом случае, Get-AzureRmRoleAssignmentтребуется не только read access for role assignment разрешение API REST Azure, но также требуется разрешение Read directory data с API Graph Azure AD. После добавления разрешений

Добавьте разрешение API Graph AAD:

Вам также необходимо нажать кнопку Grant permissions, чтобы дать согласие администратора.

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

Добавьте разрешения API REST Azure:

Кроме того, прежде чем добавлять разрешения API графа AAD для вашего sp, убедитесь, что у вашего sp есть разрешения для Azure REST API, назначив ему роль (например, роль участника) из Subscriptions RBAC (IAM).

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

Я проверил это и преуспел.

person Wayne Yang    schedule 10.04.2018
comment
У меня уже есть роль Читатель для подписки. Вы видите, что у вас должна быть роль участника, чтобы подписка использовала это? - person Dana Epp; 10.04.2018
comment
На самом деле, я понял это. Хитрость заключается в том, что после изменения разрешений вы должны нажать «Предоставить разрешения» СНОВА. Это явно не делается после добавления. - person Dana Epp; 10.04.2018
comment
Привет, @DanaEpp. Вот что я имею в виду о Grant permissions. После добавления разрешений вам нужно нажать эту кнопку, чтобы дать согласие администратора. - person Wayne Yang; 11.04.2018