导航菜单

软件工程/安全与身份认证
课程进度 65% · 第7/10章7/10章 · 标签 1/2
1

JWT身份认证

JWT(JSON Web Token)是无状态的认证方案,广泛应用于API安全保护。

csharp
1
// 配置 JWT 认证
2
builder.Services.AddAuthentication("Bearer")
3
.AddJwtBearer(options => {
4
options.TokenValidationParameters =
5
new TokenValidationParameters {
6
ValidateIssuer = true,
7
ValidateAudience = true,
8
ValidateLifetime = true,
9
ValidIssuer = "MyApp",
10
ValidAudience = "MyAppUsers",
11
IssuerSigningKey = new SymmetricSecurityKey(
12
Encoding.UTF8.GetBytes("your-secret-key-here"))
13
};
14
});

!密钥需要足够复杂,生产环境建议使用非对称加密(RSA)并从安全存储读取

2

授权策略

通过 [Authorize] 特性控制API访问权限,支持角色和策略授权。

csharp
1
// 角色授权
2
[Authorize(Roles = "Admin")]
3
public IActionResult AdminOnly() { ... }
4
 
5
// 策略授权
6
builder.Services.AddAuthorization(options => {
7
options.AddPolicy("RequireAdmin",
8
policy => policy.RequireRole("Admin"));
9
});
10
 
11
[Authorize(Policy = "RequireAdmin")]
12
public class AdminController : ControllerBase { ... }
13
 
14
// 获取当前用户信息
15
var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
JWTOAuth2认证授权Bearer安全