Свойство расширения Azure AD + MS Graph API PATCH = Недостаточно прав для завершения операции - PullRequest
0 голосов
/ 11 апреля 2019

Я ломал голову над этой проблемой последние 2 дня.

Моя цель - разрешить пользователю (любому обычному пользователю Azure AD, не являющемуся администратором) обновить значение свойства расширения (Azure AD) для своего «профиля» / учетной записи AD с помощью API Microsoft Graph.

Рассмотрим следующую ситуацию:

  • Я контролирую (глобальный администратор) какого-то клиента Azure + Azure AD Directory
  • Есть обычный пользователь Azure AD "Джо"
  • Я создал регистрацию приложения + Принципал службы (через PS или в веб-интерфейсе Azure)
  • Я создал свойство расширения Azure AD, используя следующие команды Azure AD PS:

Connect-AzureAD -TenantId xxx-xxx-xxx
$app = Get-AzureADApplication -ObjectId yyy-yyy-yyy
$app | New-AzureADApplicationExtensionProperty -Name "MyProp" -DataType "String" -TargetObjects "User"

Ответ:

Name                                                  TargetObjects
----                                                  -------------
extension_b63fa5d85b9d43b8b60f982e4bf2ad11_MyProp     {User}

  • Я согласился с правами администратора на Graph как в приложении Enterprise Graph, так и в собственной регистрации приложения, особенно Directory.ReadWriteAll и User.ReadWrite.All
  • Затем я использую Graph Explorer (или Почтальон, использующий мою собственную регистрацию приложений), вошедшего в систему как обычный пользователь "Joe"
  • Сбой при использовании следующего запроса PATCH:

PATCH https://graph.microsoft.com/v1.0/me/

with body (type application/JSON):

{
    "extension_b63fa5d85b9d43b8b60f982e4bf2ad11_MyProp": "test"
}

Сбой при следующем ответе:

{
    "error": {
        "code": "Authorization_RequestDenied",
        "message": "Insufficient privileges to complete the operation.",
        "innerError": {
            "request-id": "d0ef63c0-f944-44c4-b90d-413b076b2bca",
            "date": "2019-04-11T08:21:48"
        }
    }
}

Кажется, я не могу понять, почему это происходит. На что обратить внимание:

  • Когда я вхожу в Graph Explorer как глобальный администратор, я могу успешно обновить это свойство
  • Я также могу обновить это свойство для любого пользователя, использующего Azure AD PS, вошедшего в систему как глобальный администратор
  • Как только я назначу Джо роль глобального администратора или администратора пользователя в Azure AD, он сможет также обновить свойство
  • Как "Джо", используя вышеупомянутый запрос PATCH в Graph Explorer (или Почтальоне), я могу обновить "мобильный телефон"
  • Как "Джо", используя вышеупомянутый запрос PATCH в Graph Explorer (или почтальоне), я не могу обновить "город" или "данное имя"

Что я делаю не так?

...