我一直在研究使用Azure AD构建的API的.NET Core身份验证的基础知识,并且一直在尝试查找有关身份验证方案的信息。我得到了基于Cookie和基于令牌的身份验证之间的区别,但是在我看来,JwtBearer和OpenIdConnect选项非常相似,因为它们都基于令牌系统工作。
我已经进行了很多搜索,但找不到任何地方可以解释两者之间的区别,在这种情况下,您会使用一种方法来代替另一种方法,甚至无法定义这些方法的作用。我看了很多在线教程,甚至各种YouTube视频,其中大约60%使用AddJwtBearer,其他使用AddOpenIdConnect来指定其身份验证方案。有人可以解释这些功能和区别是什么吗?
答案 0 :(得分:2)
AddJwtBearer是用于验证令牌的.Net Core Rest API的默认选项
(在我看来)AddOpenIdConnect由应避免使用的旧服务器端Web应用程序代替(开发单页应用程序)。此选项处理服务器启动的浏览器重定向和发布cookie(uurrgghh)。
对于Rest API,AddJwtBearer可能对您有用,但是如果您想要更好的控制,也可以使用一些不错的扩展性选项。作为示例,我的API write up显示了如何实现基于声明缓存的解决方案..
答案 1 :(得分:0)
我的理解是,您使用 AddJwtBearer 来保护API,这意味着API的客户端发送JWT令牌来访问该API,否则就没有人工干预。
AddOpenIdConnect 用于保护Web应用程序的安全,因为您通常会将用户重定向到身份提供者,因此您可以在该Web应用程序中进行人机交互(登录/注销...)。