PWM は、LDAP ディレクトリ用のオープンソースのパスワード セルフサービス アプリケーションです。
公式プロジェクト ページは https://github.com/pwm-project/pwm/ にあります。
PWM は Java サーブレット ベースのアプリケーションであり、Java 実行可能な単一の JAR ファイル、従来のサーブレット「WAR」ファイル、および Docker イメージとしてパッケージ化されています。
PWM アプリケーションの最小要件。
PWMバージョン | ジャワ [^1] | サーブレット | トムキャット [^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] 特定の Java 実装に対する要件はありません。PWM ビルドでは Adoptium が使用されます。
[^2] Tomcat は明示的な要件ではありませんが、PWM で使用される最も一般的なコンテナであり、docker および onejar ビルドに使用されるコンテナです。
PWM は次のアーティファクトで配布されており、使いやすいものを使用できます。
アーチファクト | 説明 |
---|---|
Java 実行可能ファイル | コマンドラインで実行可能な Java JAR アプリケーション。Tomcat が含まれます。 |
戦争 | 標準の Java WAR (Web アーカイブ) アプリケーション デプロイメント モデルでは、サーバー上で動作する Java および Tomcat 構成が必要です。 |
ドッカー | Docker イメージには Java と Tomcat が含まれています。 |
すべての展開タイプにおいて、各 PWM インスタンスには、PWM の構成、ログ、およびランタイム ファイル用にローカル サーバー上で定義されたapplicationPathディレクトリが必要です。 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
として公開されるボリュームを持ちます。 PWM が構成を保持するには、 /config
ボリュームをある種の永続的な Docker ボリュームにマップする必要があります。
要件:
手順:
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 環境内のすべてのドメイン コントローラー サーバー インスタンスに接続できる必要があります。パスワード変更を機能させるには、SSL 証明書を使用するように AD LDAP を構成する必要もあります。ただし、AD 環境が適切に構成されていれば、PWM は問題なく動作します。
PWM には、Web ベースの構成エディターが含まれています。 PWM が設定なしで開始されると、Web ベースの設定ガイドが管理者に基本的な設定情報の入力を求めます。すべての構成情報は、アプリケーション パス ディレクトリに作成されるPwmConfiguration.xmlファイルに保存されます。アプリケーション パスは、ローカル データベース ( LocalDB ) (主にキャッシュまたはテスト環境として使用される)、ログ ファイル、一時ファイルなどの他のファイルにも使用されます。複数の PWM サーバーを並行して使用する場合は、各サーバーに同一のPwmConfiguration.xmlファイルが必要です。
PWM は構成パスワードを使用して、構成への変更を保護します。 PWM への認証には、構成された管理アカウントへの LDAP ベースのログインが必要です。セットアップの初期段階または LDAP ディレクトリに問題が発生した場合、LDAP が機能的に使用できないときに構成にアクセスする必要がある場合があります。この目的のために、PWM には、構成パスワードを使用して構成を編集できるようにする「構成モード」がありますが、他のすべてのエンドユーザー機能は無効になります。構成モードは、 PwmConfiguration.xmlファイルを編集し、ファイルの先頭近くにあるconfigIsEditable
プロパティを変更することで有効/無効にすることができます。また、Web UI で変更することもできます。
PWM は、オプションで RDBMS (SQL データベース サーバーとも呼ばれる) を使用して構成できます。データベースを使用するように構成されている場合、チャレンジ/レスポンスの回答、TOTP トークン、使用状況レコード、その他のデータなどの PWM ユーザー メタデータがデータベースに保存されます。データベースを使用するように構成されていない場合、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 ディレクトリの両方にスペースを含まないパスを使用することをお勧めします。
作成されたアーティファクト:
形式 | ディレクトリ |
---|---|
戦争 | ウェブアプリ/ターゲット |
実行可能 | 1 つのjar/ターゲット |
ドッカー | ドッカー/ターゲット |