Подтвердить что ты не робот

Аутентификация веб-API в ASP.NET 5

Я изучаю ASP.NET 5 в течение некоторого времени, и есть кое-что, что я еще не смутил. Чтобы реализовать аутентификацию в Web API 2, я использовал в основном ПО OWIN OAuth Authentication Server Middleware. Он был прост в использовании, я мог настроить только то, что мне было нужно, и не было кучи вещей, которые мне нужно было бы добавить в приложение, не требуя этого.

Теперь, сначала я не нашел это в ASP.NET 5, и я подумал, что нужно подождать, пока появится промежуточное ПО. Но вчера, прочитав о проблемах в репо безопасности, я узнал, что, по-видимому, нет намерения переносить это промежуточное ПО на новую версию фреймворка.

Вместо этого кажется, что людям рекомендуется использовать Identity Server 3. Я взглянул на проект, и хотя это хорошо и имеет много обычаев, я действительно предпочитаю настраивать только тот минимальный, который мне нужен. Кроме того, еще один недостаток заключается в том, что Identity Server 3 нуждается в полной CLR, поэтому, если мне нужно будет использовать его для обеспечения аутентификации в моем приложении, мне нужно будет прекратить использование Core CLR, что для меня является огромным недостатком, поскольку Core CLR - это намного более легкий.

Итак, если я не хочу использовать Identity Server 3 на ASP.NET 5, как я могу реализовать аутентификацию для веб-API, если промежуточное ПО сервера аутентификации OAuth не прошло? Кто-нибудь прошел через это и нашел способ справиться с этим?

Как работать с аутентификацией в веб-интерфейсе ASP.NET 5 без использования Identity Server 3?

4b9b3361

Ответ 1

В самом деле, в ASP.NET 5 не будет OAuthAuthorizationServerMiddleware.

Если вы ищете тот же подход на низком уровне, вы должны взглянуть на AspNet.Security.OpenIdConnect.Server: это расширенная форма для промежуточного программного обеспечения сервера авторизации OAuth2, которое поставляется с Katana 3, но которое нацелено на OpenID Connect, поскольку вы уже разобрался ( Служба авторизации OAuth в ядре ASP.NET).

https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server

OpenID Connect сам основан на OAuth2 и в основном представляет собой надмножество, предлагающее стандартизованные функции аутентификации. Не беспокойтесь: вы можете, конечно, использовать ЛЮБОЙ клиент OAuth2 с ЛЮБЫМ сервером OpenID Connect, включая AspNet.Security.OpenIdConnect.Server.

Не пропустите образец MVC 6: https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/tree/dev/samples/Mvc

app.UseJwtBearerAuthentication(new JwtBearerOptions
{
    AutomaticAuthenticate = true,
    AutomaticChallenge = true,
    Audience = "http://localhost:54540/",
    Authority = "http://localhost:54540/"
});

app.UseOpenIdConnectServer(options =>
{
    options.Provider = new AuthorizationProvider();
});

Удачи, и не стесняйтесь пингуть меня, если вам нужна помощь.

Ответ 2

Я столкнулся с одной и той же проблемой при попытке использовать промежуточное ПО сервера авторизации OWA OAuth в ASP.NET 5, поэтому решил сам портировать код. Вы можете найти источник в этом репозитории GitHub https://github.com/XacronDevelopment/oauth-aspnet или просто использовать пакеты NuGet OAuth.AspNet.AuthServer и OAuth.AspNet.Tokens. Проверьте исходный код, чтобы узнать, как вещи подключены; образцы в источнике - это те же образцы, созданные Microsoft http://bit.ly/1MOGDEJ, за исключением добавленных примеров ASP.NET.