IdentityServer4 несколько типов пользователей

Мы создаем веб-приложение (интерфейс Angular + ядро ​​сети Asp), в котором у нас есть 2 разных типа пользователей.

1) Торговец

2) Клиенты

Идея состоит в том, что (немного похоже на Deliveroo) покупатели могут выбирать товары у разных продавцов и добавлять их в свою корзину.

Нам нужно внешнее приложение для клиентов и еще одно приложение для продавцов, чтобы они могли управлять своей учетной записью. В настоящее время мы используем IdentityServer4, и возникает вопрос: нужно ли нам обслуживать 2 экземпляра IdentityServer, 1 для клиентов и 1 для продавцов? Или нам нужно хранить их все в одной базе данных? Затем использовать что-то вроде мультиарендности?


person marayfirth    schedule 12.07.2017    source источник
comment
Различие звучит очень похоже на Role. Пользователи вашей системы могут иметь одну из двух разных ролей: продавец или покупатель. Вы можете или не можете иметь два разных приложения (они же клиенты) или просто управлять обеими ролями через один клиент.   -  person Mashton    schedule 13.07.2017
comment
@marayfirth ты нашел свой путь?   -  person MJK    schedule 13.07.2017
comment
Я все еще работаю над этим. Дело в том, что я не хотел заново реализовывать всю логику идентификации. Я хотел, чтобы уникальным ключом было {имя пользователя, тип пользователя}, а не просто имя пользователя (определяемое личностью). Это ограничение, с которым роль не может справиться, по крайней мере, на уровне базы данных (или делает?). Итак, я начал мягко после прочтения этого: Идентификация ASPNET/. Я добавил столбец типа TenantId, и это нормально для регистрации пользователя. Спасибо за совет :)   -  person marayfirth    schedule 13.07.2017
comment
@marayfirth, помечая ответ, укрепляет вашу репутацию и ответчика :)   -  person MJK    schedule 14.07.2017


Ответы (1)


Представляем IdentityServer4 для аутентификации.., опубликованный Броком Алленом и Домиником Байером.

Современным приложениям нужна современная идентичность. Протоколы, используемые для реализации таких функций, как аутентификация, единый вход, управление доступом к API и федерация, — это OpenID Connect Connect и OAuth 2.0. IdentityServer — это популярная платформа с открытым исходным кодом для реализации аутентификации, единого входа и управления доступом к API с использованием ASP.NET.

Не уверен, почему вы думаете, что вам нужны два сервера идентификации, но я понимаю, что у вас должен быть один IdServer, который будет сервером для нескольких клиентов. Согласно IdentityServer, два приложения — продавец и клиент — не что иное, как Клиент.

Вы можете использовать userclaim, чтобы разрешить пользователям доступ к ограниченным действиям. У вас может быть две роли «Клиент» или «Продавец» и т. д. И добавьте политику авторизации, если у вас разные уровни доступа в одном приложении. Но для двух разных приложений у вас может быть другой клиент с разными областями, которые вам нужно определить в конфигурации вашего приложения.

Вы также можете поддерживать мультиарендность, добавив утверждение пользователя, например. идентификатор арендатора. В этом случае, если вы используете идентификатор asp.net, вам необходимо настроить свой контекст.

person MJK    schedule 12.07.2017