Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Keycloak:从内部码头容器运行时无效的令牌颁发程序

Keycloak:从内部码头容器运行时无效的令牌颁发程序
EN

Stack Overflow用户
提问于 2021-03-19 05:45:21
回答 2查看 3.9K关注 0票数 3

在配置keycloak以在服务器上运行时,我遇到了一些问题。在本地,它工作得很好,但是在我们的测试环境中,在登录后,在使用接收到的访问令牌的任何呼叫中,我们都会得到“无效令牌颁发者”。预期的"http://keycloak:8080/auth/realms/{realmnName}“但是是"http://{our-test-server-IP}/auth/realms/{realmName}"”,所以基本上,我们的后端连接到内部的keycloak对接映像,但是当请求出现时,它希望发行者是配置的外部IP,所以即使发出者基本上是相同的服务密钥披风,他们认为他们是不同的,并以401响应。

docker-compose.yml:

代码语言:javascript
运行
AI代码解释
复制
keycloak:
    image: jboss/keycloak:12.0.4
    restart: on-failure
    environment:
        PROXY_ADDRESS_FORWARDING: "true"
        KEYCLOAK_USER: admin
        KEYCLOAK_PASSWORD: password
        KEYCLOAK_LOGLEVEL: DEBUG
        KEYCLOAK_IMPORT: /etc/settings/realm.json -Dkeycloak.profile.feature.upload_scripts=enabled
        TZ: Europe/Bucharest
        DB_VENDOR: POSTGRES
        DB_ADDR: db
        DB_DATABASE: user
        DB_SCHEMA: keycloak
        DB_USER: user
        DB_PASSWORD: user
    ports:
        - 8090:8080
    volumes:
        - ./settings:/etc/settings
    depends_on:
        - db

Spring application.yml:

代码语言:javascript
运行
AI代码解释
复制
keycloak:
  cors: true
  realm: Realm-Name
  resource: back-office
  auth-server-url: http://keycloak:8080/auth/
  public-client: false
  credentials:
    secret: 8401b642-0ae9-4dc8-87a6-2f494b388a49

keycloak-client:
  id: bcc94ed5-0099-40e0-b460-572eba3f0214

如果我们将后端属性auth-server-url更改为连接到公开的端点,而不连接到内部对接器容器,则会得到超时,似乎它不想连接到它。我知道主要的问题是我们同时在同一台服务器上运行keycloak实例和后端应用程序,但是我不明白为什么它们不能工作,为什么它们不能连接到彼此。

我们尝试在运行容器和Keycloak管理控制台时在环境中设置FRONTEND_URL,但没有发生任何变化。我们还尝试将standalone.xml/standalone-ha.xml(./jboss-cli.sh -连接"/subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.forceBackendUrlToFrontendUrl,value=true)文件中的forceBackendUrlToFrontendUrl设置为true,并使用./jBos-cli.sh-connect command=:reload重置对接容器中的keycloak实例,但是没有什么改变。

我理解,基本上,通过设置FRONTEND_URL,所有令牌都应该由keycloak实例签名,我们不会遇到这个问题,但是我已经尝试了到目前为止在这个问题上找到的关于密钥披风配置的所有东西,而且似乎没有任何改变。如何确保签名访问令牌的发行者和后端服务所期望的发出者是相同的(希望是前端)?我如何配置它,是否有我丢失的某些属性,或者在配置它时我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2021-03-19 06:37:51

可能与这里的答案有关:https://stackoverflow.com/a/64095482/13494285

可以将header值设置为预期的url。

若要重写此行为,可以尝试将KEYCLOAK_HOSTNAME环境变量设置为预期的url。

似乎文档并不是最新的(它建议在KEYCLOAK_FRONTEND_URL上使用这里变量),但是KEYCLOAK_HOSTNAME被用来设置fixed提供程序,就像在这里。上看到的那样。

在此上下文中,还需要KEYCLOAK_HTTP_PORT将端口设置为8080。

票数 2
EN

Stack Overflow用户

发布于 2022-02-02 06:29:44

将KEYCLOAK_HOSTNAME设置为外部主机名(如在KEYCLOAK_FRONTEND_URL中定义的那样)对我的情况是有效的(eclipse安装在一个普通的kubernetes集群上)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66709337

复制
相关文章
授权服务是如何颁发授权码和访问令牌的?
授权服务如何生成访问令牌? 访问令牌过期了而用户又不在场的情况下,又如何重新生成访问令牌?
JavaEdge
2021/02/23
2.9K0
授权服务是如何颁发授权码和访问令牌的?
"Docker 容器命令:解析容器化应用程序的运行时"
镜像是在docker中的,应用是在一个镜像中的,如何在容器中运行一个程序,如果直接使用docker访问是不行的,因为此时的应用只是在某个镜像下启动了,相当于在docker内部,而不是docker本身,此时就需要将镜像中的应用程序的启动端口映射给docker,在docker访问映射端口的时候跳转到容器中启动的程序。
Java学术趴
2023/06/29
3830
"Docker 容器命令:解析容器化应用程序的运行时"
容器运行时
要把进程运行在容器中,还需要有便捷的SDK或命令来调用Linux的系统功能,从而创建出容器。容器的运行时(runtime)就是运行和管理容器进程、镜像的工具。
CNCF
2022/11/28
1.7K0
容器运行时
容器的几种运行时
containerd is a container runtime which can manage a complete container lifecycle - from image transfer/storage to container execution, supervision and networking.
heidsoft
2022/04/18
1.9K0
容器的几种运行时
在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
API Server 作为 Kubernetes 的网关,是用户访问和管理资源对象的入口。对于每个访问请求, API Server 都需要对访问者的合法性进行检查,包括身份验证、权限验证等等。Kubernetes 支持多种身份验证的方式,本文将对 OpenID Connect 认证进行介绍。
Se7en258
2022/04/18
7K0
在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
kubernetes API 访问控制之:认证
可以使用kubectl、客户端库方式对REST API的访问,Kubernetes的普通账户和Service帐户都可以实现授权访问API。API的请求会经过多个阶段的访问控制才会被接受处理,其中包含认证、授权以及准入控制(Admission Control)等。如下图所示:
看、未来
2022/06/05
7.3K0
kubernetes API 访问控制之:认证
关于容器和容器运行时的那些事
容器,容器编排,微服务,云原生,这些无疑都是当下软件开发领域里面最热门的术语。容器技术的出现并迅速的广泛应用于软件开发的各个领域里,主要的原因是容器技术革命性的改变了软件开发和部署的基本方式。作为一个架构师,了解容器技术是非常重要的一个话题,我们今天就来聊聊它。
yuanyi928
2020/08/12
1.7K0
关于容器和容器运行时的那些事
使用服务网格增强安全性:Christian Posta探索Istio的功能
Istio帮助使“服务网格”概念变得更加具体和可访问,随着Istio 1.0的最新发布,我们可以预期人们对它的兴趣会激增。Jasmine Jaksic在InfoQ之前的一篇文章中很好地介绍了Istio和服务网格,因此我想借此机会介绍Istio的一个特定领域,它将为云服务和应用程序的开发人员和运营商带来巨大的价值:安全性
程序你好
2018/09/29
1.4K0
使用服务网格增强安全性:Christian Posta探索Istio的功能
Spring Boot+Keycloak从零到壹
在本文中,我们将介绍安装、配置Keycloak服务器的基础知识,如何将Spring Boot应用程序**和Keycloak服务器连接起来,以及在Spring Security下如何使用它。
烟雨平生
2023/03/07
4.4K0
Spring Boot+Keycloak从零到壹
keycloak_keycloak 同步用户表
第一步:下载keycloak安装包 https://www.keycloak.org/downloads
全栈程序员站长
2022/09/19
1.6K0
适用于Java开发人员的微服务:管理安全性和机密
安全性是现代软件系统中非常重要的元素。这是一个巨大的话题,它包含了很多不同的方面,不应该是事后才想到的。要把每件事都做好是很困难的,特别是在分布式微服务体系结构的环境中,尽管如此,在本教程的这一部分中,我们将讨论最关键的领域,并就如何处理它们提出建议。
麦洛
2020/03/27
1.3K0
调试 Docker 容器内部进程
摘要:本文以 Nebula Graph 进程为例,讲解如何不破坏原有容器的内容,也不用在其中安装任何的工具包前提下,像在本地一样来调试进程
NebulaGraph
2020/10/28
1.2K0
开源容器引擎分析;替代docker的容器选择;容器运行时架构
前段时间,听说了k8s对docker支持出现了变动。今天整理服务器进程的时候,出现了与 containerd、lxcfs 相关的 daemon 进行,顿时再次对容器运行时产生了好奇,今天整理一下,进行简单记录:
西湖醋鱼
2020/12/30
1.1K0
开源容器引擎分析;替代docker的容器选择;容器运行时架构
从协议入手,剖析OAuth2.0(译 RFC 6749)
      传统的client-server授权模型,客户端通过使用凭证(通常的用户名和明文密码)访问服务端受保护的资源,为了能够让第三方应用程序访问受保护的资源,需要将凭证共享给第三方。
justmine
2022/05/10
5.1K0
keycloak集群化的思考
单体服务如果想要突破到高并发服务就需要升级为集群服务。同时集群化也为高可用打下了坚实的基础。纵观现在比较流行的服务或者中间件,不管是RabbitMQ还是redis都提供了集群的功能。
用户2323866
2021/06/22
1.3K0
如何解决Transaction 注解,方法内部调用无效问题
Transaction 注解开启事务,是通过代理对象对方法进行封装开启和关闭事务,但生效的的条件是外部调用,而内部调用并不会走代理对象,这就造成了事务失效。
海涛
2020/02/13
1.8K0
Keycloak Spring Security适配器的常用配置
在Spring Security集成Keycloak 适配器时需要引入一些额外的配置属性。一般我们会把它配置到Spring Boot的配置文件中。
码农小胖哥
2021/08/13
2.6K0
容器运行时技术内幕 (小结)
我们知道,虚拟机交付的是操作系统及部分运行时依赖库的一个实例,而容器技术,能够对外交付应用的一个实例,多个docker container可以共用一个操作系统和运行时依赖库。
用户8289326
2022/08/04
3030
容器运行时技术内幕 (小结)
Python运行时动态查看进程内部信息
接前两篇“运行时查看线程信息”的博客,我在想,既然我可以随时打印线程信息,那么我是不是可以随时打印进程内部的其它信息呢?比如,实时查看一些对象属性等,这样可以帮助我们在不重新启动应用程序的情况下就可以观察进程的执行状态。(这里暂时不考虑那些使用第三方库或工具的情况) 根据这个想法,查看了一下python的动态加载模块的方法,感觉这个想法还是比较靠谱,应该可以实现,所以动手写了个小测试验证了一把。(这里说明一下,只是验证性的,生产环境要使用的话,还是有不少问题需要考虑的。) 下面就是测试时考虑要做到的 还是使
kongxx
2018/05/14
2.1K0
docker内部容器自动重启配置。
1.创建容器时没有添加参数 --restart=always ,导致的后果是:当 Docker 重启时,容器未能自动启动。
@凌晨
2020/05/28
3.8K0

相似问题

为什么这个单例实现可以工作?

10

为什么这个objective-c单例可以工作?

16

这个javascript单例是如何工作的?

25

为什么这个单例类代码工作正常?

22

Java单例方法不工作

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档