BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA Tuxedo のセキュリティ機能   |   先頭へ   |   前へ   |   次へ   |   目次

 


ATMI アプリケーションへの参加

セキュリティが設定された ATMI アプリケーションでは、TPINIT バッファ (C の場合) または TPINFDEF-REC レコード (COBOL の場合) を使用して、BEA Tuxedo システムにセキュリティ情報を渡す必要があります。TPINIT バッファは、特殊な型付きバッファであり、クライアントが ATMI アプリケーションに参加しようとするときに、クライアントの ID および認証情報をシステムに渡すためにクライアント・プログラムで使用されます。COBOL の場合は、TPINFDEF-REC レコードが使用されます。

TPINITatmi.h ヘッダ・ファイルで定義され、TPINFDEF-REC は COBOL の COPY ファイルで定義されます。次の表は、それぞれの構造体を示しています。

TPINIT 構造体

TPINFDEF-REC 構造体

char usrname[MAXTIDENT+2];
char cltname[MAXTIDENT+2];
char passwd[MAXTIDENT+2];
char grpname[MAXTIDENT+2];
long flags;
long datalen;
long data;



注記MAXTIDENT には最大 30 文字まで指定できます。

05 USRNAME PIC X(30).
05 CLTNAME PIC X(30).
05 PASSWD PIC X(30).
05 GRPNAME PIC X(30).
05 NOTIFICATION-FLAG PIC S9(9) COMP-5.
88 TPU-SIG VALUE 1.
88 TPU-DIP VALUE 2.
88 TPU-IGN VALUE 3.
05 ACCESS-FLAG PIC S9(9) COMP-5.
88 TPSA-FASTPATH VALUE 1.
88 TPSA-PROTECTED VALUE 2.
05 DATLEN PIC S9(9) COMP-5.

次の表では、TPINIT バッファおよび TPINFDEF-REC レコードのフィールドを示します。

TPINIT バッファおよび TPINFDEF-REC レコードのフィールド

TPINIT のフィールド

TPINFDEF-REC のフィールド

説明

usrname

USRNAME

ユーザ名。* ヌルで終了する 30 文字までの文字列。

ユーザ名は呼び出し側を表します。クライアント・プログラムの作成者は、ホスト・オペレーティング・システムへのログイン時に使用したログイン名を使用できます。

cltname

CLTNAME

クライアント名。* ヌルで終了する 30 文字までの文字列。

クライアント名はクライアント・プログラムを表します。クライアント・プログラムの作成者は、このフィールドを使用して、クライアント・プログラム実行時のユーザの役割やジョブを指定することができます。

passwd

PASSWD

アプリケーション・パスワード。* ヌルで終了する 8 文字までの文字列。

tpinit() または TPINITIALIZE() は、このパスワードを TUXCONFIG ファイル**に格納されている設定済みのアプリケーション・パスワードと比較して、パスワードの検証を行います。

grpname

GRPNAME

グループ名。ヌルで終了する 30 文字までの文字列。このフィールドはセキュリティとは無関係です。

グループ名を使用すると、UBBCONFIG ファイルで定義されているリソース・マネージャのグループにクライアントを関連付けることができます。

flags

NOTIFICATION-FLAG
TPU-SIG

TPU-DIP

TPU-IGN

ACCESS-FLAG

TPSA-FASTPATH

TPSA-PROTECTED

通知フラグおよびアクセス・フラグ。このフィールドはセキュリティとは無関係です。

フラグを設定すると、クライアントに対して使用する通知メカニズムおよびシステムのアクセス・モードを指定できます。ここで指定した内容は、UBBCONFIG ファイルの RESOURCES セクションの値を上書きします (ただし、一部の例外を除く)。

datalen

DATALEN

後に続くユーザ固有のデータ***の長さ。*

C で記述したクライアント・プログラムの作成者は、送信予定のユーザ固有データのバイト数を指定して TPINITNEED を呼び出すと、このフィールドに指定するサイズを算出することができます。TPINITNEED は、atmi.h ヘッダ・ファイルに組み込まれているマクロです。

data

該当なし

ユーザ固有のデータ。*** 固定長を持ちません。*

tpinit() または TPINITIALIZE() は、ユーザ固有のデータを認証サーバに転送し、検証します。デフォルトの認証の場合、認証サーバは AUTHSVR です。

* このフィールドは、デフォルトの認証および認可で USER_AUTHACL または MANDATORY_ACL のセキュリティ・レベルが指定された場合に必要です。

** バイナリ形式の UBBCONFIG ファイル。tmloadcf(1) を使用して作成します。

*** 通常はユーザ・パスワードです。

クライアント・プログラムは、tpalloc(3c) を呼び出して TPINIT バッファを割り当てます。次は、8 バイトのアプリケーション固有のデータを tpinit() に渡す準備を行い、クライアントが ATMI アプリケーションに参加できるようにするサンプル・コードです。

TPINIT バッファを割り当てて ATMI アプリケーションに参加する

  .
.
.
TPINIT *tpinfo;
.
.
.
if ((tpinfo = (TPINIT *)tpalloc("TPINIT",(char *)NULL,
TPINITNEED(8))) == (TPINIT *)NULL){
Error Routine
}
.
.
.
tpinit(tpinfo) /* ATMI アプリケーションへの参加 */
.
.
.

ワークステーション・クライアントが tpinit() 関数または TPINITIALIZE() ルーチンを呼び出して ATMI アプリケーションに参加すると、次の主なイベントが発生します。

  1. 「イニシエータ」側のワークステーション・クライアントおよび「ターゲット」 側のワークステーション・リスナ (WSL) が、リンク・レベルの暗号化 (LLE: Link-Level Encryption) の min-max 値を交換します。これらの値は、イニシエータ のワークステーション・クライアントとターゲットの WSH との間でリンクを確 立するために使用されます。LLE については、「リンク・レベルの暗号化」を参 照してください。

  2. イニシエータのワークステーション・クライアントとターゲットの WSH は、セ キュリティ・トークンの交換によってお互いを認証します。デフォルトの認証の 場合、クライアントのセキュリティ・データが TPINIT バッファまたは TPINFDEF-REC レコードからターゲットの WSH に転送されると、認証は成功し ます。

  3. 認証に成功すると、イニシエータのワークステーション・クライアントは、 usrnamecltname、および flags の 3 つのフィールド値を含む別のバッファを ターゲットの WSH に送信し、認証済みのワークステーション・クライアントに 関するこれらの情報が確実に伝わるようにします。

ネイティブ・クライアントが tpinit() 関数または TPINITIALIZE() ルーチンを呼び出して ATMI アプリケーションに参加すると、認証だけが行われます。基本的に、ネイティブ・クライアントは、自分自身を認証します。

クライアントのセキュリティ・データの転送

次の図は、ワークステーション・クライアントの TPINIT バッファからデータを転送する様子を示します。TPINFDEF-REC レコードからデータを転送する場合にもこの図が当てはまります。

ワークステーション・クライアントの TPINIT バッファからデータを転送する


 

注記 上の図に示す認可手順は、ネイティブ・クライアントが ATMI アプリケーションに参加しようとする場合も基本的に同じです。ただし、ネットワーク・リンクや WSH は無関係です。ネイティブ・クライアントは、自分自身を認証するためです。

上の図では、デフォルトの認証を使用するか、またはカスタマイズした認証を使用するかにより、BEA Tuxedo システムに送信される情報が異なる点に注意してください。デフォルトの認証の場合、cltnamegrpname、および flags の各フィールドの値が、プラグイン・インターフェイス以外の方法で、ワークステーション・クライアントのデフォルトの認証プラグインに送信されます。一方、カスタマイズした認証の場合、クライアント・プログラムの作成者は、これらの値のほか、data フィールドで選択した可変長の別の値を組み込むこともできます。

デフォルトの認証を使用する場合、ワークステーション・クライアントの認証プラグインでは、passwd/PASSWD フィールドが使用され、ネットワーク経由で転送される情報が暗号化されます。このとき、暗号化アルゴリズムとして、56 ビットの DES (Data Encryption Standard) が使用されます。ターゲットの WSH にある認証プラグインでは、TUXCONFIG ファイルに格納されているアプリケーション・パスワードを使用して、この情報を復号化します。ネイティブ・クライアントの場合は、単に、passwd/ PASSWD フィールドの値と、TUXCONFIG ファイルに格納されているアプリケーション・パスワードが比較されます。

注記 ワークステーション・クライアントでは、passwd/PASSWD フィールドの値が、認証プラグイン・インターフェイス以外の方法で、認証プラグインに送信されます。WSH では、TUXCONFIG ファイルに格納されたアプリケーション・パスワードが、アプリケーションの起動時に、認証プラグイン・インターフェイスによって認証プラグインに送信されます。

ワークステーション・クライアントの認証に成功すると、tpinit() 関数は、最後の処理として、usrnamecltname、および flags の 3 つのフィールド値を含む別のバッファを WSH に送信し、認証済みのワークステーション・クライアントに関するこれらの情報が確実に伝わるようにします。TPINITIALIZE() ルーチンの場合も、最後の処理として、同様の情報を含む別のバッファを送信します。カスタマイズした認証プラグインでは、認証手順でこれらの情報が WSH に送信されない場合がありますが、WSH 側ではレポートを作成するとき、つまり tmadmin(1) printclient (pclt) コマンドを呼び出すときにこれらの情報を必要とします。

ワークステーションまたはネイティブ・クライアントは、セキュリティ・チェックにパスすると、サービス要求を発行したり、応答を受信することができます。

ATMI アプリケーションに参加する前のサービス要求の呼び出し

ターゲットの ATMI アプリケーションの SECURITYNONE に設定されているか、または何も設定されていない場合に、クライアントが、tpinit() または TPINITIALIZE() を呼び出す前にサービス要求 (または ATMI 関数) を呼び出すと、BEA Tuxedo システムは、NULL パラメータで tpinit() または TPINITIALIZE() を自動的に呼び出します。この操作により、次のような結果になります。

ターゲットの ATMI アプリケーションの SECURITYAPP_PWUSER_AUTHACL、または MANDATORY_ACL に設定されている場合に、クライアントが、tpinit() または TPINITIALIZE() を呼び出す前にサービス要求 (または ATMI 関数) を呼び出すと、そのサービス要求は拒否されます。

関連項目

 

先頭へ戻る 前のトピックへ 次のトピックへ