如何验证ASP.NET WEB API中identityserver4生成的OpenID Connect访问令牌

时间:2018-06-13 14:08:17

标签: c# asp.net-web-api oauth-2.0 openid openid-connect

如何在ASP.NET WEB API中验证由identityserver4生成的OpenID Connect访问令牌。

情景是

  1. 我有一个Angular Client Application,它在登录后获得一个OpenID Connect访问令牌。
  2. 现在,客户端应用程序需要来自一个ASP.NET API的一些信息。 客户可以与访问令牌一起调用API。
  3. 但问题是,如何在ASP.NET API中验证令牌?

    我可以在 ASP.NET CORE API 中轻松完成。

    但我需要解决方案在ASP.NET API中执行相同的操作。(不在核心) 提前谢谢。

    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                    .AddIdentityServerAuthentication(o =>
                    {
                        o.ApiName = "APINameRegisteredInIdentityServer";
                        o.ApiSecret = "SomeAPISecreteValue";
                        o.Authority = "MyAuthorityURL";
                        o.SaveToken = true;
                        o.SupportedTokens = IdentityServer4.AccessTokenValidation.SupportedTokens.Both;
                    });
    

1 个答案:

答案 0 :(得分:0)

您可以使用IdentityServer3.AccessTokenValidation OWIN中间件包,即使对于Identity Server 4令牌 - https://github.com/IdentityServer/IdentityServer3.AccessTokenValidation

此处有样本 - https://github.com/IdentityServer/CrossVersionIntegrationTests