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 emhttp://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 uma entrada de cliente no Keycloak
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.
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:
- 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. - 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.
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.
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.
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.
Edite a aplicação que você deseja configurar no Casdoor. Selecione o provedor que você acabou de adicionar e clique no botão Salvar.
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.