ArgoCD 初始仅提供 admin 账号,用于首次部署和配置;为安全与协作,后续应启用本地用户或接入 SSO,避免长期使用超级管理员账号。
1. 概述
ArgoCD 以“开箱即用”的方式内置了 Dex(一个轻量级 OIDC 代理)。Dex 的职责只有一个:把企业里各式各样的身份源(SAML、LDAP、GitHub、GitLab …)统一翻译成 ArgoCD 能消费的 OIDC 令牌,从而把 ArgoCD SSO 落地成两行配置。下文以 GitLab OAuth2 为样本,演示如何修改 argocd-cm
ConfigMap 完成连接器编排,并给出可直接粘贴的 GitLab-Dex 最小 YAML 模板。
2. 整体流程
- GitLab: 注册 OAuth2 Application → 获取 Client ID/Secret
- ArgoCD: 修改 argocd-cm 注入 dex gitlab 连接器
- ArgoCD: 修改 argocd-rbac-cm 把 GitLab Group 映射成 ArgoCD 角色
3. GitLab 配置
- 打开 Admin Area → Applications → New Application
- 填写关键点
- Name:argocd-dex
- Redirect URI:https://argocd.blazehu.com/api/dex/callback
- Scopes:勾选 read_user openid profile email
- 保存后记录 ClientID 和 ClientSecret
4. ArgoCD 接入 Dex(GitLab 连接器)
kubectl edit cm argocd-cm -n argocd |
新增以下内容:
data: |
如果登录提示:Failed to query provider “https://argocd.blazehu.com/api/dex “: Get “https://argocd-dex-server:5556/api/dex/.well-known/openid-configuration": http: server gave HTTP response to HTTPS client。这是由于协议对不上,首先检查证书是否合法,另外检查
argocd-cmd-params-cm
配置文件的 dex server 相关参数。
5. RBAC:GitLab Group 映射成角色
编辑 argocd-rbac-cm:
data: |
6. 重启与验证
kubectl rollout restart deployment/argocd-dex-server -n argocd |
重启后点击快速登录: