首页 > 解决方案 > 来自外部发行者的 .NET 5 Web API Jwt 令牌

问题描述

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

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

提前致谢!

标签: jwtopenid-connect.net-5bearer-token

解决方案


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

天蓝色广告代币

我会首先在在线查看器中查看 JWT。默认设置存在一个已知问题,您会获得无法验证的 JWT 访问令牌。有关详细信息,请参阅我的博客文章的第 3 步。

了解原则

验证 JWT 涉及此博客文章中的一般步骤。一旦你理解了这一点,它有望解除对你的阻止。

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

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

旨在了解如何使用 JwtSecurityTokenHandler 类手动验证 JWT,例如在控制台应用程序中。也许从我的这个 C# 代码中借鉴一些想法。

C# 授权

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


推荐阅读