ASP.NETプロジェクトにおけるJWT認証

JWT(JSON Webトークン)は認証に利用されるオープンスタンダードで、安全な情報をクライアントとサーバー間でやり取りできます。

ASP.NETプロジェクトでJWT認証を使用するには、以下の手順があります:

  1. NuGetパッケージの追加: プロジェクトのNuGetパッケージマネージャを開き、System.IdentityModel.Tokens.Jwtパッケージを検索してインストールします。
  2. スタートアップクラスの `ConfigureServices` メソッドに次のコードを追加して認証ミドルウェアを構成します。
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"))
};
});

上のコードにおいて、your_issuer, your_audience, your_secret_keyをあなたの実際のものに置き換える必要があります。それらの値はJWTトークンの検証と署名に使用されます。

  1. Startup.cs
  2. 設定
app.UseAuthentication();

これによってすべての要求が認証されるようになります。

  1. ログインや認証が成功した後は、次のコードを使用してJWTトークンを生成できます。
var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.UTF8.GetBytes("your_secret_key");
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(new Claim[]
{
new Claim(ClaimTypes.Name, "your_username")
}),
Expires = DateTime.UtcNow.AddMinutes(30),
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
};
var token = tokenHandler.CreateToken(tokenDescriptor);
var tokenString = tokenHandler.WriteToken(token);

上記コード内では、your_secret_keyとyour_usernameを実際の値に置き換える必要があります。your_usernameはユーザーのユニークIDです。必要に応じて、他のクレームを追加できます。

  1. [認証済]
[Authorize]
public class MyController : ControllerBase
{
// 要进行身份验证的方法
}

この方法により、有効なJWTトークンを持っている場合のみ、マークされたメソッドまたはコントローラーへのアクセスが可能です。

JWT認証を用いる際には、トークンの安全性を確保することが重要で、鍵の保護やトークンの漏洩対策などを行う必要があります。

bannerAds