2016-11-14 8 views
0

Я работаю над приложением, где мне нужно настроить сервер идентификации 4. У меня есть api как ресурс. и приложение веб-форм в качестве клиента. У меня есть несколько ролей, таких как учителя, ученики, родители в моей базе данных. Как я могу использовать эту настраиваемую базу данных и выполнять аутентификацию и авторизацию без использования идентификатора?с использованием пользовательской базы данных с ролями в сервере идентификации 4

Просьба предложить.

ответ

2

С вашего другого вопроса here Я получаю лучшее представление о том, чего вы хотите.

Я думаю, что одним из решений для вас было бы установить идентификатор server4 в отдельном проекте с собственной отдельной базой данных. Я заметил тег identityserver3, но я думаю, что вполне безопасно использовать идентификатор server4. Это не должно иметь значения для клиента/пользователя, поскольку они концептуально совместимы.

1) Дайте вашему приложению клиент/секрет (который вы настраиваете на сервере идентификации), чтобы идентифицировать ваше приложение и предоставить доступ к ресурсу api. Вот некоторая информация: http://docs.identityserver.io/en/dev/quickstarts/1_client_credentials.html

Вам нужно будет настроить только одного клиента для защиты вашего ресурса снаружи. Единственный способ получить доступ к ресурсу api - через ваше приложение, поскольку ваше приложение выполняет фактические вызовы. Это также является недостатком, вы не можете выставить токен во внешний мир.

Поскольку ваш клиент не является фактическим пользователем, вам нужно будет идентифицировать пользователя. Вы можете использовать любой механизм, основанный на вашей текущей модели, как вам нравится. Простой пользовательский/пропуск (с идентификатором asp.net или без него) может быть достаточным для определения ролей. Но имейте в виду, что ваше приложение имеет полный доступ к ресурсу api.

2) Однако, поскольку имеется личный сервер, почему бы не использовать его? Почему вы не хотите использовать идентификационную модель? Я думаю, вам следует рассмотреть вопрос о разделении идентификационной информации и вашей базы данных. Ваш datamodel не должен знать о безопасности. И безопасность не имеет ничего общего с вашей datamodel.

Когда вы создаете отдельную базу данных для сервера идентификации, у вас есть одно место для настройки пользователей идентификации. Все, что вам нужно, это ссылка (под) пользователю в datamodel. http://docs.identityserver.io/en/dev/quickstarts/2_resource_owner_passwords.html

Добавить претензий или роли, и все будет на месте, и вы увидите, что нет необходимости хранить данные в своей пользовательской базе данных. Структура вашей пользовательской базы данных остается неизменной, включая таблицу пользователя, но без данных идентификации.

Я думаю, что это более безопасное решение, и, учитывая хорошую документацию и примеры проектов, оно может оказаться более быстрым решением.