.NET Core API端用户授权及JWT配置技术问询
.NET Core Web应用JWT令牌服务核心配置
我正在开发一个同时包含API和前端网站的.NET Core Web应用,目前用Web服务来生成JWT令牌做身份验证。下面是我整理后的核心服务配置代码(已经移除了无关的配置内容):
public void ConfigureServices(IServiceCollection services) { //... 其他服务配置 var tokenValidationParameters = new TokenValidationParameters { // 签名密钥必须匹配! ValidateIssuerSigningKey = true, IssuerSigningKey = signingKey, // 验证JWT的Issuer(iss)声明 ValidateIssuer = true, ValidIssuer = "ExampleIssuer", // 其他验证配置(已省略) // ValidAudience = "...", // ValidateAudience = true, // ... }; //... 后续将tokenValidationParameters用于身份验证中间件配置 }
关于这些核心配置项的作用,我整理了一下:
- ValidateIssuerSigningKey = true:强制验证令牌的签名密钥,这是防止令牌被恶意篡改的核心校验,必须开启。
- IssuerSigningKey = signingKey:指定我们用来验证令牌签名的密钥,这里的
signingKey需要和生成JWT时使用的签名密钥保持一致(如果是对称加密就是同一个密钥,非对称加密则用公钥)。 - ValidateIssuer = true:开启颁发者验证,确保令牌是由我们预先信任的服务生成的,避免接受来自未知来源的令牌。
- ValidIssuer = "ExampleIssuer":明确指定信任的颁发者标识,只有令牌中的
iss声明值和这个字符串完全匹配,验证才会通过。
内容的提问来源于stack exchange,提问作者Matthias Burger
相关产品推荐
相关产品推荐

