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/目標 |
碼頭工人 | 碼頭工人/目標 |