我的Oauth2-proxy pod未接收或重定向流量

oaxa6hgo  于 2023-10-15  发布在  其他
关注(0)|答案(1)|浏览(112)

我有一个简单的静态HTML网站,运行在Openshift(又名Kubernetes)上的Nginx pod中,我想使用Oauth代理(我关注了this guide)和Keycloak作为SSO提供程序来保护它。但是,如果我浏览我的网站,我什么也没有得到(* 应用程序当前不在此端点上服务请求。*),如果我查看oauth2-proxy的容器日志,我没有看到任何内容:

[oauthproxy.go:166] OAuthProxy configured for Keycloak Client ID: documentation
[oauthproxy.go:172] Cookie settings: name:_oauth2_proxy secure(https):true httponly:true expiry:168h0m0s domains: path:/ samesite: refresh:disabled

我已经被困在这一个星期了,所以我想也许你可以看到一些简单的我忽略了。
html页面和oauth2-proxy的部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: oauth-documentation
  namespace: documentation
  labels:
    name: oauth-documentation
spec:
  replicas: 1
  selector:
    matchLabels:
      name: documentation
  template:
    metadata:
      labels:
        name: documentation
    spec:
      containers:
        - name: documentation-page
          image: de.icr.io/moddsp/documentation_page
          ports:
            - name: doc-auth
              containerPort: 8080

        - name: oauth-proxy
          image: quay.io/oauth2-proxy/oauth2-proxy:latest
          args:
            - --provider=keycloak
            - --client-id=documentation
            - --client-secret=
            - --login-url=https://keycloak.bla.bla/auth/realms/dsp/protocol/openid-connect/auth
            - --keycloak-group=admins
            - --session-store-type=cookie
            - --cookie-secure=true
            - --cookie-secret=
            - --http-address=0.0.0.0:4180
            - --email-domain=bla.bla
          ports:
            - name: oauth-proxy
              containerPort: 4180
              protocol: TCP

路线定义

kind: Route
apiVersion: route.openshift.io/v1
metadata:
  name: documentation-authenticated
  namespace: documentation
  labels:
    name: oauth-documentation
spec:
  host: >-
    documentation-authenticated.bla.bla
  to:
    kind: Service
    name: oauth-documentation
  port:
    targetPort: proxy
  tls:
    termination: reencrypt
    insecureEdgeTerminationPolicy: Redirect

路由指向的服务:

apiVersion: v1
kind: Service
metadata:
  name: oauth-documentation
  namespace: documentation
  annotations:
    service.alpha.openshift.io/serving-cert-secret-name: documentation-tls
spec:
  ports:
    - name: proxy
      port: 4180
      protocol: TCP
      targetPort: oauth-proxy
    - name: documentation-page
      port: 8080
      protocol: TCP
      targetPort: documentation
  selector:
    name: documentation
  sessionAffinity: None
  type: ClusterIP

所以我在想:
1.路由不指向服务
1.服务不指向 oauth2-proxy 部署
1.部署的 oauth-proxy 配置错误
但我看不出这三个有什么不对。你能帮我修改一下配置,让oauth可以访问吗?

sxissh06

sxissh061#

实际上,服务选择器似乎是错误的:您正在通过使用

selector:
    name: documentation

这意味着您正在寻找一个目标部署/pod,其标签部分如下所示

labels:
  name: documentation

而不是这样

labels:
    name: oauth-documentation

所以,也许你可以尝试更改部署标签,看看是否有什么变化?

相关问题