Keycloak: Automatice con la CLI

Inicie Keycloak, recupere sus credenciales y modifique su configuración de forma programática con la CLI de Stackhero

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece un servicio de Keycloak en la nube que le permite desplegar un proveedor de identidad listo para producción en solo 2 minutos:

  • Usuarios, realms y clientes ilimitados
  • Compatible con OpenID Connect, OAuth 2.0, SAML 2.0, inicio de sesión social, federación LDAP y Active Directory
  • Nombre de dominio personalizado con HTTPS integrado para un acceso seguro (por ejemplo, https://login.su-empresa.com)
  • Temas personalizados: personalice fácilmente sus páginas de inicio de sesión, la consola de cuentas y los correos electrónicos con el editor online incluido
  • Servidor de correo electrónico dedicado con SPF, DKIM y DMARC, para que las confirmaciones de cuenta y los restablecimientos de contraseña se gestionen automáticamente
  • Base de datos PostgreSQL integrada, con la consola de administración disponible en un puerto dedicado y cerrable
  • Actualizaciones con un solo clic para mantener su sistema siempre actualizado sin intervención manual

Dedique su tiempo a desarrollar, no a configurar: puede probar la solución Keycloak en la nube de Stackhero en menos de 5 minutos.

Esta guía muestra cómo crear un servicio Keycloak, leer sus credenciales y actualizar su configuración completamente desde la línea de comandos, sin necesidad de hacer clic en el panel de control. Es ideal para scripts, pipelines de CI y agentes de IA.

Utilizaremos la CLI de Stackhero para todas las tareas. Si aún no la ha instalado, puede hacerlo con:

curl -fsSL https://www.stackhero.io/install.sh | sh

La forma más sencilla de empezar es iniciar sesión a través de su navegador. Cuando ejecuta el comando de login, la CLI abre una página web donde puede aprobar el acceso. No se introducen contraseñas ni códigos 2FA en la propia CLI.

stackhero login

Después de iniciar sesión, sus credenciales se almacenan localmente y se utilizarán automáticamente en los siguientes comandos de la CLI.

Para entornos completamente automatizados como scripts o pipelines de CI, puede preferir un token de acceso no interactivo. Puede crearlo desde su panel de control (Cuenta > Access tokens) y exportarlo como una variable de entorno. La CLI, y cualquier script que ejecute, lo detectará automáticamente.

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

A continuación, querrá listar los stores de servicio Keycloak disponibles en su cuenta. La CLI acepta directamente el nombre del store (keycloak), por lo que no es necesario buscar ni copiar ningún ID.

# Listar los stores de servicio Keycloak (añada --organization si gestiona más de uno)
stackhero services-store-list --name="keycloak"

Puede referirse al nombre del store keycloak en los siguientes comandos, o elegir un ID específico svs-xxxxxx de la lista si lo prefiere.

# Listar los tamaños de instancia para su store de servicio (utilice la columna NAME para --instance)
stackhero instances-store-list --service-store=keycloak

# Listar las regiones disponibles (nombres como "europe")
stackhero regions-list

Aquí tiene un ejemplo de script que crea un stack, añade su servicio Keycloak, espera a que se inicie, recupera su configuración (incluyendo las credenciales generadas) y luego aplica una nueva configuración.

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="keycloak"   # El nombre del store de servicio Keycloak (ver paso 2)
instance="..."                # Un tamaño de instancia del paso 3
region="europe"               # Un nombre de región del paso 3

# Crear un stack para su servicio (usa su organización por defecto; añada --organization si es necesario)
stackId=$(stackhero --format=script stack-create \
  --name="My Keycloak stack")
echo "Stack creado: ${stackId}"

# Añadir Keycloak al stack (los nombres se resuelven automáticamente)
serviceId=$(stackhero --format=script service-add \
  --stack="My Keycloak stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Servicio añadido: keycloak"

# Esperar a que el servicio esté completamente en funcionamiento (esto puede tardar un par de minutos)
stackhero service-wait-for --service="keycloak"

# Recuperar la configuración del servicio, incluidas las credenciales generadas
stackhero service-configuration-get --service="keycloak" --format=json

El comando service-configuration-get devuelve la configuración completa de su servicio, incluidas las contraseñas generadas automáticamente y los datos de conexión. El resultado está en formato JSON, lo que facilita su uso en scripts y automatizaciones.

stackhero service-configuration-get --service=svc-xxxxxx --format=json

Puede consultar un ejemplo de esquema de configuración y luego aplicar sus propios ajustes. Al actualizar la configuración, el servicio puede reiniciarse para aplicar los cambios.

# Ver el esquema de configuración y un ejemplo para su servicio
stackhero service-configuration-example --service=svc-xxxxxx

# Aplicar una configuración personalizada (el servicio se reinicia si es necesario)
stackhero service-configuration-set \
  --service=svc-xxxxxx \
  --configuration='{ "...": "..." }'

# Esperar a que se aplique la nueva configuración
stackhero service-wait-for --service=svc-xxxxxx

Eso es todo. Ahora ha visto el ciclo completo: iniciar un servicio, recuperar sus credenciales y reconfigurarlo, todo de forma automatizada y mediante scripts. Para profundizar más, consulte la documentación completa de la CLI, que también cubre la autenticación no interactiva con STACKHERO_TOKEN mostrada aquí.