認証(authentication)は単に一人一人が「誰」であるかを信頼できる方法で確認することです。それに対して、承認 (authorization) は、その誰かが何にアクセスできて、何にアクセスできないかを類別する行為です。
Batch Serverの認証と承認の機構は、JAAS (Java Authentication and Authorization Service) の APIに基づいたOSアカウントによる認証とユーザに割り当てられたロールによる権限の付与(承認)を行います。 ユーザが要求した操作の実行を許可するかどうかは、Java のSecurityManagerを利用して、付与されている権限の確認を行います。

Batch Serverで利用可能なアカウントは、Batch Serverを稼動させるOSが管理するユーザカウントと一致します。 つまり、Batch Serverのコマンド実行時に指定するユーザ名/パスワードはOSが管理するユーザ名/パスワードと一致する必要があります。また、Batch Serverのアカウントを追加するにはOSのユーザカウントを追加することになります。
Batch Serverが行うアカウント認証はOSのアカウント管理機能にアクセスし、OSに登録されているアカウントであるかどうかを確認します。
Windowsの場合にはWindows APIを、Linuxの場合はPAMのAPIを介してOSのアカウント管理機能にアクセスします。
例えばLinuxの場合、
Batch ServerはPAMのインターフェースに沿ってIDとパスワードのペアによる認証できることを前提としています。
そのために、Batch Serverインストール時に、PAMに対する認証設定ファイル webotxbs-pam-service の登録を行っています。
この前提が満たされる範囲内であれば、同設定ファイルの内容を利用者が書き換えることができます。
この設定の登録は、下記のようなリンクによって行われています。 /etc/pam.d/webotxbs-pam-service -> /opt/WebOTX/batch/bin/setup/pam/linux/webotxbs-pam-service
PAM の認証設定ファイル webotxbs-pam-service のデフォルトの内容は、同 system-auth サービスを利用する内容となっており、RHEL 5 の system-auth のデフォルトの設定は、pam_unix.soモジュールを利用する内容となっています。
pam_unix.soモジュールは、特権ユーザ(root)で起動されたプロセスからの認証要求の場合、当該サーバ上の全アカウントの認証を行うことができますが、一般ユーザで起動されたプロセスからの認証要求の場合、自ユーザのみの認証しか行うことができません。
そのため、ドメインエージェントを一般ユーザで起動した場合、ドメインエージェントを起動したユーザ以外のアカウントからの バッチアプリケーションの配備やジョブの実行が、認証エラーにより行えない状態となります。
ロールとはBatch Server上での操作の権限管理を行う単位です。ロール毎に実行可能な操作が規定されています。
Batch Serverには下記のロールがあらかじめ定義されます。個々のロールには個別のアクセス権が設定されており、これらのアクセス権の変更や新たなロールの追加を行うことはできません。
| ロール | 説明 |
|---|---|
| Administrator | バッチドメインの管理者です。 バッチドメインに関する全ての操作が実行可能です。 |
| Operator | バッチドメインの運用者です。 バッチドメインの起動/停止や設定変更を含む操作が実行可能です。 運用者はバッチドメインの状態参照やバッチアプリケーションの配備に関する操作も実行可能です。 |
| Observer | バッチドメインの監視者です。 バッチドメインの状態を参照することが可能です。 |
| Deployer | バッチアプリケーションの配備者です。 バッチアプリケーションの配備に関する操作が実行可能です。 |
| JobExecutor | ジョブの実行者です。 ジョブの実行とジョブ実行状態、実行結果の参照が可能です。 |
ユーザが実行可能な操作を制限するために、各ユーザにロールを割り当てます。 デフォルトの設定では、全てのユーザに対してAdministrator権限が割り当てられるように設定されています。
ユーザ名、ロール名のマッピングが管理され、ユーザには複数ロールを割り当てることができます。
例えば、あるユーザにJobExecutorとDeployerロールを割り当てることでバッチアプリケーションのデプロイからジョブの実行までの操作権限を割り当てることができます。
Batch Serverではユーザ単位でどのロールに割り当てるのかを指定します。
また、ジョブの実行権は個別の設定を行うことも可能です。 例えば、全てのユーザが共通的に実行できるジョブはJobExecutorロールの規定の権限として設定し、特別なuserBにだけ特別なジョブ実行権を付与することができます。
基本的な操作の権限がロール単位で付与されます。
| ロール | 操作権限 | |||||
|---|---|---|---|---|---|---|
| ドメインに対する操作 | ドメインの監視 | アプリケーションの配備操作 | ジョブの実行 | 権限に対する操作 | ||
| Administrator | ○ | ○ | ○ | ○ | ○ | |
| Operator | ○ | ○ | ○ | × | × | |
| Observer | × | ○ | × | × | × | |
| Deployer | × | × | ○ | × | × | |
| JobExecutor | × | × | × | ○ | × | |
JobExecutorのロールを割り当てられたユーザに対しては、個別のジョブの実行権を設定することができます。
デフォルトではJobExecutorロールを持つユーザには全てのジョブ実行権が割り当てられます。
ユーザが実行できるジョブを制限したい場合、JobExecutorロールに割り当てられているジョブ実行権を制限し、個別のジョブ実行件をユーザに対して割り当てます。
ジョブの実行権にはバッチアプリケーショングループ名、バッチアプリケーション名、ジョブ名を指定します。