Asp.net JWT认证的工作流程
我的任务是为客户创建一个面向服务的生态系统。整个过程都将基于REST并在ASP.NET中构建,但我的问题是技术不可知。我们希望有一个集中的身份验证服务,该服务发布JWT令牌和声明,这些令牌和声明受环境中其他服务的信任 我的问题是——web客户端(浏览器)请求的第一件事是什么?我所看到的所有图表(我将尝试添加几个示例链接)都使客户机似乎需要自我意识,并意识到他们在向功能性REST服务发出第一个请求之前需要一个令牌,这对我来说似乎很简陋 我希望它工作的方式是,他们只是尝试访问受保护的资源,但请求中没有身份验证令牌。我的REST服务向他们询问用户/密码,然后将身份验证委托给我的身份验证服务。因此:Asp.net JWT认证的工作流程,asp.net,rest,authentication,soa,jwt,Asp.net,Rest,Authentication,Soa,Jwt,我的任务是为客户创建一个面向服务的生态系统。整个过程都将基于REST并在ASP.NET中构建,但我的问题是技术不可知。我们希望有一个集中的身份验证服务,该服务发布JWT令牌和声明,这些令牌和声明受环境中其他服务的信任 我的问题是——web客户端(浏览器)请求的第一件事是什么?我所看到的所有图表(我将尝试添加几个示例链接)都使客户机似乎需要自我意识,并意识到他们在向功能性REST服务发出第一个请求之前需要一个令牌,这对我来说似乎很简陋 我希望它工作的方式是,他们只是尝试访问受保护的资源,但请求中没
关于我的意思,请参见图1:从最后一个问题开始,将使其余答案更加清晰:
- “…是由web客户端自动保存的JWT令牌,并在每次请求时重新发送…”这个想法是发出JWT一次,将其发送给客户端,以便客户端可以保存它并在每次后续请求时发送它。这样,您的前端应用程序将只发送一次用户名和密码,然后使用JWT进行身份验证。您必须使用浏览器存储(本地或会话)或cookie(旧浏览器的常见回退)来存储JWT
- “…web客户端是否需要知道涉及到一个单独的身份验证服务…”-您需要向服务发送用户名和密码才能发布JWT。您可以只通过一个请求来实现它,但是您需要向服务发送凭据(由用户提供),接收JWT作为响应的一部分并存储它(如上所述)。根据不同的需求和实现,在单独的请求下执行可能更容易