데이터베이스 인증을 위한 JAAS 구성

데이터베이스 인증에JAAS(Java™ Authentication and Authorization Service) 를 사용할 수 있습니다.

이 태스크에 대한 정보

JAAS 로그인 컨텍스트 항목을 사용하여 데이터베이스에 인증하기 위해 사용자 이름 및 비밀번호를 설정하는 데 사용할 사용자 정의 로그인 모듈을 지정할 수 있습니다.

프로시저

  1. server.xml 파일에 appSecurity-2.0, jdbc-4.0jca-1.6 기능을 추가하십시오. appSecurity-2.0, jdbc-4.1jca-1.7도 추가할 수 있습니다. 예를 들면 다음과 같습니다.
    
    <featureManager>
       <feature>appSecurity-2.0</feature>
       <feature>jdbc-4.0</feature>
       <feature>jca-1.6</feature>
    </featureManager>
    안정화된 기능: jca-1.6 기능이 안정화되었습니다. jca-1.6 기능을 계속 사용할 수 있습니다. 하지만 후속 JCA 기능을 사용하는 것을 고려해 보십시오.
  2. 사용할 로그인 모듈을 사용하여 server.xml 파일에서 jaasLoginContextEntry 요소를 구성하십시오. 예를 들면 다음과 같습니다.
    
    <jaasLoginContextEntry id="myJAASLoginEntry" name="myJAASLoginEntry" loginModuleRef="myLoginModule" />
    	<jaasLoginModule id="myLoginModule" className="my.package.MyLoginModule" controlFlag="REQUIRED" libraryRef="customLoginLib"/>
    
    	<library id="customLoginLib">
    	  <fileset dir="${server.config.dir}" includes="MyLoginModule.jar"/>
            </library>
  3. 다음 예제에 표시된 대로 단계에서 구성한 jaasLoginContextEntry 요소의 ID로 dataSource element jaasLoginContextEntryRef 속성을 구성하십시오.
    
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" 
                jaasLoginContextEntryRef="myJAASLoginEntry" .../>

    그러나 이 jaasLoginContextEntryRef 값은 Containerres-auth 값을 지정하는 res-ref JNDI 참조를 사용하여 EAR application.xml 파일 또는 WAR web.xml 파일에서 데이터 소스가 식별되는 경우에만 구성에서 사용됩니다. 그렇지 않으면 jaasLoginContextEntryRef 값이 무시됩니다.

    다음 예제는 sever.xml 파일에서 jaasLoginContextEntryRef 값을 정의하여 사용자 정의 로그인 모듈을 지정할 때 필요한 application.xml 또는 web.xml 구성을 보여줍니다.
    <resource-ref>
    	 <res-ref-name>java:app/jdbc/ds1</res-ref-name>
    	 <res-type>javax.sql.DataSource</res-type>
    	 <res-auth>Container</res-auth>
    </resource-ref>
    
  4. 3단계에 대한 대안으로 애플리케이션의 배치 디스크립터 ibm-web-bnd.xml 파일에서 custom-login-configuration 요소를 구성할 수 있습니다. 이름 속성은 server.xml 파일에 정의된 jaasLoginContextEntryid 속성과 일치해야 합니다. 예를 들면 다음과 같습니다.
    
    <resource-ref name="jdbc/ds1ref" binding-name="jdbc/ds1">
       <custom-login-configuration name="myJAASLoginEntry">
         <property name="property1" value="value1"/>
       </custom-login-configuration>
    </resource-ref>