メッセージング・エンジンに接続するユーザーの認証

メッセージング・エンジンに接続 できるようユーザーが認証されるように、ユーザー資格情報を検証する必要があります。

手順

  1. ユーザー・レジストリーを構成します。
    Liberty では、以下のタイプのレジストリーがサポートされています。
    • QuickStartSecurity (1 ユーザーのみをサポートします)

      このオプション は、アプリケーション接続を認証するためにユーザー名とパスワードを 指定する最も簡単な方法です。<quickStartSecurity> エレメントを使用して、Liberty の単純な (1 ユーザーの) セキュリティー・セットアップを使用可能にすることができます。server.xml ファイル内で以下の <quickStartSecurity> エレメントを定義します。

      以下の 例では、<quickStartSecurity> エレメントを使用して、 名前が liberty でパスワード が liberty123 の単一ユーザーを定義しています。
      <quickStartSecurity userName="liberty" userPassword="liberty123"/>
      注: server.xml ファイル 内に未加工パスワードが指定されないようにしてください (例えば liberty123)。パスワードをエンコードするには、Liberty で使用可能なセキュリティー・ユーティリティー・ツールを使用します。
      <WLP_HOME>\wlp\bin>securityUtility encode "liberty123"

      パスワードの保護について詳しくは、 securityUtility コマンドを参照してください。

    • 基本ユーザー・レジストリー (複数ユーザー、およびユーザー・グループの宣言をサポートします)
      基本ユーザー・レジストリーを使用してユーザーを認証および許可するように Liberty を構成できます。Liberty サーバー用の server.xml ファイル内で、基本ユーザー・レジストリーをセットアップし、複数のロール・マッピングを構成することができます。
      注: <basicRegistry> の 構成は <quickStartSecurity> レジストリーをオーバーライドします。
      <basicRegistry id="basic" realm="customRealm">
      	<user name="user1" password="user1pwd" />
      	<user name="user2" password="user2pwd" />
      	<user name="user3" password="user3pwd" />
      	<user name="user4" password="user4pwd" />
      	<user name="user5" password="user5pwd" />
      	<user name="user6" password="user6pwd" />
      	<user name="user7" password="user7pwd" />
      	<user name="user8" password="user8pwd" />
      	<group name="Developers">
      		<member name="user2" />
      		<member name="user4" />
      	</group>
      	<group name="Testers">
      		<member name="user8" />
      		<member name="user7" />
      	</group>
      </basicRegistry>
    • Lightweight Directory Access Protocol (LDAP) レジストリー (Microsoft Active Directory や IBM Directory Server など の外部レジストリー)。
      認証用に Liberty で LDAP サーバーを構成できます。
      <ldapRegistry id="LDAP" realm="SampleLdapIDSRealm" host="ctldap1.austin.ibm.com" port="389"
          ignoreCase="true" baseDN="o=ibm,c=us" 
          ldapType="IBM Tivoli Directory Server" 
          idsFilters="ibm_dir_server" 
          searchTimeout="8m"> 
              <failoverServers name="failoverLdapServers"> 
              	<server host="ralwang.rtp.raleigh.ibm.com" port="389"/>  
              </failoverServers> 
      </ldapRegistry>
      注:
      • LDAP レジストリーで指定されているユーザー名およびパスワード は、いずれも接続ファクトリー内で指定できます。
      • server.xml ファイル内 に定義できるレジストリー・タイプは 1 つのみです (基本レジストリーまたは LDAP レジストリーのいずれか)。
    レジストリーの構成について詳しくは、Liberty のユーザー・レジストリーの構成を参照してください。
  2. アプリケーション認証を構成します。
    server.xml ファイル内に指定されたユーザー・レジストリーに 基づいて、以下のようにアプリケーションを構成できます。
    • ユーザー名とパスワードを JMS リソース (接続ファクトリー およびアクティベーション・スペック・プロパティー) 内に指定します。
      接続ファクトリーを 使用するアプリケーションは、接続ファクトリー内に指定されたユーザー名およびパスワードに 照らして認証されます。
      <jmsQueueConnectionFactory jndiName="myQCF" connectionManagerRef="ConMgr4">
      	<properties.wasJms userName="liberty" password="liberty123"       
      		remoteServerAddress="localhost:7276:BootstrapBasicMessaging">
      	</properties>
      </jmsQueueConnectionFactory>
      <connectionManager id="ConMgr4" maxPoolSize="2"/>

      上記の 例では、myQCF キュー接続ファクトリーを探す アプリケーションは、構成されたレジストリーに定義されている ユーザー名 liberty およびパスワード liberty123 に照らして、 自動的に認証されます。

      注: 指定した接続プロパティーが myQCF をルックアップする対象のパスは、jms/myQCF であり、java:comp/env/jms/myQCF ではありません。
    • JMS アプリケーション内にユーザー名とパスワードを指定します。
      注: JMS アプリケーション内に 指定されたユーザー名およびパスワードは、接続ファクトリー内で定義されたユーザー名およびパスワードをオーバーライドします。
      アプリケーション は、接続ファクトリー・プロパティーを検索し、資格情報を認証するために ユーザー名とパスワードを渡します。
      server.xml
      --------------------
      <jmsQueueConnectionFactory jndiName="myQCF" connectionManagerRef="ConMgr4">
      	<properties.wasJms 
      		remoteServerAddress="localhost:7276:BootstrapBasicMessaging">
      	</properties>
      </jmsQueueConnectionFactory>
      <connectionManager id="ConMgr4" maxPoolSize="2"/>
      
      Application snippets
      ------------------
      QueueConnectionFactory qcf = (QueueConnectionFactory) new InitialContext().lookup("myQCF");
      QueueConnection qCon = qcf.createQueueConnection(“liberty”, “liberty123”);
    • <containerAuthDataRef> エレメントに ユーザー名とパスワードを指定します。
      バインディングがリソース参照用の認証別名を res-auth=CONTAINER で 指定しない場合、コンテナー管理認証用のデフォルト認証データが適用可能です。 以下に示すように、<authData> エレメントが定義され、 サービス統合バスによって参照される必要があります。
      <authData id="auth1" user="liberty" password="liberty123"/>
      
      <jmsQueueConnectionFactory jndiName="myQCF" 
      	containerAuthDataRef=”auth1” connectionManagerRef="ConMgr4">
            <properties.wasJms/>
      </jmsQueueConnectionFactory>
      <connectionManager id="ConMgr4" maxPoolSize="2"/>
      
       web.xml
       ----------
         <resource-ref>
          <res-ref-name>jndi/myQCF</res-ref-name>
          <res-auth>Container</res-auth>    <res-type>javax.jms.QueueConnectionFactory</res-type>
          <lookup-name>jndi/myQCF</lookup-name>
        </resource-ref>
    構成後、メッセージング・リソースに安全にアクセスするために、認証されたユーザーを、必要なロールに割り当てる必要があります。メッセージング・エンジンに接続するユーザーの許可を参照してください。

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_msg_sec_authenticate.html