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.


Adicionar uma entrada de cliente no Keycloak
Clique em Clientes no menu e depois clique em Criar para ir à página Adicionar Cliente. Preencha os campos da seguinte forma:
- ID do Cliente:
http://localhost:8000/api/acs- Este será o ID da Entidade SP usado na configuração do Casdoor mais tarde. - Protocolo do Cliente:
saml. - Endpoint SAML do Cliente:
http://localhost:8000/api/acs- Esta URL é onde você deseja que o servidor Keycloak envie solicitações e respostas SAML. Geralmente, aplicações têm uma URL para processar solicitações SAML. Múltiplas URLs podem ser configuradas na aba Configurações do cliente.

Clique em Salvar. Esta ação cria o cliente e o leva para a aba Configurações.
As seguintes são parte das configurações:
- Name — e.g.
Casdoor; any friendly name for the Keycloak UI. - Habilitado - Selecione
on. - Incluir Declaração de Autenticação - Selecione
on. - Assinar Documentos - Selecione
on. - Assinar Asserções - Selecione
off. - Criptografar Asserções - Selecione
off. - Assinatura do Cliente Obrigatória - Selecione
off. - Forçar Formato de Name ID - Selecione
on. - Formato de Name ID - Selecione
username. - URIs de Redirecionamento Válidos - Adicione
http://localhost:8000/api/acs. - URL de Processamento SAML Principal -
http://localhost:8000/api/acs. - Configuração Fina de Endpoint SAML
- URL de Binding POST do Serviço de Consumo de Asserção -
http://localhost:8000/api/acs. - URL de Binding de Redirecionamento do Serviço de Consumo de Asserção -
http://localhost:8000/api/acs.
- URL de Binding POST do Serviço de Consumo de Asserção -
Salvar a configuração.

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.
Clique na aba Instalação.
For Keycloak <= 5.0.0, select Format Option - SAML Metadata IDPSSODescriptor and copy the metadata.
Para Keycloak 6.0.0+, selecione Opção de Formato - Arquivos Mod Auth Mellon e clique em Baixar. Descompacte o .zip baixado, localize idp-metadata.xml e copie os metadados.


Configurar no Casdoor
Criar um novo provedor no Casdoor.
Selecione a categoria como SAML, tipo como Keycloak. Copie o conteúdo dos metadados e cole no campo Metadados. Os valores de Endpoint, IdP e URL do Emissor serão gerados automaticamente após clicar no botão Analisar. Finalmente, clique no botão Salvar.
If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in Casdoor.

Edite a aplicação que você deseja configurar no Casdoor. Selecione o provedor que você acabou de adicionar e clique no botão Salvar.

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.
