PWM é um aplicativo de autoatendimento de senha de código aberto para diretórios LDAP.
A página oficial do projeto está em https://github.com/pwm-project/pwm/.
PWM é um aplicativo baseado em Java Servlet e é empacotado como um único arquivo JAR executável Java, arquivo "WAR" de Servlet tradicional e imagem docker.
Requisitos mínimos para aplicação PWM.
Versão PWM | Java [^1] | Servlets | Tomcat [^2] |
---|---|---|---|
v2.1.x | 17+ | 3,0 | 9 |
v2.0.x | 11+ | 3,0 | 8-9 |
v1.9.x (EOL) | 8-11 | 3,0 | 7-9 |
[^1] Não há requisitos para uma implementação Java específica, as compilações PWM usam Adoptium.
[^2] Tomcat não é um requisito explícito, mas é o contêiner mais comum usado com PWM e aquele usado para compilações docker e onejar.
O PWM é distribuído nos seguintes artefatos, você pode usar o que for mais conveniente.
Artefato | Descrição |
---|---|
Executável Java | Aplicativo Java JAR executável de linha de comando, inclui Tomcat. |
GUERRA | Modelo de implantação de aplicativo Java WAR (Web Archive) padrão, você precisa ter uma configuração Java e Tomcat funcional em seu servidor. |
Docker | A imagem Docker inclui Java e Tomcat. |
Para todos os tipos de implantação, cada instância do PWM precisará de um diretório applicationPath definido em seu servidor local para os arquivos de configuração, log e tempo de execução do PWM. Depois que o PWM estiver configurado, a interface da web inicial solicitará ao administrador o LDAP e outras definições de configuração.
O artefato 'onejar' lançado com PWM possui uma instância do Tomcat incorporada, portanto, você não precisa instalar o Tomcat para usar esta versão. É ideal para testar e avaliar PWM. Você será responsável por fazê-lo funcionar como um serviço (se desejar).
Requisitos:
Ajuda:
java -version
para garantir que você tenha o java 11 ou melhor disponíveljava -jar pwm-onejar-2.0.0.jar
para ajuda da linha de comandoExemplo de execução do executável onejar (com /pwm-applicationPath sendo o local do diretório applicationPath ):
java -jar pwm-onejar-2.0.0.jar -applicationPath /pwm-applicationPath
Por padrão, o executável permanecerá anexado ao console e escutará conexões HTTPS na porta 8443.
Passos:
A imagem do Docker PWM inclui Java e Tomcat. Ele escuta usando https na porta 8443 e tem um volume exposto como /config
. Você precisará mapear o volume /config
para algum tipo de volume docker persistente para que o PWM retenha a configuração.
Requisitos:
Passos:
docker load --input=pwm-docker-image-v2.0.0.tar
docker create --name mypwm -p '8443:8443' --mount 'type=bind,source=/home/user/pwm-config,destination=/config' pwm/pwm-webapp
docker start mypwm
Antes de configurar o PWM, você deve usar um navegador/editor LDAP para garantir a funcionalidade esperada do seu ambiente LDAP. A maioria das dificuldades encontradas na configuração do PWM se devem a problemas de configuração do LDAP ou à falta de familiaridade com o LDAP. Existem muitos navegadores LDAP disponíveis, um comum é o Apache Directrory Studio. Use o navegador para navegar no ambiente LDAP, familiarizar-se com a estrutura de diretórios e verificar o comportamento esperado.
Em particular, o LDAP do Active Directory pode ser problemático porque geralmente é configurado incorretamente e se comporta de maneira incomum em comparação com outros diretórios LDAP. Especificamente, o AD LDAP usa referências para redirecionar o cliente LDAP (neste caso, PWM) para servidores de sua escolha, portanto, o PWM deve ser capaz de entrar em contato com todas as instâncias de servidor do controlador de domínio no ambiente AD usando o nome DNS configurado pelo AD. O AD LDAP também deve ser configurado para usar certificados SSL para que as modificações de senha funcionem. No entanto, se o ambiente AD estiver bem configurado, o PWM funcionará bem com ele.
PWM inclui um editor de configuração baseado na web. Quando o PWM é iniciado sem configuração, um guia de configuração baseado na Web solicitará ao administrador informações básicas de configuração. Todas as informações de configuração são armazenadas no arquivo PwmConfiguration.xml , que será criado no diretório do caminho da aplicação. O caminho do aplicativo também é usado para outros arquivos, incluindo um banco de dados local ( LocalDB ) (usado principalmente como cache ou para ambientes de teste), arquivos de log e arquivos temporários. Se vários servidores PWM forem usados em paralelo, cada servidor deverá ter arquivos PwmConfiguration.xml idênticos.
O PWM usa uma senha de configuração para proteger quaisquer modificações na configuração. A autenticação para PWM requer um login baseado em LDAP para uma conta administrativa configurada. Na configuração inicial ou em casos de problemas com o diretório LDAP, pode ser necessário acessar a configuração quando a funcionalidade do LDAP não estiver disponível. Para isso, o PWM possui um “modo de configuração” que permite editar a configuração com a senha de configuração, mas desabilita todas as outras funcionalidades do usuário final. O modo de configuração pode ser ativado/desativado editando o arquivo PwmConfiguration.xml e alterando a propriedade configIsEditable
próximo ao topo do arquivo, e também pode ser alterado na UI da web.
O PWM pode opcionalmente ser configurado com um RDBMS (também conhecido como servidor de banco de dados SQL). Quando configurado para usar um banco de dados, os metadados do usuário PWM, como respostas de desafio/resposta, tokens TOTP, registros de uso e outros dados, serão armazenados no banco de dados. Quando não estiver configurado para usar um banco de dados, os metadados do usuário PWM serão armazenados no diretório LDAP. Nem é melhor nem pior, qual você usa depende do seu ambiente.
Qualquer servidor SQL que tenha um driver JDBC compatível com Java deve funcionar, o PWM criará seu próprio esquema na primeira conexão.
Pré-requisitos de construção:
Etapas de construção:
Exemplo Linux:
export JAVA_HOME="/home/vm/JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
./mvnw clean verify
Exemplo do Windows:
set JAVA_HOME="c:JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
mvnw.cmd clean verify
No Windows, recomendamos usar caminhos sem espaços para diretórios PWM e JDK.
Artefatos criados:
Formatar | Diretório |
---|---|
GUERRA | webapp/destino |
Executável | onejar/alvo |
Docker | janela de encaixe/destino |