Usługa autoryzacji OAuth w ASP.NET Rdzeń

W Web API 2, można było utworzyć punkt końcowy, aby wydać token, konfigurując serwer autoryzacji OAuth za pośrednictwem oprogramowania pośredniczącego, jak poniżej:

//Set up our auth server options.
var OAuthServerOptions = new OAuthAuthorizationServerOptions()
            {
                AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = new SimpleAuthorizationServerProvider()
            };

 // Sets up the token issue endpoint using the options above
 app.UseOAuthAuthorizationServer(OAuthServerOptions);

Być może mi go brakuje, ale staram się wymyślić, jak to zrobić w ASP.NET Rdzeń. Przejrzałem źródło ( https://github.com/aspnet/Security ) ale tak naprawdę nie widzę nic analogicznego. Czy istnieje nowy sposób, aby to osiągnąć? Czy muszę po prostu stworzyć kontroler i zrobić to sam?

I see how Uwierzytelnianie OAuth można skonfigurować za pomocą oprogramowania pośredniczącego, ale dotyczy to części autoryzacyjnej, w której wystawiam roszczenia z mojego API.

Author: Set, 2015-03-15

2 answers

Nie trać czasu na szukanie OAuthAuthorizationServerMiddleware alternatywy w ASP.NET Core, the ASP.NET zespół po prostu postanowił nie przenosić go: https://github.com/aspnet/Security/issues/83

Proponuję zajrzeć do AspNet.Ochrona.OpenIdConnect.Serwer , zaawansowany fork oprogramowania pośredniczącego serwera autoryzacji OAuth2, który jest dostarczany z kataną 3: Istnieje wersja OWIN / Katana 3 i ASP.NET wersja podstawowa, która obsługuje zarówno pełny. NET framework, jak i. NET Rdzeń.

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

ASP.NET Rdzeń 1.x:

app.UseOpenIdConnectServer(options =>
{
    options.AllowInsecureHttp = true;
    options.TokenEndpointPath = new PathString("/token");
    options.AccessTokenLifetime = TimeSpan.FromDays(1);
    options.TokenEndpointPath = "/token";
    options.Provider = new SimpleAuthorizationServerProvider();
});

ASP.NET Rdzeń 2.x:

services.AddAuthentication().AddOpenIdConnectServer(options =>
{
    options.AllowInsecureHttp = true;
    options.TokenEndpointPath = new PathString("/token");
    options.AccessTokenLifetime = TimeSpan.FromDays(1);
    options.TokenEndpointPath = "/token";
    options.Provider = new SimpleAuthorizationServerProvider();
});

Aby dowiedzieć się więcej o tym projekcie, polecam przeczytać http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction/.

Powodzenia!
 62
Author: Pinpoint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-16 17:54:08

Dla wszystkich, którzy wciąż szukają oryginalnego serwera autoryzacji OAuth w ASP.NET 5, przeportowałem kod i oryginalną próbkę tutaj: https://github.com/XacronDevelopment/oauth-aspnet

Port zawiera kompatybilność wsteczną, aby umożliwić ASP.NET 4.x serwery zasobów do odczytu tokenów dostępu utworzonych przez serwer autoryzacji.

Pakiety nuget są tutaj: https://www.nuget.org/packages/OAuth.AspNet.AuthServer https://www.nuget.org/packages/OAuth.AspNet.Tokens https://www.nuget.org/packages/OAuth.Owin.Tokens

 3
Author: Xacron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-21 17:11:52