РЕДАКТИРОВАТЬ (28.01.2021): в рамках обновления 3.0 AspNet.Security.OpenIdConnect.Server и OpenIddict были объединены в единую / унифицированную базу кода под эгидой OpenIddict, которая должна предложить лучшее из обоих миров: у вас все равно опыт, как и раньше, но теперь можно выбрать деградированный режим, предоставляет опытным пользователям такой же низкоуровневый подход, что и AspNet.Security.OpenIdConnect.Server.
Итак, мое текущее понимание таково, что IdentityServer4 и OpenIdConnect.Server - это две альтернативные структуры, которые решают одну и ту же проблему. Основное отличие - это список поддерживаемых версий ASP.NET Core.
На самом деле, я считаю, что наиболее важным отличием является то, что эти две библиотеки не преследуют одну и ту же цель. Единственная миссия ASOS - помочь вам разобраться с необработанными деталями протокола OAuth 2.0 / OIDC: все остальное полностью выходит за рамки. Конкретно это означает, что такие концепции, как пользователи, приложения или магазины, которые вы можете найти в OpenIddict и IdentityServer, полностью отсутствуют в ASOS (что означает, что вы можете свободно вносить свою собственную реализацию ... и свою собственную абстракцию).
В то время как IdentityServer будет предоставлять множество абстракций и служб, позволяющих настраивать определенные функции, ASOS, созданный на основе OAuthAuthorizationServerMiddleware
Katana, имеет централизованный низкоуровневый API на основе событий (с именем OpenIdConnectServerProvider
), который ведет себя точно так же, как и безопасность ASP.NET Core. промежуточное ПО, разработанное MSFT.
При работе с ASOS вы должны иметь дело с необработанными запросами OpenID Connect и реализовывать потенциально конфиденциальные вещи, такие как аутентификация клиента (например, с использованием базы данных, содержащей учетные данные клиента), и поэтому основная цель ASOS - это люди, которые понимают, как работает протокол OAuth2 / OIDC. . OpenIddict и IdentityServer, с другой стороны, реализуют эти вещи за вас.
Что касается Openiddict - это своего рода расширение для упрощения создания сервера на базе AspNet.Security.OpenIdConnect.Server.
Изначально меня действительно попросили сделать это именно так. OpenIddict был создан для неспециалистов, которым неудобно разбираться в деталях протокола OAuth 2.0 и OpenID Connect.
Хотя это даст вам полную гибкость для реализации части аутентификации пользователя (например, в вашем собственном контроллере авторизации с использованием ASP.NET Core Identity или вашего собственного метода аутентификации), он будет обрабатывать сложный процесс проверки запроса и сделать его прозрачным для вашего приложения, не утопая вас множеством вариантов конфигурации.
В отличие от ASOS (который старается быть максимально гибким и максимально приближенным к спецификациям), OpenIddict обычно поставляется с более строгими процедурами проверки, которые я лично считаю лучшими. Например, он автоматически отклоняет запросы авторизации, содержащие response_type=token
, если клиент является конфиденциальным приложением, даже если это не запрещено спецификацией OpenID Connect.
person
Kévin Chalet
schedule
10.10.2017