Saltar al contenido principal

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 at http://localhost:8000. Adjust for your deployment.
  • Keycloak: UI at http://localhost:8080/auth.
  • SP ACS URL and Entity ID: http://localhost:8000/api/acs.
nota

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 reino de Keycloak

Reino de Keycloak

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.

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. Name — e.g. Casdoor; any friendly name for the Keycloak UI.
  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

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 KeysImportArchive FormatCertificate 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.

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

If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in 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

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.

Inicio de sesión de Casdoor