使用 OAuth2 进行后端到后端身份验证
Backend to Backend authentification with OAuth2
我正在尝试做什么
现在我正在为 Both 开发 Java Spring 后端,它管理他从 api.ai 的 NLP 获得的请求并返回相应的信息。现在我想与使用 OAuth2 的不同服务进行交互,以从那里获取 information/data。
到目前为止我做了什么
我已经在我的 application.properties
文件中添加了我的服务凭据。但是只找到了一个解决方案,例如用户可以在我的服务上使用他的 facebook 凭据登录。
但是我需要让我的服务在其他服务上进行身份验证(使用我的属性文件中的给定凭据),以便从那里收集数据。
你们知道解决方案、提示和技巧吗?
据我了解,逻辑应该如下。
由于您拥有 SSO(基于 OAuth2),您只需登录一次并从 OAuth2 服务获取令牌(访问令牌和刷新令牌)。当您调用任何服务时,访问令牌包含在请求 headers 中。
现在 Service1 必须使用相同的身份验证信息调用 Service2。
在 Service1 中调用 OAuth2 服务来检查令牌是否有效。如果是,您只需要使用相同的令牌来调用 Service2。
所以只需从请求 headers 中提取令牌并添加到您发送到 Service2 的请求的 headers 中。可以完成例如通过添加过滤器并将身份验证信息存储在 ThreadLocal 变量中(或者如果您通过 运行 Jobs 生成新线程,则可继承 ThreadLocal)。
Service2 反过来也通过调用 OAuth2 服务检查令牌,但令牌有效。
对我来说,这就是你所需要的。
我正在尝试做什么
现在我正在为 Both 开发 Java Spring 后端,它管理他从 api.ai 的 NLP 获得的请求并返回相应的信息。现在我想与使用 OAuth2 的不同服务进行交互,以从那里获取 information/data。
到目前为止我做了什么
我已经在我的 application.properties
文件中添加了我的服务凭据。但是只找到了一个解决方案,例如用户可以在我的服务上使用他的 facebook 凭据登录。
但是我需要让我的服务在其他服务上进行身份验证(使用我的属性文件中的给定凭据),以便从那里收集数据。
你们知道解决方案、提示和技巧吗?
据我了解,逻辑应该如下。
由于您拥有 SSO(基于 OAuth2),您只需登录一次并从 OAuth2 服务获取令牌(访问令牌和刷新令牌)。当您调用任何服务时,访问令牌包含在请求 headers 中。 现在 Service1 必须使用相同的身份验证信息调用 Service2。
在 Service1 中调用 OAuth2 服务来检查令牌是否有效。如果是,您只需要使用相同的令牌来调用 Service2。
所以只需从请求 headers 中提取令牌并添加到您发送到 Service2 的请求的 headers 中。可以完成例如通过添加过滤器并将身份验证信息存储在 ThreadLocal 变量中(或者如果您通过 运行 Jobs 生成新线程,则可继承 ThreadLocal)。
Service2 反过来也通过调用 OAuth2 服务检查令牌,但令牌有效。
对我来说,这就是你所需要的。