Я ломал голову над этой проблемой последние 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 (или почтальоне), я не могу обновить "город" или "данное имя"
Что я делаю не так?