#azure-active-directory #microsoft-graph-api
#azure-active-directory #microsoft-graph-api
Вопрос:
Я хочу использовать расширение схемы Azure AD для расширения одного свойства, я успешно создал расширение схемы с идентификатором « myverifiedaaddomain_extensionid
«.
Расширение схемы :
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#schemaExtensions/$entity",
"id": "myverifiedaaddomain_extensionid",
"description": "myverifiedaaddomain_extensionid",
"targetTypes": [
"User"
],
"status": "InDevelopment",
"owner": "owner",
"properties": [
{
"name": "isExtended",
"type": "Boolean"
}
]
}
ПРИМЕЧАНИЕ: В сценарии с одним клиентом он работает отлично.
Многопользовательский сценарий :
Сценарий —
- У меня есть хост-клиент T1
- Зарегистрированный многопользовательский AAD AAP A1 (в T1 со всеми необходимыми разрешениями)
- Я хочу встроить tenant T2
- Зарегистрируйте расширение схемы на T2 после успешной загрузки
Когда я подключаю T2, все расширения схемы из T1, владельцем которого является A1, импортируются в каталог T2 без какого-либо уведомления или запроса.
Итак, в настоящее время он работает и в многопользовательском сценарии, но я не уверен, что все расширения схемы будут экспортированы в партнерский клиент (T2), это ожидаемое поведение или ошибка? Здесь нет четкой документации https://learn.microsoft.com/en-us/graph/extensibility-overview или https://learn.microsoft.com/en-us/graph/api/resources/schemaextension?view=graph-rest-1.0
Кроме этого, также нет четкой документации по разрешениям, например : https://learn.microsoft.com/en-us/graph/extensibility-overview#permissions Они упомянули, что для чтения / обновления расширенных данных вам нужны все разрешения, указанные на странице разрешений этого ресурса. Для User
ресурса нам понадобятся все разрешения, упомянутые здесь https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0#permissions
Это не работает, я не могу читать расширенные данные через другие приложения AAD (A2, A3 и т.д.), которые имеют все разрешения, упомянутые на странице выше (https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0#permissions).
Ответ №1:
Извините за некоторые проблемы, с которыми вы сталкиваетесь здесь. Просто для двойной проверки — использовали ли вы расширения схемы Azure AD Directory в прошлом? Я спрашиваю, потому что, похоже, у вас есть некоторые предубеждения о том, как работают расширения, и они ведут себя немного по-другому в Microsoft Graph.
Что касается документации — это описано в разделе о жизненном цикле расширения схемы в https://learn.microsoft.com/en-us/graph/extensibility-overview#schema-extensions. Возможно, мы сможем сделать лучшую работу по предоставлению полного сценария. Но вот важный момент при установке состояния определения схемы на Available
:
-
Расширение схемы доступно для использования всеми приложениями в любом клиенте.
-
После того, как приложение-владелец установит для расширения значение Доступно, любое приложение может просто добавлять пользовательские данные в экземпляры тех типов ресурсов, которые указаны в расширении (при условии, что приложение имеет разрешения на этот ресурс). Приложение может назначать пользовательские данные при создании нового экземпляра или обновлении существующего экземпляра.
- Только приложение-владелец может обновлять определение расширения с дополнительными изменениями. Ни одно приложение не может удалить определение расширения в этом состоянии.
- Приложение-владелец может перевести расширение схемы из состояния «Доступно» в состояние «Устарело».
С точки зрения неработоспособности разрешений, какие разрешения были предоставлены многопользовательскому приложению или другим приложениям A2 и A3? Какой ответ вы видите (не могли бы вы также предоставить запрос, пожалуйста)?
Надеюсь, это поможет,
Комментарии:
1. Привет @Dan, спасибо за ответ. В многопользовательском сценарии все расширения схемы, зарегистрированные / связанные с приложением AAD, экспортируются в клиент, который подключается. На странице согласия нет информации об этом. Что касается разрешений, я пытался получить доступ к расширенному свойству из другого приложения, пока мое расширение находилось в стадии разработки. Теперь с этим разобрались.
2. Кстати, есть еще одна проблема, с которой я сталкиваюсь: $filter доступен на ресурсе «/groups/{groupId}/members». Но в документе здесь learn.microsoft.com/en-us/graph /… они не упомянули, что фильтрация недоступна в /groups/{groupId}/members. Есть мысли по этому поводу?