Pular para o conteúdo 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.

Adicionar realm Keycloak

Realm do Keycloak

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.

Adicionar cliente Keycloak

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:

  1. Name — e.g. Casdoor; any friendly name for the Keycloak UI.
  2. Habilitado - Selecione on.
  3. Incluir Declaração de Autenticação - Selecione on.
  4. Assinar Documentos - Selecione on.
  5. Assinar Asserções - Selecione off.
  6. Criptografar Asserções - Selecione off.
  7. Assinatura do Cliente Obrigatória - Selecione off.
  8. Forçar Formato de Name ID - Selecione on.
  9. Formato de Name ID - Selecione username.
  10. URIs de Redirecionamento Válidos - Adicione http://localhost:8000/api/acs.
  11. URL de Processamento SAML Principal - http://localhost:8000/api/acs.
  12. Configuração Fina de Endpoint SAML
    1. URL de Binding POST do Serviço de Consumo de Asserção - http://localhost:8000/api/acs.
    2. URL de Binding de Redirecionamento do Serviço de Consumo de Asserção - http://localhost:8000/api/acs.

Salvar a configuração.

Configurar cliente Keycloak

dica

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.

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.

Baixar metadados

Copiar 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.

dica

If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in Casdoor.

Provedor 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.

Adicionar provedor para aplicativo

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.

Login Casdoor