繁体   English   中英

Web API从自定义身份验证提供程序验证JWT承载令牌

[英]Web API Validate JWT Bearer Token from Custom Auth Provider

我一直在寻找一个示例或教程几个小时,并认为我应该发布一些东西。

我正在尝试从我的.Net 4.7.2 Web Api 2项目中的自定义Auth提供程序验证持有者令牌。 我有一个SPA应用程序从该身份验证提供程序获取持有者令牌,并将持有者令牌发送到我的WebApi端点。 我需要转身并验证每个请求中的令牌。 我认为有一种方法可以指向Microsoft.Owin.Security.Jwt命名空间中的类,以根据身份验证提供程序众所周知的发现信息url验证令牌。

有没有人之前做过这个或者指向一个好的图书馆/文档/教程?

我知道我可以编写自己的身份验证请求过滤器,然后从auth服务器下载公共证书并解析令牌并验证签名,但对我来说,使用相应的库来编写自己似乎是一个可怕的想法。

好的结果我在这里找到了一个很好的例子

以下代码设置我们的webapi以使用我们的自定义身份验证提供程序验证令牌,同时通过OIDC发现URL发现公钥。

   var issuer = "https://my-auth-provider-here/";

    IConfigurationManager<OpenIdConnectConfiguration> configurationManager = 
        new ConfigurationManager<OpenIdConnectConfiguration>($"{issuer}.well-known/openid-configuration", new OpenIdConnectConfigurationRetriever());

    OpenIdConnectConfiguration openIdConfig = configurationManager.GetConfigurationAsync(CancellationToken.None).Result;

    appBuilder.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions()
    {
        AuthenticationMode = AuthenticationMode.Active,
        TokenValidationParameters = new TokenValidationParameters()
        {
            AuthenticationType = "Bearer",
            ValidIssuer = issuer,
            ValidateAudience = false,
            IssuerSigningKeys = openIdConfig.SigningKeys
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM