C# 在云中验证JWT时出现问题,但在本地它可以正常工作
我在JwtSecurityTokenHandler中遇到了一个恼人的问题。我找不到这种行为的原因。我正在尝试验证从Azure Ad B2C收到的令牌 我正在使用这些验证参数:C# 在云中验证JWT时出现问题,但在本地它可以正常工作,c#,azure,jwt,cloud,token,C#,Azure,Jwt,Cloud,Token,我在JwtSecurityTokenHandler中遇到了一个恼人的问题。我找不到这种行为的原因。我正在尝试验证从Azure Ad B2C收到的令牌 我正在使用这些验证参数: private TokenValidationParameters GetValidationParameters(RSA rsa, string audience, string issuer) { return new TokenValidationParameters()
private TokenValidationParameters GetValidationParameters(RSA rsa, string audience, string issuer)
{
return new TokenValidationParameters()
{
ValidateLifetime = true,
ValidateAudience = true,
ValidateIssuer = true,
ValidateIssuerSigningKey = true,
ValidAudience = audience,
ValidIssuers = new List<string>() { issuer },
IssuerSigningKey = new RsaSecurityKey(rsa)
};
}
TokenValidationParameters validationParameters = GetValidationParameters(rsa, audience, issuer);
IPrincipal principal = tokenHandler.ValidateToken(token, validationParameters, out SecurityToken validatedToken);
在本地运行时,一切正常。但在我的Azure函数上运行它时,它会不断抛出SecurityTokenInvalidIssuereException
令牌是完全相同的,但是本地和云中的令牌验证参数也是一样的
云计算中提供的发卡机构:
local.settings.json中的颁发者:
本地运行时的行为
正如您在这里看到的,验证成功并返回SecurityToken
云中的行为(Azure功能)
这就是我从云中执行方法的时候
正如您在控制台中看到的,它返回SecurityTokenInvalidIssuerException
这个问题似乎与云计算有关,但我到底做错了什么