代行
代行 とは、セキュリティー ID を呼び出し元から呼び出されるオブジェクトに伝搬するプロセスです。 Java™ Platform, Enterprise Edition (Java EE) 仕様により、サーブレットとエンタープライズ Bean は、エンタープライズ Bean を呼び出す際にクライアントまたはリモート・ユーザーの ID を伝搬することも、あるいは対応するデプロイメント記述子で指定された別の指定 ID を使用することもできます。
- クライアント ID の代行 (RunAs)
- 指定 ID の代行 (RunAs)
- システム ID の代行 (RunAs)



EJB 仕様では、Enterprise JavaBeans (EJB) レベルでの代行 (RunAs) のみがサポートされています。 ただし、拡張機能は、EJB メソッド・レベルの RunAs 仕様を許可します。EJB メソッド・レベルの RunAs 仕様により、 同一の エンタープライズ Bean 内の別のメソッドに、異なる RunAs ロールを指定することが可能です。
RunAs 仕様は、 デプロイメント記述子 (EJB モジュールでは ejb-jar.xml ファイル、Web モジュールでは web.xml ファイル) で詳述されています。RunAs 仕様の拡張は ibm-ejb-jar-ext.xml ファイルに含まれています。
RunAs ロールからユーザーへの マッピングが入っているアプリケーションごとに、IBM 固有のバインディング・ファイルも使用可能です。 このファイルは ibm-application-bnd.xml ファイルで指定しています。

代行プロセス
- Resource to RunAs Role マッピング表
- RunAs Role to User ID and Password マッピング表
Resource to RunAs Role マッピング表は、 サーブレットまたはエンタープライズ Bean が次のエンタープライズ Bean 呼び出しに伝える場合に使用するロールを取得するために使用します。
RunAsRole to user ID and password マッピング表は、 RunAs ロールに所属するユーザー ID とそのパスワードを取得するために使用します。
代行は、認証と許可が正常に終了した後に実行されます。 このプロセスで、代行モジュールは、RunAs ロールを取得するために Resource to RunAs Role マッピング表を調べます (3)。 代行モジュールは、RunAs ロールに属するユーザーを取得するために、 RunAs Role to User ID and Password マッピング表を調べます (4)。認証モジュール (この図にはありません) を使用して、 ユーザー ID とパスワードによって新規のクレデンシャルが作成されます。
作成されたクレデンシャルは、呼び出しクレデンシャルとしてオブジェクト・リクエスト・ブローカー (ORB) Current® に保管されます (5)。
サーブレットとエンタープライズ Bean は、別のエンタープライズ Bean を呼び出すとき、ORB Current から呼び出しクレデンシャルを取り出して (6)、次のエンタープライズ Bean を呼び出します (7)。