Saltar al contenido principal

Keycloak

El sistema Keycloak de JBoss es un sistema de gestión de identidades de código abierto y ampliamente utilizado que soporta la integración con aplicaciones a través de SAML y OpenID Connect. También puede operar como un intermediario de identidad entre otros proveedores como LDAP u otros proveedores SAML y aplicaciones que soportan SAML o OpenID Connect.

Aquí hay un ejemplo de cómo configurar una nueva entrada de cliente en Keycloak y configurar Casdoor para usarlo y permitir el inicio de sesión en la UI por usuarios de Keycloak que tienen acceso otorgado a través de la configuración de Keycloak.

Configurar Keycloak

Para este ejemplo, hagamos las siguientes elecciones de configuración y suposiciones:

  • Supongamos que estás ejecutando Casdoor en modo de desarrollo localmente. La UI de Casdoor está disponible en http://localhost:7001 y el servidor está disponible en http://localhost:8000. Reemplazar con la URL apropiada según sea necesario.
  • Supongamos que estás ejecutando Keycloak localmente. La UI de Keycloak está disponible en http://localhost:8080/auth.
  • Basado en eso, la URL del SP ACS para esta implementación será: http://localhost:8000/api/acs.
  • Nuestro ID de Entidad SP usará la misma URL: http://localhost:8000/api/acs.

Puedes usar el reino predeterminado o crear un nuevo reino.

Agregar reino de Keycloak

Reino de Keycloak

Agregar una entrada de cliente en Keycloak

información

Para más detalles sobre los Clientes de Keycloak, consultar la documentación de Keycloak.

Hacer clic en Clientes en el menú y luego hacer clic en Crear para ir a la página Agregar Cliente. Llenar los campos de la siguiente manera:

  • ID del Cliente: http://localhost:8000/api/acs - Esto será el ID de la Entidad SP utilizado en la configuración de Casdoor más adelante.
  • Protocolo del Cliente: saml.
  • Punto Final SAML del Cliente: http://localhost:8000/api/acs - Esta URL es donde quieres que el servidor de Keycloak envíe las solicitudes y respuestas SAML. Generalmente, las aplicaciones tienen una URL para procesar solicitudes SAML. Se pueden establecer múltiples URLs en la pestaña de Configuración del cliente.

Agregar cliente de Keycloak

Hacer clic en Guardar. Esta acción crea el cliente y te lleva a la pestaña Configuración.

Los siguientes son parte de la configuración:

  1. Nombre - Casdoor. Esto solo se usa para mostrar un nombre amigable a los usuarios de Keycloak en la UI de Keycloak. Puedes usar cualquier nombre que prefieras.
  2. Habilitado - Seleccionar on.
  3. Incluir Declaración de Autenticación - Seleccionar on.
  4. Firmar Documentos - Seleccionar on.
  5. Firmar Aserciones - Seleccionar off.
  6. Encriptar Aserciones - Seleccionar off.
  7. Firma de Cliente Requerida - Seleccionar off.
  8. Forzar Formato de Name ID - Seleccionar on.
  9. Formato de Name ID - Seleccionar username.
  10. URIs de Redirección Válidas - Agregar http://localhost:8000/api/acs.
  11. URL de Procesamiento SAML Principal - http://localhost:8000/api/acs.
  12. Configuración Fina de Punto Final SAML
    1. URL de Enlace POST del Servicio de Consumo de Aserción - http://localhost:8000/api/acs.
    2. URL de Enlace de Redirección del Servicio de Consumo de Aserción - http://localhost:8000/api/acs.

Guardar la configuración.

Configurar cliente de Keycloak

consejo

Si quieres firmar la solicitud de autenticación, necesitas habilitar la opción Firma de Cliente Requerida y subir el certificado generado por ti mismo. La clave privada y el certificado utilizados en Casdoor, token_jwt_key.key y token_jwt_key.pem, se encuentran en el directorio object. En Keycloak, necesitas hacer clic en la pestaña Claves, hacer clic en el botón Importar, seleccionar Formato de Archivo como Certificado PEM y subir el certificado.

Hacer clic en la pestaña Instalación.

Para Keycloak <= 5.0.0, seleccionar Opción de Formato - SAML Metadata IDPSSODescriptor y copiar los metadatos.

Para Keycloak 6.0.0+, seleccionar Opción de Formato - Archivos de Mod Auth Mellon y hacer clic en Descargar. Descomprimir el .zip descargado, localizar idp-metadata.xml y copiar los metadatos.

Descargar metadatos

Copiar metadatos

Configurar en Casdoor

Crear un nuevo proveedor en Casdoor.

Seleccionar categoría como SAML, tipo como Keycloak. Copiar el contenido de los metadatos y pegarlo en el campo Metadatos. Los valores de Punto Final, IdP y URL del Emisor se generarán automáticamente después de hacer clic en el botón Analizar. Finalmente, hacer clic en el botón Guardar.

consejo

Si habilitas la opción Firma de Cliente Requerida en Keycloak y subes el certificado, por favor habilita la opción Firmar solicitud en Casdoor.

Proveedor de Casdoor

Editar la aplicación que deseas configurar en Casdoor. Seleccionar el proveedor que acabas de agregar y hacer clic en el botón Guardar.

Agregar proveedor para la aplicación

Validar el efecto

Ir a la aplicación que acabas de configurar y encontrarás un icono de Keycloak en la página de inicio de sesión.

Hacer clic en el icono y serás redirigido a la página de inicio de sesión de Keycloak. Después de una autenticación exitosa, iniciarás sesión en Casdoor.

Inicio de sesión de Casdoor