【问题标题】:Angular Keycloak and Spring Boot 401 ErrorAngular Keycloak 和 Spring Boot 401 错误
【发布时间】:2022-01-20 22:02:38
【问题描述】:

我在 Spring Boot 中开发了几个微服务并使用 Keycloak 15 保护它们,我将微服务部署到 docker 中的 AWS EC2 实例上,并使用带有 letencrypt 证书的 nginx 反向代理,突然有些微服务总是返回 401 错误,当我检查了 Postman / Chrome devtools 中的响应标头,我得到以下 Bearer error="invalid_token", error_description="尝试解码 Jwt 时发生错误:iss 声明无效", error_uri="https:// tools.ietf.org/html/rfc6750#section-3.1" 该应用程序在本地主机上完美运行

请帮助我这几天一直在撕扯我的头

【问题讨论】:

    标签: angular spring-boot docker keycloak http-status-code-401


    【解决方案1】:

    颁发者基于用于访问 Keycloak 的 URL。 如果应用程序使用将成为颁发者的 DNS 名称请求令牌,如果它使用将成为颁发者的 IP 地址请求令牌。当在keycloak适配器spring bot中验证access_token时,它将调用Keycloak get info config然后验证access_token的签名并在access_token中一一验证字段(颁发者字段是字段之一)如果其中一个字段不匹配它会报401错误

    要在不遵循客户端请求的情况下修复颁发者,请配置参数 KEYCLOAK_FRONTEND_URL。

    还需要查看更多frontendUrl 属性,才能正确生成页面重定向https://www.keycloak.org/docs/10.0/server_installation/index.html#default-provider。这是由官方 Docker 镜像中的 KEYCLOAK_FRONTEND_URL 环境变量控制的,参见https://hub.docker.com/r/jboss/keycloak

    你已经使用了反向代理,你可以参考这里 https://www.keycloak.org/docs/10.0/server_installation/#identifying-client-ip-addresses 这意味着使用由官方 Docker 映像中的 PROXY_ADDRESS_FORWARDING=true 环境变量控制的 proxy-address-forwarding=true 见https://hub.docker.com/r/jboss/keycloak

    【讨论】:

      猜你喜欢
      • 2020-07-18
      • 2020-11-05
      • 2020-08-19
      • 1970-01-01
      • 2018-09-06
      • 2020-01-11
      • 1970-01-01
      • 2021-08-11
      • 2021-01-09
      相关资源
      最近更新 更多