Configurazione di JAAS per l'autenticazione del database

È possibile utilizzare JAAS (Java™ Authentication and Authorization Service) per l'autenticazione del database.

Informazioni su questa attività

È possibile utilizzare una voce di contesto di login JAAS per specificare un modulo di login personalizzato da utilizzare per l'impostazione del nome utente e della password per l'autenticazione su un database.

Procedura

  1. Aggiungere le funzioni appSecurity-2.0, jdbc-4.0e jca-1.6 nel file server.xml . È anche possibile aggiungere appSecurity-2.0, jdbc-4.1e jca-1.7. Ad esempio:
    
    <featureManager>
       <feature>appSecurity-2.0</feature>
       <feature>jdbc-4.0</feature>
       <feature>jca-1.6</feature>
    </featureManager>
    Feature stabilizzata: la feature jca-1.6 è stabilizzata. È possibile continuare a utilizzare la funzione jca-1.6 . Tuttavia, considerare l'utilizzo di una funzione JCA successiva.
  2. Configurare un elemento jaasLoginContextEntry nel file server.xml con il modulo login da utilizzare. Ad esempio:
    
    <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. Configurare l'attributo dataSource element jaasLoginContextEntryRef con l'ID dell'elemento jaasLoginContextEntry configurato nel passo, come mostrato nel seguente esempio.
    
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" 
                jaasLoginContextEntryRef="myJAASLoginEntry" .../>

    Tuttavia, questo valore jaasLoginContextEntryRef viene utilizzato dalla configurazione solo se l'origine dati è identificata nel file EAR application.xml o nel file WAR web.xml utilizzando un riferimento JNDI res-ref che specifichi un valore res-auth di Container. Altrimenti, il valore jaasLoginContextEntryRef viene ignorato.

    Il seguente esempio illustra la configurazione application.xml o web.xml richiesta quando si specifica un modulo di login personalizzato definendo un valore jaasLoginContextEntryRef nel file sever.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. Come alternativa al passaggio 3, è possibile configurare un elemento custom-login-configuration nel file del descrittore di distribuzione ibm-web-bnd.xml dell'applicazione. L'attributo del nome deve corrispondere all'attributo id per jaasLoginContextEntry definito nel file server.xml . Ad esempio:
    
    <resource-ref name="jdbc/ds1ref" binding-name="jdbc/ds1">
       <custom-login-configuration name="myJAASLoginEntry">
         <property name="property1" value="value1"/>
       </custom-login-configuration>
    </resource-ref>