首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS EKS上带有密钥披风认证的traefik入口

AWS EKS上带有密钥披风认证的traefik入口
EN

Stack Overflow用户
提问于 2020-03-20 16:58:42
回答 1查看 1.6K关注 0票数 1

我们正在开发基于AWS EKS的企业微服务体系结构。我们有几个应用程序作为单独的容器部署在EKS上。

我们在所有这些应用程序前面部署了traefik入口控制器( LB服务作为ELB)和入口服务,以完成特定服务的路由。这个很好用。到目前一切尚好。

我们还为auth部署了keycloak容器,这也很好。

现在,我们希望将traefik与keycloak集成在一起,以便对traefik提出的任何请求都应该在auth/SSO中转到keycloak,然后重定向到原始调用所在的特定服务。

这是我们正在努力取得任何进展的地方。首先,很少有人怀疑:

( 1)前方有traefik。这个能在这里用吗?如有任何例子/链接,将不胜感激。如果是库伯内特斯的话。

2)有钥匙斗篷守门人。据我所知,它是作为侧车部署到主要应用程序,并完成所有的工作。我的问题是,在侧车设计中,每个应用程序都有自己的看门人。因此,一旦登录到应用程序或服务,用户需要再次认证,如果他想访问不同的应用。我们不想这样,我们希望SSO会话能够适用于不同的应用程序。

其次,如何在守门员配置中给出动态的上游url,例如/service1应该自动重定向到service1,而对于service2则是如此。

我们无法决定走哪条路。这两种方法的文件有限,主要用于kubernetes的部署。我们在这里还有什么别的办法吗?

请帮帮忙。如果你需要更多的细节,请告诉我。

UPDATE1:

现在,我和钥匙斗篷守门人一起走了。我把它作为侧车放在我的基巴纳舱里。下面是给看门人的yml部分:

代码语言:javascript
复制
    containers:
      - name: gatekeeper-sidecar
          image: keycloak/keycloak-gatekeeper
            ports:
            - containerPort: 3000 # expose port 3000
            args:
            - --discovery-url=http://keycloak:8080/auth/realms/realm1
            - --secure-cookie=false
            - --enable-default-deny=true
            - --client-id=Vista
            - --client-secret=2f1aa7dd-2aa9-4fd0-956c-5c45b2bf2091
            - --listen=0.0.0.0:3000 # listen on port 3000 on all interfaces
            - --redirection-url=http://127.0.0.1:3000
            - --upstream-url=http://127.0.0.1:5601
            - --enable-logging=true
            - --enable-json-logging=true
            - --verbose=true

在我的traefik入口服务中,我添加了以下内容(kibana是用于kibana应用程序的clusterIP服务,它有kibana +守门员吊舱)

代码语言:javascript
复制
- match: PathPrefix(`/path1`)
    kind: Rule
    services:
    - name: kibana
      port: 3000
    middlewares:
      - name: stripprefix

现在,每当我浏览到https://elb_host/path1时,它只会重定向https://elb_host/ouath/authorize?state=<..>并抛出404。

我希望它首先重定向到keycloak auth url (https://elb_host/auth/realms/realm1?.)。用于身份验证。

我还在网关管理员日志中表示它成功地获取了oidc配置。但是,在我点击url之后,在网关管理员日志中发生了以下错误:

代码语言:javascript
复制
{"level":"error","ts":1584946244.340905,"caller":"keycloak-gatekeeper/middleware.go:108","msg":"no session found in request, redirecting for authorization","error":"authentication session not found"}
{"level":"info","ts":1584946244.340992,"caller":"keycloak-gatekeeper/middleware.go:90","msg":"client  

这里有什么问题吗?请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-17 18:39:31

终于解决了这个问题。有两种选择:

1)您可以定义进入/oauth路由到keycloak网关本身。

或者在你的守护者配置中有-基-uri=/path1 1。这将将/path1添加到所有重定向url中,这些url将根据您的入口进行路由。

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

https://stackoverflow.com/questions/60778479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档