Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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
Java 使用JWT授权微服务_Java_Jwt_Authorization_Microservices - Fatal编程技术网

Java 使用JWT授权微服务

Java 使用JWT授权微服务,java,jwt,authorization,microservices,Java,Jwt,Authorization,Microservices,我正在尝试建立一个体育馆的预订系统。我将其划分为多个微服务,如设备和位置。其中之一称为“身份验证”,我在其中检查用户的凭据。在那里我有一个UserDetails服务,在这里我检查用户是否存在以及它扮演什么角色 我使用的是JWT(更准确地说是io.jsonwebtoken),我有一个请求过滤器来检查令牌是否有效。因此,现在授权可以用于身份验证,但我不确定如何将JWT令牌传递给其他微服务并对它们进行授权 我曾想过,只要我需要一些东西,就可以在每个微服务中简单地调用该过滤器表单身份验证,但我认为这违背

我正在尝试建立一个体育馆的预订系统。我将其划分为多个微服务,如设备和位置。其中之一称为“身份验证”,我在其中检查用户的凭据。在那里我有一个UserDetails服务,在这里我检查用户是否存在以及它扮演什么角色

我使用的是JWT(更准确地说是io.jsonwebtoken),我有一个请求过滤器来检查令牌是否有效。因此,现在授权可以用于身份验证,但我不确定如何将JWT令牌传递给其他微服务并对它们进行授权

我曾想过,只要我需要一些东西,就可以在每个微服务中简单地调用该过滤器表单身份验证,但我认为这违背了拥有微服务的目的


有更好的选择吗?如何实际检查这些微服务中的JWT令牌?

您可以使用共享密钥(对称密钥,HS256),或者更好地使用RS256或类似的密钥,使用只有身份验证服务知道的私钥签名,并使用所有服务都知道的公钥验证。公钥可以通过端点作为JWK(JSON Web密钥)提供。您使用的是哪个平台的Spring?Micronaut?我正在使用Spring和H512对密钥进行签名,但如果我只是在每个微服务中检查令牌是否有效,这就足够了吗?嗨,有身份验证服务听起来确实很奇怪。基本上,如果您正在访问受保护的API端点,那么每个服务都应该进行自己的验证。否则我看不出这是多么安全。每个服务都需要有自己的受信任JWT颁发者配置,然后进行验证。但在这种情况下,您不会因为它们使用几乎相同的代码而导致代码重复和技术依赖性吗?您可以使用共享密钥(对称密钥,HS256),或者更好地使用RS256或类似密钥,使用只有身份验证服务知道的私钥进行签名,并使用所有服务都知道的公钥进行验证。公钥可以通过端点作为JWK(JSON Web密钥)提供。您使用的是哪个平台的Spring?Micronaut?我正在使用Spring和H512对密钥进行签名,但如果我只是在每个微服务中检查令牌是否有效,这就足够了吗?嗨,有身份验证服务听起来确实很奇怪。基本上,如果您正在访问受保护的API端点,那么每个服务都应该进行自己的验证。否则我看不出这是多么安全。每个服务都需要自己配置一个受信任的JWT颁发者,然后进行验证。但是在这种情况下,您不需要因为它们使用几乎相同的代码而导致代码重复和技术依赖吗?