【问题标题】:How to Validate OpenID Connect Access Token generated by identityserver4 in ASP.NET WEB API如何在 ASP.NET WEB API 中验证 identityserver4 生成的 OpenID Connect 访问令牌
【发布时间】:2018-11-23 03:49:05
【问题描述】:

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

场景是

  1. 我有一个 Angular 客户端应用程序,它在登录后获得一个 OpenID Connect 访问令牌。
  2. 现在客户端应用程序需要来自一个 ASP.NET API 的一些信息。 客户端可以连同访问令牌一起调用 API。

但问题是,我应该如何在我的 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;
                });

【问题讨论】:

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


    【解决方案1】:

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

    这里有样片-https://github.com/IdentityServer/CrossVersionIntegrationTests

    【讨论】:

    • 嗨 devdigital,我在问题中已经提到过,我可以在 ASP.NET CORE 中执行此操作。我需要 ASP.NET Framework API 模板的解决方案。
    • 这适用于基于 OWIN 的 .NET 4.x 项目,而不是 .NET Core
    • 如果您不是基于 OWIN,转换为 OWIN 会更容易
    • 您好 devdigital,您能否提供示例如何验证 API 中的访问令牌...或如何使用 OPEN ID CONNECT 保护 API?或者有人帮我如何使用这个 Nuget? nuget.org/packages/Microsoft.Owin.Security.OpenIdConnect
    • 大家好 - 请帮帮我,我从过去 5 天开始就被困在这里......需要帮助......提前致谢
    猜你喜欢
    • 2020-02-25
    • 2023-02-24
    • 2023-03-30
    • 2019-02-07
    • 2017-06-17
    • 2014-09-12
    • 2021-02-01
    • 2017-05-14
    • 1970-01-01
    相关资源
    最近更新 更多