Где создавать новых пользователей при использовании IdentityServer4?
Разрабатываю систему на Net Core 5. Предполагается "веб-морда" на ASP Net MVC и несколько Web API. Система корпоративная: создание пользователя возможно только админами, т.е. не будет самостоятельно регистрации пользователем. Также доступ к API планируется выделять сторонним системам. Было решено использовать IdentityServer для аутентификации и авторизации. Рассмотрел несколько примеров и уроков по IdentityServer, но они не сильно отличаются от основных примеров самого identityserver4. Тут возможно даже вопрос к концепции OpenId. Я понимаю, когда я хочу получить доступ к ресурсу, меня кидает на страницу ввода логина и пароля самого IdentitySever(он у меня реализован отдельным подпроектом), затем после успешной аутентификации переходим на запрашиваемую страницу основного сайта. Но где должно происходить создание и редактирование пользователей (новые, блокировка текущих, и т.п.) на основном сайте или опять таки по адресу IdentityServer и там лепить все Controller и View?
Я конечно подозреваю, что этим должен заниматься основной MVC проект а не Identity сервер, но как тогда передаются сведения на сервер аутентификации?
Я реализовывал подобный функционал, если это корп веб-сайт не очень хорошо создавать пользователей прям на сайте.
Другое дело тянуть пользователей из учетных систем (если такие существуют 1С, другие БД) через API и шину RMQ. Реализуется это путем потокового чтения очереди в API.
Стандартная библиотека Identity в ASP.NET Core включает в себя ролевую политику. Заводишь в БД роли User и Administrator.
Первая группа пользователей - это основная группа, данная роль обязательно для каждого пользователя системы, который имеет УЗ и она имеет доступ к основной части функционала после авторизации.
Вторая группа пользователей - это администратор, который имеет доступ к административному контуру.
Создаешь контроллер, выставляешь роли через атрибут: [Authorize(Roles = "Administrator")]. Теперь к методам этого контроллера будут иметь доступ авторизованные пользователи с ролью Administrator.
Там же пилишь список пользователей и функционал блокировки, редактирования и т.п.
Андрей Галкин, спасибо! Про Identity читал и немного юзал - грубо говоря набор правил и алгоритмов для учета пользователей и для их авторизации (эт конечно слишком упрощено). Но вопрос именно про то как взаимодействовать с IdentityServer. Пользователей тянуть неоткуда, их создавать самим.
Привет,
Авторизация на основе ролей позволяет вам разграничивать функционал. То есть, вы можете сделать один сайт, у кого будут роли на управление пользователей, будут видеть пункт в меню и саму страницу.
Проще для разработки и развития системы разделять клиентскую часть и админку, если они не пересекаются - две веб морды.
Так же, если апишками будут пользоваться третьи лица, посмотрите другие способы аутентификации, например, почитайте про JWT токены