Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 前端应用程序和其他后端服务使用的REST API的身份验证方法_Javascript_Java_Rest_Microservices - Fatal编程技术网

Javascript 前端应用程序和其他后端服务使用的REST API的身份验证方法

Javascript 前端应用程序和其他后端服务使用的REST API的身份验证方法,javascript,java,rest,microservices,Javascript,Java,Rest,Microservices,我有一个rest api后端服务a,它被其他两个服务使用: B在浏览器中运行的web应用程序服务(独立节点服务器) C服务,它也是后端服务(也是单独的服务器) 我最初的方法是使用基本身份验证进行A-B通信,但这对A-C来说没有意义,因为没有办法在浏览器中安全地保存凭据。另一方面,引入会话和令牌对于A-B通信来说似乎很奇怪 不管我做什么,这都像是拔河比赛 对于这种设置,您认为什么是合理的解决方案?您至少需要A-B的SSL,然后只有您才能判断基本身份验证是否有效 如果C将使用与B相同的API,那

我有一个rest api后端服务a,它被其他两个服务使用:

  • B在浏览器中运行的web应用程序服务(独立节点服务器)
  • C服务,它也是后端服务(也是单独的服务器)
我最初的方法是使用基本身份验证进行A-B通信,但这对A-C来说没有意义,因为没有办法在浏览器中安全地保存凭据。另一方面,引入会话和令牌对于A-B通信来说似乎很奇怪

不管我做什么,这都像是拔河比赛


对于这种设置,您认为什么是合理的解决方案?

您至少需要A-B的SSL,然后只有您才能判断基本身份验证是否有效

如果C将使用与B相同的API,那么使用相同的身份验证方法是有意义的,只是为了简单起见,IMO

您还可以使用基于令牌的身份验证机制,其中每个服务(远程或本地)进行身份验证并获取令牌,然后将其用于后续通信

有关更多信息,请参见以下内容:


您可以参考AWS API网关,了解如何为REST API实现身份验证的线索。

总结:

  • 访问令牌
  • 自定义身份验证
  • 启用CORS
  • 客户端SSL基于证书的身份验证

  • 我想您可以尝试使用Oauth2身份验证。简单地说:自动生成一个令牌。然后,可以从客户端使用该令牌对用户/客户端进行身份验证,而无需传递用户名和密码。