Pular para o conteúdo principal

Keycloak

O sistema JBoss Keycloak é um sistema de gerenciamento de identidade de código aberto e amplamente utilizado que suporta integração com aplicações via SAML e OpenID Connect. Ele também pode operar como um corretor de identidade entre outros provedores, como LDAP ou outros provedores SAML, e aplicações que suportam SAML ou OpenID Connect.

Aqui está um exemplo de como configurar uma nova entrada de cliente no Keycloak e configurar o Casdoor para usá-lo para permitir o login na UI por usuários do Keycloak que são concedidos acesso através da configuração do Keycloak.

Configurar Keycloak

Para este exemplo, vamos fazer as seguintes escolhas de configuração e suposições:

  • Suponha que você esteja executando o Casdoor em modo dev localmente. A UI do Casdoor está disponível em http://localhost:7001 e o servidor está disponível em http://localhost:8000. Substitua pela URL apropriada conforme necessário.
  • Suponha que você esteja executando o Keycloak localmente. A UI do Keycloak está disponível em http://localhost:8080/auth.
  • Com base nisso, a URL do SP ACS para esta implantação será: http://localhost:8000/api/acs.
  • Nosso ID da Entidade SP usará a mesma URL: http://localhost:8000/api/acs.

Você pode usar o realm padrão ou criar um novo realm.

Adicionar realm Keycloak

Realm do Keycloak

Adicionar uma entrada de cliente no Keycloak

informação

Para mais detalhes sobre Clientes Keycloak, consulte a documentação do 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. Nome - Casdoor. Isso é usado apenas para exibir um nome amigável para os usuários do Keycloak na UI do Keycloak. Você pode usar qualquer nome que preferir.
  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

Se você deseja assinar a solicitação de autenticação, você precisa habilitar a opção Assinatura do Cliente Obrigatória e carregar o certificado gerado por você mesmo. A chave privada e o certificado usados no Casdoor, token_jwt_key.key e token_jwt_key.pem, estão localizados no diretório object. No Keycloak, você precisa clicar na aba Chaves, clicar no botão Importar, selecionar Formato do Arquivo como Certificado PEM e carregar o certificado.

Clique na aba Instalação.

Para Keycloak <= 5.0.0, selecione Opção de Formato - SAML Metadata IDPSSODescriptor e copie os metadados.

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

Se você habilitar a opção Assinatura do Cliente Obrigatória no Keycloak e carregar o certificado, por favor habilite a opção Assinar solicitação no 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

Validar o efeito

Vá para a aplicação que você acabou de configurar e você encontrará um ícone do Keycloak na página de login.

Clique no ícone e você será redirecionado para a página de login do Keycloak. Após a autenticação bem-sucedida, você estará logado no Casdoor.

Login Casdoor