Liberty での RunAs 認証の構成
Liberty に対して RunAs 指定を構成することによって、別の ID に認証を委任することができます。
このタスクについて
指定されたユーザー ID およびパスワード (パスワードはオプションです) を RunAs ロール にマップすることによって、その RunAs ロールを持つユーザーに認証プロセスを 委任することができます。
appSecurity-2.0 および servlet-3.0 の Liberty フィーチャーを使用可能にし、アプリケーションのユーザー・レジストリーを用意して RunAs ロールを構成する必要があります。
RunAS 認証について詳しくは、『RunAs() 認証』を参照してください。
RunAS 認証を構成するには、以下のステップを実行します。
手順
- server.xml ファイルで appSecurity-2.0 および servlet-3.0 Liberty フィーチャーを使用可能にします。
- アプリケーションのユーザー・レジストリーを構成します。
- アプリケーションのデプロイメント記述子で <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>
前のステップで指定したロールをユーザーに マップします。これは、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 を参照してください。
- server.xml ファイルでパスワードはオプションであるため、パスワードなしのユーザーで以下のコードを使用することもできます。
z/OS ユーザーに固有の、SAF リソース・プロファイルを使用した RunAs 認証を構成します。
SAF を使用して RunAs 委任を使用可能にします。
<safAuthorization enableDelegation="true" />
RunAs ユーザー 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