Azure B2C - Управление пользователями (CRUD) - Один клиент против нескольких клиентов

Для операций CRUD с api графа нам пришлось предоставить учетные данные приложения нескольким группам разработчиков. Эти группы отвечают за разные приложения, и пока мы управляем разными клиентами Azure B2C для каждого приложения. Мы хотим объединиться в один клиент B2C для всех приложений.

Как лучше всего это сделать и есть ли при этом какие-либо опасения? Вот некоторые из них, о которых мы думали

  1. Предоставление разрешений на уровне клиента, таких как Directory.ReadWrite.All и User.ReadWrite.All, может привести к тому, что разработчик из одной команды непреднамеренно удалит идентификаторы других команд.
  2. Изменение атрибутов, уже используемых другими приложениями для одного приложения

comment
Что вы подразумеваете под объединением в один клиент B2C всех приложений и атрибутов, которые уже используются другими приложениями для одного приложения? Пожалуйста, предоставьте более подробную информацию.   -  person Allen Wu    schedule 06.01.2021
comment
Спасибо, Аллен, объедините все приложения в один клиент B2C - используйте один клиент B2C для обработки аутентификации для всех приложений.   -  person Bandz    schedule 07.01.2021
comment
атрибуты, уже используемые другими приложениями для одного приложения - одно приложение X вызывает Graph API, чтобы изменить существующий атрибут A для пользователя. Тот же атрибут A используется другим приложением Y, и это изменение значения X теперь будет влиять на то, как работает Y.   -  person Bandz    schedule 07.01.2021
comment
Насколько мне известно, у Azure AD нет готового решения, отвечающего вашим потребностям. В вашем случае каждая команда сможет управлять всеми пользователями в одном клиенте B2C. Мое предложение контролирует разрешение с помощью вашей собственной логики. Например, пользователь из группы A имеет заявку на группу в токене идентификатора, который сообщает вам, что он из какой группы. Затем, когда он вызывает MS graph, чтобы изменить пользователя, проверьте, из какой группы он принадлежит. Если пользователь, которого он пытается изменить, принадлежит группе A, вы разрешаете это. С помощью этого метода вы можете реализовать администратора из группы A, который может изменять только пользователей из группы A.   -  person Allen Wu    schedule 07.01.2021
comment
Комментарий перемещен в ответ, чтобы можно было рассматривать эту проблему как ответ для других. Если это поможет, вы можете принять это как ответ. Спасибо.   -  person Allen Wu    schedule 08.01.2021


Ответы (1)


Насколько мне известно, у Azure AD нет готового решения, отвечающего вашим потребностям.

В вашем случае каждая команда сможет управлять всеми пользователями в одном клиенте B2C. Мое предложение контролирует разрешение с помощью вашей собственной логики.

Например, пользователь из группы A имеет заявку на группу в токене идентификатора, который сообщает вам, что он из какой группы. Затем, когда он вызывает MS graph, чтобы изменить пользователя, проверьте, из какой группы он принадлежит. Если пользователь, которого он пытается изменить, принадлежит группе A, вы разрешаете это. С помощью этого метода вы можете реализовать администратора из группы A, который может изменять только пользователей из группы A.

Вы также можете использовать групповое утверждение, чтобы реализовать то же самое.

Использованная литература:

Как: добавить роли приложения в приложение и получить их в токене

Настроить регистрацию приложения Azure AD для атрибутов группы

person Allen Wu    schedule 08.01.2021