微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 OpenID 配置确保 JWT 令牌的来源

如何解决通过 OpenID 配置确保 JWT 令牌的来源

我们使用 Auth0 在 .NET Core 解决方案中对用户进行身份验证。

ConfigureServices 中,以下配置适用于身份验证过程:

public void ConfigureServices(IServiceCollection services)
{
    var domain = "https://dev-xxxxxxx.eu.auth0.com/";
    var audience = "https://dev-xxxxxxx.eu.auth0.com/api/v2/";

    var configManager = new ConfigurationManager<OpenIdConnectConfiguration>($"{domain}.well-kNown/openid-configuration",new OpenIdConnectConfigurationRetriever());

    var openidconfig = configManager.GetConfigurationAsync().Result;

    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,options =>
        {
            options.TokenValidationParameters = new TokenValidationParameters()
            {
                IssuerSigningKeys = openidconfig.SigningKeys,ValidateIssuerSigningKey = true,ValidAudience = audience,ValidateAudience = true,Validissuers = new[] { domain },ValidateIssuer = true,RequireExpirationTime = true,ValidateLifetime = true,RequireSignedTokens = true,};

            options.RequireHttpsMetadata = true;
        });
}

对此 API 的测试调用(带有和不带有授权标头)以预期的授权/未授权结果结束。

我的问题是:这些设置(openId、IssuerSigningKeys、验证器)是否足够安全以确保任何收到的 JWT 令牌都是有效的,并且实际上是由 domain 颁发的,并且令牌没有以任何方式被篡改?

换句话说:是否(仍然)可以手动生成声称由 domain 发布的 JWT 令牌?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。