Configura ArgoCD OIDC con Google Workspace en 5 pasos
- victoriagimenez5
- 9 abr
- 3 Min. de lectura
Actualizado: 6 jun
Existen diferentes maneras de manejar la autenticación en ArgoCD, pero utilizar la contraseña de administrador no es lo suficientemente seguro. Por esta razón, aprenderemos a configurar tu ArgoCD para integrarse con Google Workspace para el inicio de sesión. En este TeraTip, cubriremos uno de los enfoques para la autenticación, utilizando grupos de Google Workspace.

Antes de comenzar…Para que el SSO funcione, necesitas tener configurados el SSL y la URL de tu servidor. De lo contrario, recibirás errores durante la autenticación.
Paso # 1: Crea la pantalla OAuth
Primero, crea un proyecto con el nombre que desees y configura la pantalla de OAuth de la siguiente manera:

En la sección de Dominios Autorizados, es importante configurar el dominio del correo electrónico que tienen tus usuarios. En este caso, añadimos el dominio de nuestra organización.

Finalmente, en la pestaña de Alcances (Scopes), selecciona los alcances userinfo.profile y openid. Estos son los alcances que ArgoCD necesita para el inicio de sesión.
Paso # 2: Crea el ID del cliente OAuth
En la pestaña de Credenciales, haz clic en + Crear Credenciales y selecciona ID de cliente OAuth.

Luego, selecciona en Tipo de aplicación, Aplicación web, y configura los orígenes de JavaScript y las URI de redirección. En la sección de Orígenes de JavaScript Autorizados, configura la URL raíz para tu ArgoCD. Luego, en las URI de redirección autorizadas, copia esta URL pero añade la ruta /api/dex/callback.

Luego, haz clic en Crear y guarda tu ID de cliente y el Secreto de cliente para más adelante.
Paso # 3: Configura el Service Account en Google Workspace
Ahora crea la Cuenta de Servicio y configura la delegación de dominio (Domain Wide delegation) para que ArgoCD pueda leer los grupos. En la sección de Cuentas de Servicio de Google Console, hacemos clic en + CREAR CUENTA DE SERVICIO. Solo necesitas ingresar un nombre para la cuenta de servicio y puedes poner el nombre que desees.

Ingresa a tu cuenta de servicio, ve a la pestaña de Claves, haz clic en Agregar clave y selecciona JSON como formato. Guarda las claves, las utilizaremos más adelante para configurar el OIDC.

Paso # 4: Configura la delegación de dominio y activa el Admin SDK
Para finalizar la configuración de Google, ahora tendrás que configurar la delegación de dominio y activar el Admin SDK. Primero, dirígete a la consola de administración de Google Cloud, luego ve a Seguridad, Control de acceso y datos, Controles de API, y por último, haz clic en gestionar la delegación de dominio.

Haz clic en Agregar cliente, y luego en ID de cliente, pega el ID de cliente de tu cuenta de servicio. En la sección de alcances, pega lo siguiente: https://www.googleapis.com/auth/admin.directory.group.readonly.

Finalmente, dirígete a https://console.cloud.google.com/apis/library/admin.googleapis.comy y activa el Admin SDK para tu proyecto.
Paso # 5: Configura ArgoCD
Para configurar el OIDC, crea dos secretos en tu clúster: uno para el Secreto de Cliente que obtuvimos en el Paso 2 y otro para el JSON que obtuvimos en el Paso 3.
Para el secreto del cliente:
apiVersion: v1 kind: Secret metadata: name: argocd-cm-dex-secret namespace: argocd labels: app.kubernetes.io/part-of: argocd data: dex.google.clientSecret: CLIENT_SECRET_BASE64_ENCODED |
Para el JSON:
apiVersion: v1 kind: Secret metadata: name: argocd-google-groups-json namespace: argocd data: googleAuth.json: JSON_FILE_BASE64_ENCODED |
Ahora, si estás utilizando el Helm Chart de ArgoCD, puedes usar los siguientes valores, probados en la versión 5.27.1:
configs: cm: url: https://argocd.teracloud.io dex.config: | connectors: - config: redirectURI: https://argocd.teracloud.io/api/dex/callback clientID: HERE_YOUR_CLIENT_ID clientSecret: $argocd-cm-dex-secret:dex.google.clientSecret serviceAccountFilePath: /tmp/oidc/googleAuth.json adminEmail: email_used_for_the_domain_wide_delegation # A list of groups to add groups: - devops@teracloud.io type: google id: google name: Google dex: enabled: true volumeMounts: - mountPath: /tmp/oidc name: google-json readOnly: true volumes: - name: google-json secret: defaultMode: 420 secretName: argocd-google-groups-json |
¡Ahora tienes tu ArgoCD configurado con SSO de Google!


Juan Wiggenhauser
Cloud Engineer
Teracloud