gpt4 book ai didi

spring-boot - Spring Boot Microservice调用Web API

转载 作者:行者123 更新时间:2023-12-02 12:25:08 26 4
gpt4 key购买 nike

我在Kubernetes集群上托管了2个spring boot microservices-app A n auth。 app A重定向到身份验证服务getToken api,以获取自定义jwt token ,该 token 是使用IBM AppId的 protected API,因此在调用getToken之前,它将自动重定向到appId以对用户进行身份验证。从appId成功进行身份验证后,将在cookie中设置自定义 token ,并将请求重定向回身份验证A。
现在,我的实现目前使用cookie。过滤器中的应用A尝试查找所需的cookie(如果未找到),使用resp.sendredirect重定向到auth重定向到auth。然后,应用A就能找到Cookie,并向用户提供其API的访问权限。
现在我的问题是,由于我使用的是resp.sendredirect,因此我在浏览器中看到了我不想要的身份验证服务网址,但仍然触发了来自应用程序A的Web api以某种方式获取 token ,即使不在cookie中也是如此。

  • 是否有一种方法可以从应用程序A服务调用Web api,而无需在Spring Boot中使用诸如resp或rest模板之类的resp.redirect来使流仍被触发并且我的身份验证服务网址未在浏览器中显示?
  • token (而不是在cookie中设置)可以通过任何其他方式传播,以便另一个应用程序B也可以将同一 token 用于auth以模拟该用户的SSO场景,而无需再次点击auth的getToken端点?

  • 请帮忙,因为我需要基于自定义 token 启用此SSO,并且也不想在浏览器中公开我的身份验证服务网址。

    最佳答案

    Is there a way to call web api from app A service without using redirect?


    由于您使用的是基于OAuth2的OpenID Connect,因此这是当用户尚未通过身份验证时的工作方式。

    Token instead of setting in cookie, can be propagated in any other way such that another app B can also use the same token for auth to simulate SSO scenario for that user without hitting getToken endpoint of auth again ? Please help as i need to have this SSO enabled based on custom token and also dont want my auth service urls exposed on the browser too.


    使用OpenID Connect对服务进行身份验证时,服务名称应在 token 中。但是您可以将集群中的所有“部署”都视为“单一服务”(但是分布式微服务体系结构),然后可以在进入集群的途中在网关中进行身份验证/ token 验证。这称为 Identity Aware Proxy或API。网关通常具有此功能。

    关于spring-boot - Spring Boot Microservice调用Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63885380/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com