Keycloak SAML
Keycloak is an open-source IdP that supports SAML and OpenID Connect and can broker LDAP or other SAML IdPs. This guide configures a Keycloak SAML client and Casdoor so Keycloak users can sign in to Casdoor.
Configurar Keycloak
Example assumptions:
- Casdoor: UI at
http://localhost:7001, API athttp://localhost:8000. Adjust for your deployment. - Keycloak: UI at
http://localhost:8080/auth. - SP ACS URL and Entity ID:
http://localhost:8000/api/acs.
The /api/acs endpoint only accepts POST requests. Ensure Keycloak is configured to use HTTP POST binding for SAML responses.
Use the default realm or create a new one.


Agregar una entrada de cliente en 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:
- Name — e.g.
Casdoor; any friendly name for the Keycloak UI. - 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.

To sign the authn request: enable Client Signature Required and upload your certificate. Casdoor’s private key and certificate (token_jwt_key.key, token_jwt_key.pem) are in the object directory. In Keycloak open Keys → Import → Archive Format → Certificate PEM and upload the certificate.
Hacer clic en la pestaña Instalación.
For Keycloak <= 5.0.0, select Format Option - SAML Metadata IDPSSODescriptor and copy the metadata.
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.
If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in 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.

Test
Open the application’s login page; a Keycloak option appears. Click it to sign in via Keycloak; after success you are logged into Casdoor.
