#microsoft-graph-api #azure-ad-b2c
#microsoft-graph-api #azure-ad-b2c
Вопрос:
Мы пытаемся получить список всех пользователей в нашем каталоге B2C и включить членство в группах для всех пользователей.
Мы нашли этот запрос, но, к сожалению, он не поддерживается для B2C:
https://graph.microsoft.com/v1.0/users?$select=displaynameamp;$expand=memberof
Существуют ли какие-либо обходные пути для арендатора B2C?
Мы рассмотрели два решения, но ни одно из них не является масштабируемым:
- перебор каждого пользователя и получение его членства
- перебор всех известных групп и извлечение участников
Комментарии:
1. Вы пробовали этот Graph API
https://graph.microsoft.com/beta/groups/groupid/members
?2. да, это API, который мы рассмотрели для решения № 2 в OP. Мы стараемся избегать множества сетевых запросов, чтобы получить нужные нам результаты
Ответ №1:
Как вы уже знаете, $expand=memberof
не поддерживается для B2C, мы можем выбрать только 2 решения, которые вы упомянули.
Чтобы избежать большего количества запросов, возможно, решение 2 лучше. Но логика относительно сложнее. Во-первых, вы должны запросить список всех пользователей на случай, если какой-либо пользователь не является членом каких-либо групп. Затем вам нужно перечислить все группы и получить членов группы с помощью /groups/groupid/members
. Наконец, вы можете обобщить всю информацию о пользователях и членах группы.
Логика решения 1 проще. Вам просто нужно позвонить /users
и /users/{id | userPrincipalName}/memberOf
позвонить по одному. Но поскольку пользователей определенно больше, чем групп, запросов больше, чем решение 2.
Боюсь, что других лучших обходных путей нет. Какое решение вы выберете, зависит от требований к производительности и логике.