web-dev-qa-db-ja.com

OAuth ASP.NET Coreの承認サービス

Web API 2では、以下のようなミドルウェアを介してOAuth Authorization Serverを設定することにより、トークンを発行するエンドポイントを作成できるようになりました。

//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);

おそらく私はそれを見逃していますが、ASP.NET Coreでこれを行う方法を見つけようとしています。ソースに目を通しました( https://github.com/aspnet/Security )が、実際には類似したものは見当たりません。これを達成する新しい方法はありますか?コントローラーを作成して自分で行う必要がありますか?

OAuthミドルウェアを介して認証を設定する方法はわかりますが、これはAPIからクレームを発行する承認部分に関するものです。

56
swannee

ASP.NET CoreでOAuthAuthorizationServerMiddlewareの代替を探すのに時間を無駄にしないでください。ASP.NETチームは単にそれを移植しないことに決めました: https://github.com/aspnet/Security/ issues/8

AspNet.Security.OpenIdConnect.Serverをご覧になることをお勧めします。これは、Katana 3に付属するOAuth2承認サーバーミドルウェアの高度なフォークです。OWINがあります。/Katana 3バージョン、および.NETフレームワークと.NET Coreの両方をサポートするASP.NET Coreバージョン。

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

ASP.NET Core 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 Core 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();
});

このプロジェクトの詳細については、 http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction/ を読むことをお勧めします=。

幸運を!

72
Pinpoint

元のOAuth ASP.NET 5の承認サーバーをまだ探している人のために、コードと元のサンプルをここに移植しました: https://github.com/XacronDevelopment/ oauth-aspnet

ポートには、ASP.NET 4.xリソースサーバーが承認サーバーによって作成されたアクセストークンを読み取れるようにする下位互換性が含まれています。

Nugetパッケージは次のとおりです。 https://www.nuget.org/packages/OAuth.AspNet.AuthServerhttps://www.nuget.org/packages/OAuth.AspNet。トークンhttps://www.nuget.org/packages/OAuth.Owin.Tokens

3
Xacron