Для проекта, над которым я работаю, мне нужно создать два отдельных (но не полностью не связанных) приложения с общим сервером идентификации. Я выбрал IdentityServer4 для этой цели, и он работает хорошо для меня.Авторизация Ассистента Core/IdentityServer
Однако мне нужно иметь возможность назначать пользователей нескольким компаниям/проектам (да, это реальный случай жизни) и, возможно, разные роли в каждом из них. Однако я не смог разработать структуру претензий для этого.
Я вижу два подхода, которые могли бы решить эту проблему;
Создание сложных претензий для каждой компании/проекта, который будет содержать CompanyID и роль пользователя в этой компании. Что может быть в форме JSON или пользовательской строке, например,
companyGUID_roleClaim
Однако, когда я сделал небольшое исследование об этом, я понял, что есть много людей, которые не считают, что это правильный подход, поскольку они считают, что претензии должны быть простыми ключевыми словами, пары значений.Позволяет приложениям связывать/запрашивать базу данных Identity для извлечения компаний/проектов и ролей, связанных с активным пользователем, и защиты ресурсов с использованием политик на основе этих данных.
Возможно, я смотрю на него с неправильной стороны или один из этих двух является приемлемым. Или есть другое решение. Не могли бы вы помочь мне найти решение этой проблемы?