.NET Core Identity против IdentityServer4

Вопрос: следует ли использовать .Net Core Identity или IdentityServer 4 с Identity

Мне нужно создать приложение с функцией входа / регистрации и разрешить пользователям использовать API для импорта / экспорта данных из моего программного обеспечения. Я также хочу иметь внешние логины, такие как google, twitter и т. Д.

И я не могу понять, зачем мне нужен Identity Server, когда все можно делать, используя только Identity.

Зачем мне нужен IdentityServer? Мне просто нужно, чтобы работа была сделана правильно и как можно проще.


person ferdinand    schedule 20.01.2018    source источник
comment
medium. ru / the-new-control-plane /   -  person rbrayb    schedule 13.12.2019
comment
Если я не планирую интегрировать сторонний вход в систему, можно ли игнорировать / удалять сервер идентификации из моего приложения.   -  person Nest    schedule 15.11.2020


Ответы (2)


Это зависит.

IdentityServer предоставит вам реализацию OAuth 2.0 и OpenID Connect и обработает все детали за вас (предоставит вам конечные точки, управление токенами, объемы, гранты и т. Д.). Он работает независимо, поэтому вы можете использовать его для нескольких клиентов (SPA, мобильные приложения, веб-приложения), и он хорошо изолирован от остальной части вашего приложения. При желании вы можете использовать его вместе с ASP.NET Core Identity.

Если вы не используете IdentityServer, вам придется написать некоторые из этих вещей самостоятельно, потому что ASP.NET Core Identity - это система членства, и она не предоставляет готовых к использованию конечных точек, а также управления токенами или поддержки различных способов авторизации. .

Вам нужно оценить, лучше ли вам написать эти вещи самостоятельно, но иметь более простую настройку, потому что вам, вероятно, не нужно все, что предоставляет IdentityServer, хотя это может ограничить вас в будущем.

Вы также можете взглянуть на OpenIddict, который менее сложен, чем IdentityServer.

person Tomáš Linhart    schedule 20.01.2018

Вы действительно не можете сравнивать эти два.

ASP.NET Identity - это API базы данных для управления пользователями, ролями, утверждениями, токенами подтверждения электронной почты и т.д. Что-то, что вы можете использовать для реализации регистрации, входа в систему, смены пароля и т. Д.

IdentityServer - это реализация OpenID Connect и OAuth 2.0. Он предоставляет такие функции, как единый вход и контроль доступа через API. Это полезно, если вы хотите разделить пользователей между несколькими клиентскими приложениями.

Вы можете комбинировать и то, и другое - используйте IdentityServer для работы протокола и ASP.NET Identity для управления пользователями на вашей центральной странице входа.

person leastprivilege    schedule 21.01.2018
comment
Работа протокола @kuldeep, скорее всего, означает поток авторизации, запрос токенов и прочее. - person ViRuSTriNiTy; 28.02.2020