Liberty での RunAs 認証の構成

Liberty に対して RunAs 指定を構成することによって、別の ID に認証を委任することができます。

このタスクについて

指定されたユーザー ID およびパスワード (パスワードはオプションです) を RunAs ロール にマップすることによって、その RunAs ロールを持つユーザーに認証プロセスを 委任することができます。

appSecurity-2.0 および servlet-3.0Liberty フィーチャーを使用可能にし、アプリケーションのユーザー・レジストリーを用意して RunAs ロールを構成する必要があります。

RunAS 認証について詳しくは、『RunAs() 認証』を参照してください。

RunAS 認証を構成するには、以下のステップを実行します。

手順

  1. server.xml ファイルで appSecurity-2.0 および servlet-3.0 Liberty フィーチャーを使用可能にします。
  2. アプリケーションのユーザー・レジストリーを構成します。
  3. アプリケーションのデプロイメント記述子で <run-as> エレメントを指定します。

    以下の例の web.xml ファイルは、以降の呼び出しを、ロール Employee にマップされたユーザー に委任するよう指定しています。

         <servlet id="Servlet_1">
              <servlet-name>RunAsServlet</servlet-name>
              <display-name>RunAsServlet</display-name>
              <description>RunAsServlet</description>
              <servlet-class>web.RunAsServlet</servlet-class> 
              <run-as>
                   <role-name>Employee</role-name>
              </run-as>
          	</servlet>
  4. For distributed platforms前のステップで指定したロールをユーザーに マップします。これは、ibm-application-bnd.xmi/xml または server.xml ファイルで行うことができます。<run-as> エレメントで、ユーザー名を指定する必要があります。ibm-application-bnd.xml ファイルを使用する場合は、パスワードも必要です。 server.xml ファイルを使用する場合、パスワードはオプションです。 パスワードが必要な場合は、/bin ディレクトリー内の securityUtility encode コマンドを使用してパスワードをエンコードします。securityUtility コマンドについて詳しくは、『securityUtility コマンド』を参照してください。

    以下の例は、server.xml ファイルの <application-bnd> エレメント内で <run-as> エレメントを使用しています。ここでは、Employee ロールは user5 の RunAS ユーザーにマップされています。

         <application-bnd>
              <security-role name="Employee">
                   <user name="user1" />
                   <user name="user5" />
                   <run-as userid="user5" password="{xor}Lz4sLCgwLTs=" />
              </security-role>
         </application-bnd>
    注:
    • server.xml ファイルでパスワードはオプションであるため、パスワードなしのユーザーで以下のコードを使用することもできます。
          <application-bnd>
                <security-role name="Employee">
                     <user name="user1" />
                     <user name="user5" />
                     <run-as userid="user5" />
                 </security-role>
           </application-bnd>
    • server.xml ファイルに <application-bnd> エレメントを指定した場合は、dropins フォルダーにアプリケーションが存在してはなりません。アプリケーションを dropins フォルダーにそのまま置く場合は、 server.xml ファイルに以下を設定して、アプリケーション・モニターを使用不可にする必要があります。
      <applicationMonitor dropinsEnabled="false"/>

    RunAs ユーザー名は固有である必要があり、外部アカウントに存在しません。例えば、ユーザーを SAML ID プロバイダーまたは OpenID Connect プロバイダーに認証する場合は、RunAs ユーザー名がこれらの外部アカウントに存在しないようにしてください。

    run-as エレメントについて詳しくは、Java Servlets 3.0 を参照してください。

  5. For z/OS platformsz/OS ユーザーに固有の、SAF リソース・プロファイルを使用した RunAs 認証を構成します。
    1. For z/OS platformsSAF を使用して RunAs 委任を使用可能にします。
      <safAuthorization enableDelegation="true" />
    2. For z/OS platformsRunAs ユーザー ID をアプリのリソースおよびロールに割り当てます。これは、RunAs ユーザー ID を、対応する SAF リソース・プロファイルの APPLDATA フィールドに設定することによって行います。デフォルトで、特定のアプリケーションおよびロールの対応する SAF リソース・プロファイルは、EJBROLE SAF クラス内で {profilePrefix}.{appName}.{roleName} と命名されます。

      これは、Liberty SAF 許可が、アプリケーションおよびロールに対するユーザーの許可に使用するリソース・プロファイルと同じものです。このプロファイルの名前は、safRoleMapper 構成によって管理されます。SAF プロファイル名へのアプリケーション名およびロール名のマッピングについて詳しくは、『ロールを SAF プロファイルにマップする方法の制御』を参照してください。

      以下は、user5 に、アプリケーション myapp の RunAs ユーザー、および Employee のロールを割り当てるためのいくつかのサンプル RACF コマンドです。
      RDEFINE EJBROLE BBGZDFLT.myapp.Employee UACC(READ)
      RALTER EJBROLE BBGZDFLT.myapp.Employee APPLDATA('user5')
      SETROPTS GENERIC(EJBROLE) REFRESH
      SETROPTS RACLIST(EJBROLE) REFRESH

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

ファイル名: twlp_sec_runas.html