咨询Tekton Dashboard启用OIDC的官方支持方式(无需自定义部署)
Tekton Dashboard OIDC 认证的官方支持方案
首先明确:Tekton Dashboard 本身没有原生内置OIDC认证功能,官方推荐的无需自定义Dashboard部署的实现方式,主要通过Ingress层集成认证,或为现有Deployment添加认证代理sidecar来实现,以下是具体可行方案:
方案1:通过Ingress Controller集成(推荐)
如果使用Ingress-NGINX这类支持OIDC的控制器,仅需修改Ingress资源即可实现认证拦截,完全复用现有Dashboard的Service和Deployment:
- 利用Ingress-NGINX的认证注解,对接你的OIDC提供商端点
- 示例Ingress配置片段:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tekton-dashboard annotations: nginx.ingress.kubernetes.io/auth-url: "https://your-oidc-provider/auth-endpoint" nginx.ingress.kubernetes.io/auth-signin: "https://your-oidc-provider/login?redirect=$scheme://$host$request_uri" # 按需添加OIDC提供商要求的额外配置,比如客户端ID/密钥的环境变量引用 spec: rules: - host: tekton-dashboard.your-domain.com http: paths: - path: / pathType: Prefix backend: service: name: tekton-dashboard port: number: 9097
这种方式无需改动Dashboard的核心部署资源,仅通过Ingress层完成认证校验。
方案2:添加OAuth2 Proxy Sidecar到现有Deployment
OAuth2 Proxy是Kubernetes生态中常用的认证代理工具,可以作为sidecar注入到Tekton Dashboard的Deployment中,无需重新构建镜像或创建独立部署:
- 修改Tekton Dashboard的Deployment,添加OAuth2 Proxy容器:
containers: - name: tekton-dashboard image: gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard:v0.35.0 # 原有容器配置保持不变 - name: oauth2-proxy image: quay.io/oauth2-proxy/oauth2-proxy:v7.5.1 args: - --provider=oidc - --oidc-issuer-url=https://your-oidc-provider-issuer - --client-id=your-client-id - --client-secret=your-client-secret - --redirect-url=https://tekton-dashboard.your-domain.com/oauth2/callback - --http-address=0.0.0.0:4180 ports: - containerPort: 4180 name: oauth-proxy
- 同步修改Dashboard的Service,将端口指向OAuth2 Proxy的
4180端口,所有流量会先经过OIDC认证,再转发到Dashboard容器。
官方说明
Tekton官方安全文档明确推荐以上两种方式保护Dashboard,而非自定义构建Dashboard镜像或独立部署认证服务,完全符合你“仅修改开箱即用资源”的需求。
内容的提问来源于stack exchange,提问作者Gary Turner
相关产品推荐
相关产品推荐

