Configura la identidad y la seguridad mediante OIDC

Esta página está destinada a operadores de infraestructura.

En esta página, se describe cómo habilitar la autenticación en el centro de administración de Anthos mediante tu elección de OpenID Connect (proveedor de OIDC). OIDC es una capa de autenticación basada en OAuth 2.0, que especifica una API de HTTP de RESTful y usa JSON como formato de datos.

OIDC te permite usar tu proveedor de identidad existente para administrar la autenticación de usuarios y grupos. Con OIDC, puedes administrar el acceso a un clúster mediante los procedimientos estándar de tu organización para la creación, inhabilitación y habilitación de cuentas.

Antes de comenzar

Antes de configurar OIDC, necesitas la siguiente información:

  1. El nombre de dominio que se usa para acceder al centro de administración, proporcionado por el operador de infraestructura, por ejemplo: anthos.example.com.
  2. Un proveedor de OIDC, como los Servicios de federación de Active Directory de Microsoft (AD FS), el SSO de Google o Keycloak. El clúster y tu navegador deben poder conectarse al proveedor de OIDC. El proveedor de OIDC no tiene que volver a conectarse al clúster de forma directa. Si no tienes un proveedor de OIDC, consulta Autentica con Keycloak para instalar uno. Keycloak es solo para fines de demostración y no se recomienda para un entorno de producción.

Crea perfiles de identidad

Los perfiles de identidad contienen la configuración necesaria a fin de usar un proveedor de identidad para la autenticación. Sigue estos pasos para crear un perfil de identidad:

  1. En la consola del centro de administración, abre el menú Identidad y acceso.

  2. En la pestaña Identidad, haz clic en Configurar Anthos Identity Service (OIDC).

  3. Asigna un nombre de perfil fácil de usar en el campo Nombre de perfil. Este es el nombre al que hace referencia el perfil.

  4. Ingresa la URL del proveedor de OIDC, el ID de cliente y el secreto de cliente del proveedor de OIDC.

  5. Establece el campo Reclamación de nombre de usuario. La reclamación del nombre de usuario es la reclamación en el token de OIDC que contiene el nombre de usuario. Por ejemplo, si la reclamación del nombre de usuario es email, los usuarios se identifican por el campo de usuarios en el token de OIDC.

    Cuando configures esta reclamación, asegúrate de que exista en los permisos solicitados.

  6. Configura el campo Prefijo de nombre de usuario. El prefijo del nombre de usuario se usa para distinguir usuarios de diferentes proveedores de identidad. El prefijo de usuario también debe incluirse cuando se asignan permisos de RBAC a los usuarios.

    Por ejemplo, si la reclamación de nombre de usuario es email y el prefijo de usuario es prefix-, los usuarios se identifican como prefix-sally@example.com. El usuario es sally@example.com, y el prefijo, prefix-, se usa para distinguir entre diferentes proveedores de identidad.

  7. Configura el campo Reclamación de grupos. En el modo privado de Anthos, el valor predeterminado es groups. Consulta Vinculaciones de funciones para obtener más información sobre los grupos de vinculaciones a las funciones.

  8. Configura el campo Prefijo de grupo. El prefijo de grupo se usa para distinguir entre grupos de diferentes proveedores de identidad. El prefijo de grupo también se debe incluir cuando se asignan permisos de RBAC a los grupos.

    Por ejemplo, si la reclamación del grupo es groups y el prefijo de grupo es groupprefix-, los grupos se identificarán como groupprefix-group. El grupo es group, y el prefijo, groupprefix-, se usa en el grupo. Recomendamos insertar un separador al final del prefijo, como se describe en la configuración del prefijo de nombre de usuario en el paso 6.

  9. Opcional: Configura el campo Permisos si los permisos no son openid email profile.

    Los permisos son los identificadores que se usan para especificar qué privilegios de acceso solicitar en el token de ID:

    • openid es obligatorio para OIDC.
    • profile incluye las reclamaciones profile predeterminadas del usuario.
    • Por lo general, email incluye las reclamaciones email y email_verified.
  10. Si el proveedor de OIDC (como el SSO de Google) requiere parámetros adicionales, establece el campo Parámetros adicionales.

    Por ejemplo, el campo Parámetros adicionales se puede configurar como prompt=consent,access_type=offline para mostrar una pantalla de consentimiento cada vez que se solicite la autorización de permisos de acceso.

  11. Si la conexión HTTPS a la página /.well-known/openid-configuration o a la página JWKS de tu proveedor de OIDC está protegida por un certificado que no es de confianza (como un certificado autofirmado), debes completar el campo Certificado de proveedor de OIDC con el certificado HTTPS que usó tu proveedor de OIDC.

    • Codifica el certificado codificado con PEM para el proveedor de OIDC en base64. Para crear la string, codifica el certificado, incluidos los encabezados, en base64. Incluye la string resultante como una sola línea.

    • Ejemplo: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==

    • Consulta Autentica con Keycloak para obtener un ejemplo de configuración de este campo.

  12. Haz clic en Enviar y regresa a la pestaña Identidad y Acceso.

  13. Registra la URL de devolución de llamada con el proveedor de OIDC.

Para crear perfiles de identidad adicionales, haz clic en Agregar en la pestaña Perfil de identidad.

Aplica perfiles de identidad al clúster de administrador

Los perfiles de identidad deben aplicarse a los clústeres después de crearlos.

  1. En la pestaña Perfil de identidad, haz clic en Aplicar a los clústeres.

    Aplica perfiles al clúster de administrador

  2. Haz clic en la pestaña Clúster de administrador. En la lista desplegable Perfiles, selecciona el nombre del perfil que creaste antes. Puedes seleccionar varios perfiles para aplicarlos al clúster.

    Página de perfil de OIDC

  3. Verifica el nombre de dominio del perfil. Este es el nombre de dominio que se asigna al perfil del proveedor de identidad. Se indica a los usuarios no autenticados que intenten acceder a las rutas de acceso en el dominio que lo hagan con este proveedor de identidad. El operador de la infraestructura asigna este nombre de dominio.

    Si se aplica más de un perfil a la vez, se debe asignar un nombre de dominio diferente a cada perfil.

    Consulta Configura el nombre de dominio para acceder al centro de administración a fin de obtener detalles sobre la configuración de un nombre de dominio.

  4. Ingresa un nombre de usuario inicial que obtendrá derechos de acceso de administrador de plataforma (p. ej., alice@example.com, bob@example.com). El nombre de usuario debe tener el prefijo del usuario configurado en el perfil. Por ejemplo, si el prefijo es prefix-, el nombre de usuario en el campo Administrador de plataforma inicial debería verse como prefix-alice@example.com. Consulta más detalles sobre los administradores de plataforma y la autorización en Funciones de autorización.

  5. Aplica la configuración y espera unos minutos hasta que se apliquen las configuraciones y se reinicien los servicios.

Ahora puedes acceder al Centro de administración con tu nombre de dominio. Si no has accedido, se te redireccionará a tu proveedor de OIDC para acceder.

Accede con OIDC al servidor de la API de Kubernetes del clúster de administrador

Los usuarios pueden descargar admin-actl-auth-login-config.yaml desde la página Identidad y acceso después de configurar OIDC.

  1. En la página Identidad y acceso, haz clic en la pestaña Identidad y, luego, en la pestaña Clúster.

  2. Busca el clúster llamado administrador y haz clic en Ver detalles de configuración.

  3. Haz clic en Descargar configuración de acceso a fin de descargar la configuración usada para acceder con identidad al servidor de la API de Kubernetes del clúster de administrador.

    Botón de descarga de configuración de AIS

  4. El archivo de salida admin-actl-auth-login-config.yaml contiene la configuración necesaria para que los usuarios se autentiquen con el clúster de administrador. Comparte admin-actl-auth-login-config.yaml con usuarios de confianza que necesiten acceso al clúster.

  5. Después de adquirir admin-actl-auth-login-config.yaml, los usuarios pueden acceder mediante el comando actl auth login. Cuando los usuarios acceden de forma correcta a través de un navegador, se produce un archivo kubeconfig. Los usuarios pueden usar ese archivo nuevo para acceder al clúster con sus credenciales federadas:

    # Where to store the new kubeconfig
    export ADMIN_OIDC_KUBECONFIG=$(pwd)/admin-oidc-kubeconfig
    
    actl auth login --login-config=admin-actl-auth-login-config.yaml --cluster=admin \
      --kubeconfig=${ADMIN_OIDC_KUBECONFIG} \
      --preferred-auth="CONFIGURATION_NAME"
    

    Reemplaza CONFIGURATION_NAME por el nombre del perfil de identidad con el cual autenticar.

  6. Ahora los usuarios ahora pueden usar ${ADMIN_OIDC_KUBECONFIG} para acceder a los recursos del clúster de administrador, por ejemplo:

    kubectl get pods -n anthos-management-center --kubeconfig=${ADMIN_OIDC_KUBECONFIG}
    
  7. ${ADMIN_OIDC_KUBECONFIG} también se puede usar para autenticar comandos de la CLI actl, por ejemplo:

    actl platform management-center describe --kubeconfig=${ADMIN_OIDC_KUBECONFIG}
    

Restablece la configuración de autenticación

Si un administrador de la plataforma pierde acceso al Centro de administración debido a un error en la configuración de autenticación, ejecuta el siguiente comando para restablecer la autenticación OIDC a la configuración original y obtener la nueva URL de acceso al Centro de administración.

actl auth reset --kubeconfig=ADMIN_KUBECONFIG

# Get the new access URL to management center.
actl platform management-center describe --kubeconfig=ADMIN_KUBECONFIG