jwt - 来自外部发行者的 .NET 5 Web API Jwt 令牌
问题描述
我试图使 .NET 5 Web Api 与 Jwt Bearer 令牌一起使用。我希望通过使用来自另一个发行者的令牌来保护某些操作。令牌将由 MS Azure AD 生成。应用程序将从请求标头中读取令牌,对其进行验证并提取用户的角色以进行更多验证。该应用程序不应该是令牌的发行者。
这可能吗?我尝试了很多方法来使这项工作没有成功。我将 Swagger 设置为将 OpenId Connect 与 Microsoft Azure 一起使用,然后使用承载来调用安全操作,但总是出错。现在我不明白 Dotnet Core 身份验证和授权是如何工作的。
提前致谢!
解决方案
这肯定行得通,但需要了解科学:
天蓝色广告代币
我会首先在在线查看器中查看 JWT。默认设置存在一个已知问题,您会获得无法验证的 JWT 访问令牌。有关详细信息,请参阅我的博客文章的第 3 步。
了解原则
验证 JWT 涉及此博客文章中的一般步骤。一旦你理解了这一点,它有望解除对你的阻止。
API 中的 C# JWT 访问令牌验证
Microsoft 框架经常隐藏所需的逻辑,这并不总是有帮助,我更喜欢的选项是通过库验证 JWT。
旨在了解如何使用 JwtSecurityTokenHandler 类手动验证 JWT,例如在控制台应用程序中。也许从我的这个 C# 代码中借鉴一些想法。
C# 授权
一旦 JWT 验证工作,下一步就是使用 ClaimsPrincipal 中的详细信息来确定是否允许访问数据。不过,我会先了解 JWT 验证。
推荐阅读
- javascript - VerticalTimeline:更改第一个元素的文本颜色
- sql - T-SQL:计算跨列和行的出现次数
- python - MDDropdownMenu 调用者上的 KivyMD KeyError
- java - 如何为 YAML 文件验证设计 maven-checkstyle-plugin?
- ansible - ANSIBLE 访问被拒绝/连接失败
- arrays - 程序未正确终止将二进制转换为十进制
- c# - 如何重定向到静态文件?
- ruby-on-rails - 图像未显示在基于 spree 的 rails 应用程序中
- python - 重叠两个一维网格并使用相对位置与 numpy 进行计算
- java - 如何避免在使用 getScaledInstance 时键入后获得 Null Pointer Deference?