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 enhttp://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 una entrada de cliente en Keycloak
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.
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:
- 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. - Habilitado - Seleccionar
on
. - Incluir Declaración de Autenticación - Seleccionar
on
. - Firmar Documentos - Seleccionar
on
. - Firmar Aserciones - Seleccionar
off
. - Encriptar Aserciones - Seleccionar
off
. - Firma de Cliente Requerida - Seleccionar
off
. - Forzar Formato de Name ID - Seleccionar
on
. - Formato de Name ID - Seleccionar
username
. - URIs de Redirección Válidas - Agregar
http://localhost:8000/api/acs
. - URL de Procesamiento SAML Principal -
http://localhost:8000/api/acs
. - Configuración Fina de Punto Final SAML
- URL de Enlace POST del Servicio de Consumo de Aserción -
http://localhost:8000/api/acs
. - URL de Enlace de Redirección del Servicio de Consumo de Aserción -
http://localhost:8000/api/acs
.
- URL de Enlace POST del Servicio de Consumo de Aserción -
Guardar la configuración.
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.
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.
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.
Editar la aplicación que deseas configurar en Casdoor. Seleccionar el proveedor que acabas de agregar y hacer clic en el botón Guardar.
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.