top of page

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.

google-workspace-icons-hanging-from-octopus-tentacles

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

 
 
bottom of page