Я пытаюсь понять общую картину при создании нового веб-сайта с использованием ASP.NET Core. Я хочу, чтобы пользователи моего сайта могли регистрироваться и входить в социальные сети, такие как Facebook и Google. После регистрации, когда они отправляют запросы в мой WebAPI на ресурсы, мне нужно знать, какой пользователь вошел в систему, чтобы запросы ресурсов можно было персонализировать для пользователя. Я поиграл с ASP.NET Core Identity, и это, кажется, обеспечивает большую часть функциональности того, что мне нужно - например, регистрация у внешних провайдеров, вход в систему и сохранение этих данных в базе данных с использованием Entity Framework - однако с немного больше волшебства, чем мне бы хотелось - во многих руководствах перечислены шаги, чтобы заставить его работать, не объясняя, как это работает в фоновом режиме, например, для общения с Facebook.
Во внешнем интерфейсе я собираюсь использовать Aurelia, и я заметил несколько учебных пособий, в которых используется Identity Server, который, как я понимаю, является реализацией OpenIDConnect.
Прочитав видео о IdentityServer ... Я понимаю, что вы можете использовать ASP.NET Core Identity с IdentityServer. Чего я не понимаю, так это того, что мне было бы полезно просто реализовать ASP.NET Core Identity. (Тем не менее, я не могу найти учебники по интеграции Aurelia, ASP.NET Core Identity ...) Каково преимущество добавления большей сложности с Identity Server по сравнению с простым использованием ASP.NET Core Identity?
Ответы:
Identity Server позволяет выдавать токены доступа для API. По своему опыту я видел, что он используется только тогда, когда приложение требует настраиваемой аутентификации OAuth 2.0, которая не может быть предоставлена поставщиками аутентификации, поддерживаемыми ASP.Net Core. Если ваш сайт может использовать одного из существующих поставщиков OAuth 2.0, то нет никаких преимуществ в настройке и управлении вашим собственным экземпляром Identity Server.
источник