Microsoft Graph API с Azure AD B2C: получение всех пользователей и членства в их группах

#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. перебор каждого пользователя и получение его членства
  2. перебор всех известных групп и извлечение участников

Комментарии:

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.

Боюсь, что других лучших обходных путей нет. Какое решение вы выберете, зависит от требований к производительности и логике.