JAAS(Java Authentication and Authorization Service)에 대한 로그인 구성
JAAS(Java™ Authentication and Authorization Service)는 WebSphere® Application Server에서 새로운 기능입니다. JAAS는 CORBA(Common Object Request Broker Architecture) 프로그램 로그인 API를 대체하는 WebSphere Application Server 전략 인증 API(Application Programming Interface)입니다.
WebSphere Application Server는 JAAS에 대한 몇 가지 확장을 제공합니다.
- com.ibm.websphere.security.auth.WSSubject: com.ibm.websphere.security.auth.WSSubject
API는 JAAS 권한 모델을 J2EE(Java 2 Platform, Enterprise Edition) 자원으로 확장합니다. 관리 콘솔에서 또는 스크립트 함수를 사용하여
JAAS 로그인을 구성하고 이 구성을 WebSphere Application Server
구성 API에 저장할 수 있습니다. 그러나 WebSphere Application Server는 JAAS 기본 구현에서 제공하는 기본 JAAS
로그인 구성 형식(일반 텍스트 파일)을 계속 지원합니다. 중복 로그인 구성이
WebSphere Application Server 구성 API 및 일반 텍스트 파일 형식에 모두 정의된 경우,
WebSphere Application Server 구성 API의 구성이
우선순위가 더 높습니다. WebSphere
구성 API에서 로그인 구성을 정의할 때 얻을 수 있는 이점은 다음과 같습니다.
- JAAS 로그인 구성 정의 시 사용자 인터페이스가 지원됨
- JAAS 로그인 구성의 중앙 관리
- WebSphere Application Server, Network Deployment 제품 설치 시 JAAS 로그인 구성의 분배
JAAS 1.0 디자인상의 실수로 인해 javax.security.auth.Subject.getSubject 메소드는 java.security.AccessController.doPrivileged 코드 블록 내의 실행 스레드와 연관된 Subject를 리턴하지 않습니다. 이 경우 작동이 일관적으로 수행되지 않아 문제점이 발생할 수 있습니다. com.ibm.websphere.security.auth.WSSubject 확장은 Subject와 실행 스레드를 연관시키는 방안을 제공합니다. com.ibm.websphere.security.auth.WSSubject 확장은 JAAS 권한 모델을 J2EE 자원으로 확장합니다.
WebSphere Application Server에 자체 subject 클래스가 있는 이유: Subject.getSubject를 호출하여 Subject.doAs 블록의 주제를 검색할 수 있습니다. 그러나 Subject.doAs 블록에 AccessController.doPrivileged 호출이 있는 경우에는 이 프로시저가 실행되지 않습니다. 다음 예에서, s1은 s와 같지만, s2는 널입니다.* AccessController.doPrivileged() not only truncates the Subject propagation, * but also reduces the permissions. It does not include the JAAS security * policy defined for the principals in the Subject. Subject.doAs(s, new PrivilegedAction() { public Object run() { System.out.println("Within Subject.doAsPrivileged()"); Subject s1 = Subject.getSubject(AccessController.getContext()); AccessController.doPrivileged(new PrivilegedAction() { public Object run() { Subject s2 = Subject.getSubject(AccessController.getContext()); return null; } }); return null; } });
- JAAS 로그인 구성은 관리 콘솔에서 또는 스크립트
함수를 사용하여 구성하고 WebSphere Application Server 구성
저장소에 저장할 수 있습니다. 애플리케이션이 관리 콘솔에서
새 JAAS 로그인 구성을 정의할 수 있으며 WebSphere Application Server 구성 API에 저장되는 구성 저장소에서 데이터를 유지할
수 있습니다. 그러나 WebSphere Application Server는
JAAS 기본 구현에서 제공하는 기본 JAAS 로그인 구성 형식을 계속 지원합니다. 중복 로그인 구성이
WebSphere Application Server 구성 API 및 일반 텍스트 파일 형식에 모두 정의된 경우,
WebSphere Application Server 구성 API의 구성이
우선순위가 더 높습니다. WebSphere Application Server
구성 API에서 로그인 구성을 정의하면
다음과 같은 장점이 있습니다.
- JAAS 로그인 구성 정의 시 UI 지원
- JAAS 구성 로그인 구성을 중점적으로 관리할 수 있습니다.
- JAAS 구성 로그인 구성은 WebSphere Application Server, Network Deployment 설치에서 분배됩니다.
- 프록시 LoginModule: Proxy.LoginModule은 시스템 클래스 로더 대신 컨텍스트 클래스 로더가 모듈을 로드하기 위해 사용하는 구성된 사용자 또는 시스템 정의 모듈에 대한 프록시입니다. 기본 JAAS 구현은 클래스를 로드하기 위해 스레드 컨텍스트 클래스 로더를 사용하지 않습니다. LoginModule 클래스 파일이 애플리케이션 클래스 로더 또는 Java 확장 클래스 로더 클래스 경로에 없으면 LoginModule 모듈을 로드할 수 없습니다. WebSphere Application Server는 스레드 컨텍스트 클래스 로더를 사용하여 JAAS LoginModule을 로드하는 프록시 LoginModule 모듈을 제공합니다. LoginModule 구현은 애플리케이션 클래스 로더 또는 이 프록시 LoginModule 모듈이 있는 Java 확장 클래스 로더 클래스 경로에 있지 않아도 됩니다.
시스템 관리자는 각 애플리케이션에 사용할 인증 기술 또는 로그인 모듈을 판별하고, 로그인 구성에서 이들을 구성합니다. 구성 정보의 소스(예: 파일 또는 데이터베이스)는 현재 javax.security.auth.login.Configuration 구현에 따라 다릅니다. WebSphere Application Server 구현은 WebSphere Application Server 구성 API 보안 문서와 JAAS 구성 파일 모두에서(전자가 우선순위가 높음) 로그인 구성을 정의할 수 있도록 허용합니다.
- 을 클릭하십시오.
- JAAS(Java Authentication and Authorization Service) 아래에서 애플리케이션 로그인을 클릭하십시오.
WSLogin 모듈은 일반적으로 애플리케이션에서 사용할 수 있는 로그인 구성 및 LoginModule 구현을 정의합니다.
ClientContainer 모듈은 WSLogin 모듈과 유사한 LoginModule 구현 및 로그인 구성을 정의하지만, WebSphere Application Server 클라이언트 컨테이너의 요구사항을 강제 실행합니다.
DefaultPrincipalMapping 모듈은 인증된 WebSphere Application Server 사용자 ID를 지정된 백엔드 EIS(Enterprise information system)에 대한 사용자 인증 데이터 세트(사용자 ID 및 비밀번호)로 맵핑하기 위해 Java 2 커넥터가 일반적으로 사용하는 특수 LoginModule을 정의합니다. Java 2 커넥터와 DefaultMappingModule에 대한 자세한 정보는 Java 2 보안 절을 참조하십시오.
관리 콘솔을 사용하여 새 JAAS 로그인 구성을 추가하고 수정할 수 있습니다. 변경사항은 셀 레벨 보안 문서에 저장되며, 관리되는 모든 Application Server에 사용 가능합니다. 변경사항이 런타임에 유효하도록 하고 클라이언트 컨테이너 로그인 구성을 사용 가능하게 하려면, 애플리케이션 서버를 다시 시작해야 합니다.
WebSphere Application Server는 또한 WebSphere Application Server가 설치된 루트 디렉토리의 특성 서브디렉토리 아래에 있는 wsjaas.conf 파일에서 JAAS 구성 정보를 읽습니다. wsjaas.conf 파일에 대한 변경사항은 로컬 애플리케이션 서버만 사용하며 로컬 애플리케이션 서버를 다시 시작해야 적용됩니다. WebSphere Application Server 구성 API 보안 문서의 JAAS 구성은 wsjaas.conf 파일에 정의된 구성보다 우선순위가 높습니다. wsjaas.conf의 구성 항목은 WebSphere Application Server 구성 API 보안 문서에서 동일한 별명 이름을 사용하는 항목으로 대체됩니다.
관리 콘솔의 JAAS(Java Authentication and Authorization Service) 로그인 구성 항목은 구성이 저장될 때가 아니라 작성될 때 서버 런타임으로 전파됩니다. 그러나 삭제한 JAAS 로그인 구성 항목은 서버 런타임에서 제거되지 않습니다. 입력 내용을 제거하려면 새 구성을 저장한 뒤, 서버를 중지했다가 다시 시작하십시오.
- J2EE(Java 2 Platform, Enterprise Edition) JAAS(Java Authentication and Authorization Service)
- WebSphere Application Server용 JAAS
- WebSphere Application Server 보안