PWM 是一个用于 LDAP 目录的开源密码自助服务应用程序。
官方项目页面位于 https://github.com/pwm-project/pwm/。
PWM 是一个基于 Java Servlet 的应用程序,并打包为 Java 可执行单个 JAR 文件、传统 Servlet“WAR”文件和 docker 映像。
PWM 应用的最低要求。
脉宽调制版本 | 爪哇 [^1] | 服务程序 | 雄猫[^2] |
---|---|---|---|
v2.1.x | 17+ | 3.0 | 9 |
v2.0.x | 11+ | 3.0 | 8-9 |
v1.9.x(停产) | 8-11 | 3.0 | 7-9 |
[^1] 对于特定的 Java 实现没有要求,PWM 构建使用 Adoptium。
[^2] Tomcat 不是明确的要求,但它是 PWM 最常用的容器,并且用于 docker 和 onejar 构建。
PWM分布在以下神器中,你可以使用最方便的一个。
人工制品 | 描述 |
---|---|
Java可执行文件 | 命令行可执行 Java JAR 应用程序,包括 tomcat。 |
战争 | 标准 Java WAR(Web Archive)应用程序部署模型,您的服务器上需要有有效的 java 和 tomcat 配置。 |
码头工人 | Docker镜像包括Java和Tomcat。 |
对于所有部署类型,每个 PWM 实例都需要在本地服务器上定义一个applicationPath目录,用于 PWM 的配置、日志和运行时文件。配置 PWM 后,初始 Web UI 将提示管理员进行 LDAP 和其他配置设置。
与 PWM 一起发布的“onejar”工件具有嵌入式 tomcat 实例,因此您无需安装 tomcat 即可使用此版本。它非常适合测试和评估 PWM。您将负责使其作为服务运行(如果需要)。
要求:
帮助:
java -version
确保您有 java 11 或更高版本java -jar pwm-onejar-2.0.0.jar
用于命令行帮助运行 onejar 可执行文件的示例(/pwm-applicationPath 是applicationPath目录的位置):
java -jar pwm-onejar-2.0.0.jar -applicationPath /pwm-applicationPath
默认情况下,可执行文件将保持连接到控制台并侦听端口 8443 上的 HTTPS 连接。
步骤:
PWM docker 镜像包含 Java 和 Tomcat。它在端口 8443 上使用 https 进行侦听,并有一个公开为/config
卷。您需要将/config
卷映射到某种类型的持久 docker 卷,以便 PWM 保留配置。
要求:
步骤:
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
在配置 PWM 之前,您应该使用 LDAP 浏览器/编辑器来确保 LDAP 环境的预期功能。配置 PWM 时遇到的大多数困难都是由于 LDAP 设置问题或不熟悉 LDAP 造成的。有许多可用的 LDAP 浏览器,常见的一个是 Apache Directory Studio。使用浏览器导航 LDAP 环境、熟悉目录结构并验证预期行为。
特别是,Active Directory LDAP 可能会出现问题,因为与其他 LDAP 目录相比,它经常配置错误并且表现异常。具体来说,AD LDAP 使用引用将 LDAP 客户端(在本例中为 PWM)重定向到其选择的服务器,因此 PWM 必须能够使用 AD 配置的 DNS 名称来联系 AD 环境中的所有域控制器服务器实例。 AD LDAP 还必须配置为使用 SSL 证书才能进行密码修改。但是,如果 AD 环境配置良好,则 PWM 可以正常工作。
PWM 包括一个基于 Web 的配置编辑器。当 PWM 在没有配置的情况下启动时,基于 Web 的配置指南将提示管理员输入基本配置信息。所有配置信息都存储在PwmConfiguration.xml文件中,该文件将在应用程序路径目录中创建。应用程序路径还用于其他文件,包括本地数据库 ( LocalDB )(主要用作缓存或测试环境)、日志文件和临时文件。如果并行使用多个 PWM 服务器,则每个服务器必须具有相同的PwmConfiguration.xml文件。
PWM 使用配置密码来保护对配置的任何修改。 PWM 身份验证需要通过 LDAP 支持登录到已配置的管理帐户。在早期设置中或在 LDAP 目录出现问题的情况下,当 LDAP 功能不可用时,可能需要访问配置。为此,PWM 有一个“配置模式”,允许使用配置密码编辑配置,但禁用所有其他最终用户功能。可以通过编辑PwmConfiguration.xml文件并更改文件顶部附近的configIsEditable
属性来启用/禁用配置模式,也可以在 Web UI 中进行更改。
可以选择使用 RDBMS(也称为 SQL 数据库服务器)配置 PWM。当配置为使用数据库时,PWM 用户元数据(例如质询/响应答案、TOTP 令牌、使用记录和其他数据)将存储在数据库中。当未配置为使用数据库时,PWM 用户元数据将存储到 LDAP 目录中。没有好坏之分,您使用哪一种取决于您的环境。
任何具有 Java 支持的 JDBC 驱动程序的 SQL 服务器都应该可以工作,PWM 将在第一个连接上创建自己的模式。
构建先决条件:
构建步骤:
Linux 示例:
export JAVA_HOME="/home/vm/JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
./mvnw clean verify
Windows 示例:
set JAVA_HOME="c:JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
mvnw.cmd clean verify
在 Windows 上,我们建议对 PWM 和 JDK 目录使用不带空格的路径。
创建的工件:
格式 | 目录 |
---|---|
战争 | 网络应用程序/目标 |
可执行文件 | onejar/目标 |
码头工人 | 码头工人/目标 |