web-dev-qa-db-ja.com

ASP.NET 5でのWeb API認証

私はASP.NET 5をしばらく研究してきましたが、まだ混乱しています。 Web API 2で認証を実装するために私が使用していたことは、基本的にOWINを使用することでしたOAuth Authentication Server Middleware。使いやすく、必要なものだけを構成できました。私はそれを必要とせずにアプリに置くために必要なものの束。

さて、最初はASP.NET 5ではこれが見つかりませんでした。ミドルウェアが表示されるのを待つのは時間の問題だと思いました。しかし、昨日、セキュリティリポジトリの問題を読んだところ、明らかに、このミドルウェアを新しいバージョンのフレームワークに移植する意図はないことがわかりました。

代わりに、Identity Server 3の使用が推奨されているようです。プロジェクトを確認しました。ニースで多くの使用方法がありますが、必要な最小限のものだけを構成したいのです。また、もう1つの欠点は、Identity Server 3が完全なCLRを必要とすることです。そのため、アプリケーションで認証を提供するためにそれを使用する必要がある場合、Core CLRの使用を停止する必要があります。これはhugeです。 =コアCLRの方がはるかに軽量であるため、欠点。

したがって、ASP.NET 5でIdentity Server 3を使用したくない場合、OAuth Authentication Serverミドルウェアがなくなった場合、どうすればWeb APIの認証を実装できますか?それとそれに対処する方法を見つけましたか?

Identity Server 3を使用せずにASP.NET 5 Web APIで認証を処理する方法

22
user1620696

実際、ASP.NET 5にはOAuthAuthorizationServerMiddlewareはありません。

同じ低レベルのアプローチを探している場合は、AspNet.Security.OpenIdConnect.Serverをご覧ください。これは、Katana 3に付属しているOAuth2承認サーバーミドルウェアの高度なフォークですが、すでにおわかりのように、OpenID Connectを対象としていますout( ASP.NET CoreのOAuth Authorization Service )。

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

OpenID Connect自体はOAuth2に基づいており、基本的には標準化された認証機能を提供するスーパーセットです。心配する必要はありません。もちろん、AspNet.Security.OpenIdConnect.Serverを含む任意のOpenID Connectサーバーで任意のOAuth2クライアントを使用できます。

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();
});

幸運を祈ります。助けが必要な場合は、遠慮なくpingしてください。

11
Kévin Chalet

ASP.NET 5でOWIN OAuth Authorization Serverミドルウェアを使用しようとしたときに、まったく同じ問題が発生しました。コードを自分で移植することにしました。ソースはこのGitHubリポジトリで見つけることができます。 https://github.com/XacronDevelopment/oauth-aspnet または、NuGetパッケージのOAuth.AspNet.AuthServerおよびOAuth.AspNet.Tokensを使用します。ソースコードをチェックして、どのように接続されているかを確認してください;ソースのサンプルは、Microsoftがここで作成したサンプルと同じです http://bit.ly/1MOGDEJ ASP.NET 5の例が追加されています。

0
Xacron