JAAS(Java™ Authentication
and Authorization Service) 로그인 프레임워크를 사용하면 Liberty 프로파일에서
ID 어설션에 대한 로그인을 수행하는 데 사용할 수 있는 JAAS 로그인 구성을 작성할 수 있습니다.
이 태스크 정보
신뢰 유효성 검증으로 ID 어설션을 구성하여,
애플리케이션은 JAAS 로그인 구성을 사용하여 프로그래밍 방식 ID
어설션을 수행할 수 있습니다. 세부사항은 IdentityAssertionLoginModule의
내용을 참조하십시오.
프로시저
- 신뢰 유효성 검증을 사용자 구현 플러그인 위치에 위임하십시오.
신뢰 유효성 검증은 사용자 정의 로그인 모듈에 의해 수행됩니다.
이 사용자 정의 로그인 모듈은 필요한 신뢰 유효성 검증을 수행한 다음,
공유 상태의 신뢰 및 ID 정보를 ID 어설션 로그인 모듈에 전달하도록 설정합니다.
다음과 같은 공유 상태 키에서는 맵이 필수입니다.
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
상태가 누락된 경우
WSLoginFailedException 문제점이
IdentityAssertionLoginModule에서 보고됩니다.
공유 상태 키의 맵은 다음과 같은 키 이름을 갖는 신뢰 키를 포함해야 합니다.
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trust
이 키가
true로 설정된 경우 신뢰가 설정됩니다.
이 키가
false로 설정된 경우 신뢰가 사용되도록 설정되지 않으며
IdentityAssertionLoginModule 클래스가
WSLoginFailedException 문제점을 작성합니다.
또한 공유 상태 키의 맵은 다음 자원 중 하나를 설정해야 합니다.
프린시펄과 인증서가 모두 제공된 경우 프린시펄이 사용되며 경고가 보고됩니다.
- 애플리케이션 로그인을 위한 JAAS 구성을 작성하십시오. JAAS 구성에는 사용자가 구현한 신뢰 유효성 검증 사용자 정의 로그인 모듈과
IdentityAssertionLoginModule이 포함됩니다.
애플리케이션 로그인 구성을 구성하려면, 다음 코드를
server.xml 파일에 추가하십시오.
<jaasLoginContextEntry id="CustomIdentityAssertion" name="CustomIdentityAssertion" loginModuleRef="customIdentityAssertion,identityAssertion" />
<jaasLoginModule id="customIdentityAssertion" className="com.ibm.ws.security.authentication.IdentityAssertionLoginModule" controlFlag="REQUIRED" libraryRef="customLoginLib"/>
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="IdentityAssertionLoginModule.jar"/>
</library>
이 JAAS 구성은 ID 어설션을
수행하기 위해 애플리케이션에서 사용됩니다.
- 프로그래밍 가능한 ID 어설션을 수행하십시오. 프로그램은 이제 JAAS 로그인 구성을 사용하여 프로그래밍 방식
ID 어설션을 수행할 수 있습니다. 애플리케이션 프로그램은
단계 2에서 작성된 JAAS 구성에 대해 로그인 컨텍스트를 작성한 다음
어설션하는 ID로 해당 로그인 컨텍스트에 로그인할 수 있습니다. 로그인이 성공하면
해당 ID를 현재 실행 중인 프로세스에서 설정할 수 있습니다. 다음 예제는 이 프로세스를 보여줍니다.
NameCallback handler = new NameCallback(new MyPrincipal("Joe"));
LoginContext lc = new LoginContext("customIdentityAssertion", handler);
lc.login(); //assume successful
Subject s = lc.getSubject();
WSSubject.setRunAsSubject(s);
// From here on , the runas identity is "Joe"
참고: 예제에서 MyPrincipal 클래스는
java.security.Principal 인터페이스의 구현입니다.
결과
JAAS 로그인 프레임워크 및 두 개의 사용자 구현 로그인 모듈을 사용하면
ID 어설션에 대한 로그인을 수행하는 데 사용될 수 있는 JAAS 로그인 구성을 작성할 수 있습니다.