Asp.net web api 令牌身份验证和SSL

Asp.net web api 令牌身份验证和SSL,asp.net-web-api,oauth-2.0,jwt,openid-connect,Asp.net Web Api,Oauth 2.0,Jwt,Openid Connect,我对保护API的这一领域比较陌生。我职业生涯的大部分时间都是在为组织开发内部产品,或者加入一个已经实现了安全性的产品(通常不会改变) 在阅读JWT和Identity server时,我理解了签名的作用以及将授权和身份验证分开的必要性。但是,有一件事让我觉得很奇怪: 如果我的用户即将获得一个签名的令牌并使用它来验证自己,并且有一个“中间人”正在侦听和复制该令牌,那么他可以模拟我的用户吗?(我相信答案是肯定的) 因此,我最好的选择是在每次调用API时使用SSL。代币是暂时的,对安全的威胁也不小 所以

我对保护API的这一领域比较陌生。我职业生涯的大部分时间都是在为组织开发内部产品,或者加入一个已经实现了安全性的产品(通常不会改变)

在阅读JWT和Identity server时,我理解了签名的作用以及将授权和身份验证分开的必要性。但是,有一件事让我觉得很奇怪: 如果我的用户即将获得一个签名的令牌并使用它来验证自己,并且有一个“中间人”正在侦听和复制该令牌,那么他可以模拟我的用户吗?(我相信答案是肯定的) 因此,我最好的选择是在每次调用API时使用SSL。代币是暂时的,对安全的威胁也不小

所以,我的问题是: 如果我最终在API调用中使用SSL,那么签名有什么好处?使用SSL,通信量无论如何都是隐藏的,没有人可以篡改它。浏览器可能会将用户名和密码作为纯文本使用,它们不会被公开。
我在这里遗漏了什么?

我认为所有这些都可以归结为JWT在协议(OIDC)中的作用

在OIDC中,是一个JWT。如果你通过,你就会遇到

在信托决策中不能依赖JWT的内容 除非其内容已加密保护并绑定到 信任决策所需的上下文

从OIDC的角度来看,信任决策是基于ID令牌中包含的声明对最终用户进行身份验证。只有在验证符合JWT规范的情况下,才能执行此操作。所以基本上这是OIDC协议和JWT规范的要求

现在谈谈SSL。OIDC包含获得最终令牌响应所需的几个其他调用。这些调用包含客户端标识符、机密和授权代码(取决于流)。OIDC基于OAuth 2.0和OAuth 2.0(TLS是新名称)构建。因此,OIDC也需要SSL

总之,SSL(TLS)可以防止在请求和响应在线路中流动期间发生攻击。JWT的签名保证令牌的真实性,而不依赖于它是如何接收的或应用程序的哪个组件处理它