Oauth 存在多个资源时使用Auth2进行身份验证

Oauth 存在多个资源时使用Auth2进行身份验证,oauth,oauth-2.0,jwt,Oauth,Oauth 2.0,Jwt,我需要实现一个用户的单点登录,它可以从多个不同的服务中获得服务 当只有一个服务时,用户可以从客户端登录,将请求发送到后端,获取返回JWT令牌颁发者服务器的URL,从中可以获取令牌,并将其发送回BE,现在他已通过身份验证 现在的变化是,他需要得到更多的服务。每个服务都有自己的前端和后端,但每个人都使用相同的颁发者。这意味着既有FE和BE服务,也有另一个用于身份验证的通用BE 在该场景中,要进行身份验证的正确流是什么?对于每个所需的服务,general能否为客户端颁发令牌?还是应该使用服务的BE u

我需要实现一个用户的单点登录,它可以从多个不同的服务中获得服务

当只有一个服务时,用户可以从客户端登录,将请求发送到后端,获取返回JWT令牌颁发者服务器的URL,从中可以获取令牌,并将其发送回BE,现在他已通过身份验证

现在的变化是,他需要得到更多的服务。每个服务都有自己的前端和后端,但每个人都使用相同的颁发者。这意味着既有FE和BE服务,也有另一个用于身份验证的通用BE


在该场景中,要进行身份验证的正确流是什么?对于每个所需的服务,general能否为客户端颁发令牌?还是应该使用服务的BE url响应客户端,并让客户端本身从每个服务发送身份验证令牌响应?或者别的什么?

我想您指的是OpenID Connect,因为OAuth2.0不用于身份验证,也不需要使用JWTs。此外,在您的场景中,没有多个资源,而是多个客户机/依赖方

使用OpendID Connect隐式流,发卡机构最终将向用户的浏览器发送一个id令牌(JWT)。此JWT可用于对服务进行身份验证。每个JWT将包含一个
aud
(受众)声明,以确定其应用于的服务

使用授权代码流,发卡机构最终将向用户的浏览器发送授权代码。用户将向服务发送代码,服务将向发卡机构发送代码及其客户端id,以交换id令牌(JWT)和访问令牌


在这两种情况下,服务都使用
iss
(发卡机构)声明来识别最终用户,并通过检查签名、到期日和受众来验证JWT。

这意味着如果客户端发送服务令牌请求就可以了,如果BE发送令牌请求也可以了?或者在这种情况下有什么偏好?看到了吗