Cómo usar GitHub como SSO en ArgoCD en 3 pasos
- victoriagimenez5
- 22 jul
- 3 Min. de lectura

Podemos optimizar el acceso a ArgoCD aprovechando las integraciones que la herramienta ya proporciona. Utilizando los usuarios y grupos de tu organización en GitHub, podés simplificar la configuración y enfocarte únicamente en asignar los permisos adecuados.
Además, esta estrategia garantiza que tu dashboard de ArgoCD sea seguro, fácil de administrar y bajo control.
Veamos cómo implementarlo paso a paso.
Paso 1: Registrar una aplicación OAuth en GitHub
Primero, necesitamos registrar una nueva aplicación OAuth dentro de la organización en GitHub.
Ingresá a la configuración de tu organización.
En el menú lateral, al final, hacé clic en Developer settings > OAuth Apps.

En la ventana, verás las aplicaciones ya creadas (si las hubiera) y el botón para crear una nueva. Hacé clic en “New OAuth App”.

En el formulario:
Application name: Un nombre representativo (por ejemplo, ArgoCD Login).
Homepage URL: La URL de tu dashboard de ArgoCD, por ejemplo: https://argocd.ejemplo.com.
Callback URL: https://argocd.ejemplo.com/api/dex/callback.
Haz clic en "Register application".

Esto te devolverá un Client ID y generará un Client Secret. ¡Guardalos bien! Los vas a necesitar en el siguiente paso.

Paso 2: Integrar el login de GitHub en ArgoCD
En este paso, vamos a modificar el ConfigMap llamado argocd-cm que se genera al instalar ArgoCD en el clúster de Kubernetes. En este ejemplo, asumimos que ArgoCD está instalado en el namespace argocd.
Ejecutá:
kubectl edit configmap argocd-cm -n argocdDentro del bloque data, agregá o modificá lo siguiente:
data:
url: https://argocd.example.com
dex.config: |
connectors:
- type: github
id: github
name: GitHub
config:
clientID: <CLIENTID>
clientSecret:<CLIENTSECRET>
orgs:
- name: <ORG_NAME>
Reemplazá url, clientID, clientSecret y el nombre de la organización con tus datos reales.

Recomendado: Deshabilitar el usuario admin por defecto, ya que la gestión de accesos ahora se hará desde GitHub.
Una vez aplicado, el dashboard mostrará la opción para iniciar sesión con GitHub.
Paso 3: Asignar permisos a los grupos
Ahora queda asignar los permisos a cada grupo de GitHub. Para eso, debemos conocer:
Recursos disponibles: clusters, projects, applications, applicationsets, repositories, certificates, accounts, gpgkeys, logs, exec, extensions.
Acciones permitidas: get, create, update, delete, sync, override, action/<group/kind/action-name>.
¿Cómo se crea un rol?
ArgoCD trabaja con roles. Primero definimos políticas para un rol, y luego ese rol se asocia a un grupo de GitHub. Un grupo puede tener múltiples roles, ya que el sistema parte de una política de "deny all".
Editamos el ConfigMap llamado argocd-rbac-cm:
kubectl edit configmap argocd-cm -n argocdY dentro del bloque data:
data:
policy.csv: |
p, <role/user/group>, <resource>, <action>, <object>
p, <role/user/group>, <resource>, <action>, <appproject>/<object>
p, role:app-developer-role, applications, get, /, allow
p, role:app-developer-role, applications, update, /, allow
g, <ORG_NAME>:<GIT_GROUP>, role:app-developer-roleEsto crea el rol app-dev con permisos sobre todas las aplicaciones, y lo asocia al grupo EquipoDev de GitHub dentro de la organización ORG.
data:
policy.csv: |│
p, role:default, projects, get, *, allow
p, role:default, applications, get, /, allow
p, role:default, logs, get, *, allow
p, role:powerdevelopers, projects, get, *, allow
p, role:powerdevelopers, projects, create, *, allow
p, role:powerdevelopers, projects, sync, *, allow
p, role:powerdevelopers, applications, get, /, allow
p, role:powerdevelopers, applications, create, /, allow
p, role:powerdevelopers, applications, update, /, allow
p, role:powerdevelopers, applications, sync, /, allow
p, role:powerdevelopers, applications, delete, /, allow
p, role:powerdevelopers, applications, override, /, allow
p, role:powerdevelopers, repositories, get, *, allow
p, role:powerdevelopers, repositories, create, *, allow
p, role:powerdevelopers, repositories, update, *, allow
p, role:powerdevelopers, repositories, delete, *, allow
p, role:powerdevelopers, certificates, get, *, allow
p, role:powerdevelopers, certificates, create, *, allow
p, role:powerdevelopers, certificates, update, *, allow
p, role:powerdevelopers, certificates, delete, *, allow
p, role:developers, project, sync, *, allow
p, role:developers, applications, update, /, allow
p, role:developers, applications, sync, /, allow
p, role:developers, applications, override, /, allow
g, ORG:Developers, role:developers
g, ORG:PowerDev, role:powerdevelopers
g, ORG:Admins, role:admin
¡Listo! GitHub y ArgoCD conectados
Ahora que tenés GitHub como proveedor de identidad para ArgoCD, podés gestionar accesos de forma centralizada, segura y escalable. Es momento de asignar a tus equipos los permisos que necesitan

Fabricio Blas
Cloud Engineer
Teracloud



