プロジェクトOAuth
bearer
であるAPIにリクエストが送信されたときに渡されるトークンを検証する正確な方法を見つけるのに苦労していますAsp.Net core
。
ここでの目的は、ベアラトークンとValidate
それを抽出することです。すべて問題がなければ、リクエストを続行します。
これまでのところ、私の調査結果は次のことに出くわしました
主に話しているJWTベアトークン認証 access_token
Asp.Netコアセキュリティミドルウェア
これを処理するカスタム承認属性。
検証をどのように達成できるか本当にわかりませんか?ベアラトークンを抽出してから、カスタム検証メソッドを作成する必要がありますか?
理想的には、[Authorize]
属性がこれを処理することを望みます。
提案をお願いしますか?
さらに調査を重ねた結果、Asp.Net Coreで提案されていないAuthorizationHandler
カスタムAuthorize
属性を使用する場合を想定して、カスタムがより適切なソリューションであることがわかりました。
セットアップは簡単でBearer
、ヘッダーからトークンを抽出して、を使用してさらに認証することができますOAuth
。
これが私のアプローチです:
public class CustomAuthorizationHandler: IAuthorizationHandler
{
public Task HandleAsync(AuthorizationHandlerContext context)
{
var authFilterCtx = (Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext)context.Resource;
string authHeader = authFilterCtx.HttpContext.Request.Headers["Authorization"];
if (authHeader != null && authHeader.Contains("Bearer"))
{
var token = authHeader.Replace("Bearer", "");
// Now token can be used for further authorization
}
throw new NotImplementedException();
}
}
最後にハンドラーをに登録します Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IAuthorizationHandler, CustomAuthorizationHandler>();
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加