ASP.NET CoreでJWT Bearer認証を実装する方法


以下に、簡単でシンプルな方法でASP.NET CoreでJWT Bearer認証を実装する手順を示します。

  1. NuGetパッケージのインストール: Microsoft.AspNetCore.Authentication.JwtBearerパッケージをプロジェクトに追加します。

  2. Startup.csファイルのConfigureServicesメソッドで、JWT Bearer認証を有効にします。

using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(options =>
        {
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuer = true, // トークンの発行元を検証するかどうか
                ValidateAudience = true, // トークンの受け取り先を検証するかどうか
                ValidateLifetime = true, // トークンの有効期限を検証するかどうか
                ValidateIssuerSigningKey = true, // トークンの署名を検証するかどうか
                ValidIssuer = "your_issuer", // トークンの発行元
                ValidAudience = "your_audience", // トークンの受け取り先
                IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your_secret_key")) // トークンの署名キー
            };
        });
    // その他のサービスの設定
}
  1. Startup.csファイルのConfigureメソッドで、認証を使用するように設定します。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...
    app.UseAuthentication();
    app.UseAuthorization();
    // ...
}
  1. プロテクトされたリソースにアクセスするために、[Authorize]属性をアクションやコントローラに追加します。
[ApiController]
[Route("api/[controller]")]
public class MyController : ControllerBase
{
    [HttpGet]
    [Authorize]
    public IActionResult Get()
    {
        // 認証が成功した場合の処理
    }
}

以上の手順を実装することで、ASP.NET CoreでJWT Bearer認証を利用することができます。この方法を使用すると、セキュリティの高い認証メカニズムを簡単に実装できます。