PWM은 LDAP 디렉터리용 오픈 소스 비밀번호 셀프 서비스 애플리케이션입니다.
공식 프로젝트 페이지는 https://github.com/pwm-project/pwm/입니다.
PWM은 Java 서블릿 기반 애플리케이션이며 Java 실행 가능한 단일 JAR 파일, 기존 서블릿 "WAR" 파일 및 도커 이미지로 패키지됩니다.
PWM 애플리케이션을 위한 최소 요구 사항.
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 JAR 애플리케이션에는 tomcat이 포함되어 있습니다. |
전쟁 | 표준 Java WAR(웹 아카이브) 애플리케이션 배포 모델을 사용하려면 서버에서 작동하는 Java 및 Tomcat 구성이 필요합니다. |
도커 | Docker 이미지에는 Java와 Tomcat이 포함되어 있습니다. |
모든 배포 유형의 경우 각 PWM 인스턴스에는 PWM의 구성, 로그 및 런타임 파일을 위해 로컬 서버에 정의된 applicationPath 디렉터리가 필요합니다. PWM이 구성되면 초기 웹 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 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에는 웹 기반 구성 편집기가 포함되어 있습니다. 구성 없이 PWM이 시작되면 웹 기반 구성 가이드가 관리자에게 기본 구성 정보를 묻는 메시지를 표시합니다. 모든 구성 정보는 애플리케이션 경로 디렉터리에 생성되는 PwmConfiguration.xml 파일에 저장됩니다. 애플리케이션 경로는 로컬 데이터베이스( LocalDB )(주로 캐시 또는 테스트 환경으로 사용됨), 로그 파일 및 임시 파일을 포함한 다른 파일에도 사용됩니다. 여러 PWM 서버를 병렬로 사용하는 경우 각 서버에는 동일한 PwmConfiguration.xml 파일이 있어야 합니다.
PWM은 구성 비밀번호를 사용하여 구성 수정 사항을 보호합니다. PWM에 대한 인증에는 구성된 관리 계정에 대한 LDAP 지원 로그인이 필요합니다. 초기 설정 시 또는 LDAP 디렉터리에 문제가 있는 경우 LDAP 기능을 사용할 수 없으면 구성에 액세스해야 할 수도 있습니다. 이를 위해 PWM에는 구성 비밀번호를 사용하여 구성을 편집할 수 있지만 다른 모든 최종 사용자 기능은 비활성화되는 "구성 모드"가 있습니다. 구성 모드는 PwmConfiguration.xml 파일을 편집하고 파일 상단 근처의 configIsEditable
속성을 변경하여 활성화/비활성화할 수 있으며 웹 UI에서도 변경할 수 있습니다.
PWM은 RDBMS(SQL 데이터베이스 서버라고도 함)를 사용하여 선택적으로 구성할 수 있습니다. 데이터베이스를 사용하도록 구성하면 질문/응답 답변, TOTP 토큰, 사용 기록 및 기타 데이터와 같은 PWM 사용자 메타데이터가 데이터베이스에 저장됩니다. 데이터베이스를 사용하도록 구성되지 않은 경우 PWM 사용자 메타데이터는 LDAP 디렉터리에 저장됩니다. 어느 것이 더 좋거나 나쁘지 않으며, 어떤 것을 사용하는지는 환경에 따라 다릅니다.
Java 지원 JDBC 드라이버가 있는 모든 SQL 서버가 작동해야 하며, PWM은 첫 번째 연결에서 자체 스키마를 생성합니다.
전제 조건 구축:
빌드 단계:
리눅스 예:
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/대상 |
도커 | 도커/대상 |