【问题标题】:.NET 5 Web API Jwt Token from external issuer来自外部发行者的 .NET 5 Web API Jwt 令牌
【发布时间】:2021-12-23 12:06:21
【问题描述】:

我正在尝试使 .NET 5 Web Api 与 Jwt Bearer 令牌一起使用。我希望通过使用来自另一个发行者的令牌来保护某些操作。令牌将由 MS Azure AD 生成。应用程序将从请求标头中读取令牌,对其进行验证并提取用户角色以进行更多验证。应用程序不应该是令牌的发行者。

这可能吗?我尝试了很多方法来使这项工作没有成功。我将 Swagger 设置为将 OpenId Connect 与 Microsoft Azure 一起使用,然后使用承载来调用安全操作,但总是出错。现在我不明白 Dotnet Core 身份验证和授权是如何工作的。

提前致谢!

【问题讨论】:

    标签: jwt openid-connect .net-5 bearer-token


    【解决方案1】:

    这肯定行得通,但需要了解科学:

    AZURE 广告令牌

    我首先会在在线查看器中查看 JWT。默认设置存在一个已知问题,您会获得无法验证的 JWT 访问令牌。详情请见Step 3 of my blog post

    了解原则

    验证 JWT 涉及this blog post 中的一般步骤。一旦您了解这一点,它有望解除对您的阻止。

    API 中的 C# JWT 访问令牌验证

    Microsoft 框架通常会隐藏所需的逻辑,这并不总是有帮助,我更喜​​欢的选项是通过库来验证 JWT。

    旨在了解如何使用 JwtSecurityTokenHandler 类手动验证 JWT,例如在控制台应用程序中。或许可以借鉴this C# code of mine的一些想法。

    C# 授权

    一旦 JWT 验证工作,下一步就是使用 ClaimsPrincipal 中的详细信息来确定是否允许访问数据。不过,我会先了解 JWT 验证。

    【讨论】:

      猜你喜欢
      • 2021-11-06
      • 2019-09-24
      • 2021-01-28
      • 2018-09-21
      • 2016-06-16
      • 2018-02-17
      • 1970-01-01
      • 2018-07-18
      • 2019-05-01
      相关资源
      最近更新 更多