Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java™ System Identity Manager 7.0 リソースリファレンス 


Top Secret

Top Secret リソースアダプタは、IBM Host Access Class Library API を介して OS/390 メインフレーム上のユーザーアカウントとメンバーシップの管理をサポートします。このアダプタは、TN3270 エミュレータセッションで Top Secret を管理します。

Top Secret リソースアダプタは、com.waveset.adapter.TopSecretResourceAdapter クラスで定義されます。このアダプタは、次のバージョンの Top Secret をサポートします。

Top Secret Active Sync アダプタ (com.waveset.adapter.TopSecretResourceAdapter) は、Identity Manager 5.0 SP1 から非推奨になりました。現在、このアダプタのすべての機能は Top Secret アダプタに含まれています。Top Secret Active Sync アダプタの既存インスタンスは引き続き使用できますが、新規インスタンスは作成できません。

リソースを設定する際の注意事項

Top Secret Active Sync アダプタは、FTP を使用して TSSAUDIT 機能から出力を取得することにより動作します。その後、出力を解析して、アカウントの作成、変更、および削除を探します。この機能は、Top Secret Recovery ファイルのデータからレポートを生成します。そのため、Recovery ファイルを有効にし、Active Sync のポーリング間隔内に発生するすべての変更を十分保持できる大きさにします。Active Sync アダプタによる次のポーリングまでに出力が利用可能になるように TSSAUDIT ユーティリティーを実行するためのジョブをスケジュールするとよいでしょう。

オプションの世代データグループ (GDG) に TSSAUDIT の出力結果を格納するように設定できます。GDG には、前のバージョンの TSSAUDIT の出力が格納されます。Active Sync アダプタでは、通常の時間に実行できないイベントが失われないようにするために、GDG からの取得がサポートされています。このアダプタを、失われた可能性があるイベントを複数の世代に戻って取得するように設定できます。

次のサンプル JCL は、TSSAUDIT バッチジョブを実行します。

//LITHAUS7  <<<< Supply Valid Jobcard >>>>>>

//* ****************************************************************

//* *  THIS JOB RUNS THE TSS AUDIT PROGRAM 'CHANGES'

//* *    & CREATES A GDG MEMBER FOR IDENTITY MANAGER

//* *  You may choose to use standard MVS Delete/Defines or

//* *  request a system programmer to establish a small GDG

//* ****************************************************************

//AUDIT01  EXEC   PGM=TSSAUDIT,

//         PARM='CHANGES DATE(-01)'

//AUDITOUT DD DSN=auth hlq.LITHAUS.ADMIN.DAILY(+1),

//         DISP=(NEW,CATLG),UNIT=SYSDA,RECFM=FB,LRECL=133,

//         BLKSIZE=2793,SPACE=(CYL,(2,1),RLSE)

//RECOVERY DD   DSN=your.TSS.recovery.file ,DISP=SHR

//AUDITIN  DD DUMMY

Identity Manager 上で設定する際の注意事項

Top Secret リソースアダプタは、カスタムアダプタです。インストールプロセスを完了するには、次の手順を実行してください。

  1. Top Secret アダプタを Identity Manager のリソースリストに追加するには、「管理するリソースの設定」ページの「カスタムリソース」セクションに次の値を追加します。
  2. com.waveset.adapter.TopSecretResourceAdapter

  3. Identity Manager のメインフレームアダプタは、IBM Host Access Class Library (HACL) を使用してメインフレームに接続します。HACL は、IBM Websphere Host On-Demand (HOD) で利用できます。HACL が含まれる推奨 jar は habeans.jar です。これは、HOD に付属する HOD Toolkit (または Host Access Toolkit) とともにインストールされます。サポートされる HACL のバージョンは、HOD V7.0、V8.0、および V9.0 に含まれているバージョンです。
  4. ただし、ツールキットのインストールを利用できない場合は、HOD のインストールに含まれる次の jar を habeans.jar の代わりに使用できます。

    • habase.jar
    • hacp.jar
    • ha3270.jar
    • hassl.jar
    • hodbase.jar
    • habeans.jar ファイルまたはその代替ファイルのすべてを、Identity Manager がインストールされた WEB-INF/lib ディレクトリにコピーします。詳細については、http://www.ibm.com/software/webservers/hostondemand/ を参照してください。

使用上の注意

ここでは、Top Secret リソースアダプタの使用に関する情報を示します。次の内容で構成されています。

管理者

TSO セッションでは、複数の同時接続は許可されません。Identity Manager Top Secret 操作の同時実行を実現するには、複数の管理者を作成します。たとえば、2 人の管理者を作成すると、2 つの Identity Manager Top Secret 操作を同時に実行できます。少なくとも 2 人 (できれば 3 人) の管理者を作成するようにしてください。

CICS セッションでは、1 人の管理者に 1 つのセッションという制限はありませんが、必要な場合は 2 人以上の管理者を定義できます。

クラスタ環境で実行する場合は、クラスタ内のサーバーごとに 1 人の管理者を定義します。CICS の場合のように同じ管理者であるとしても、サーバーごとに定義してください。TSO の場合は、クラスタ内のサーバーごとに異なる管理者にします。

クラスタを使用しない場合は、各行のサーバー名が同じ (Identity Manager ホストマシンの名前) になるようにしてください。


ホストリソースアダプタは、同じホストに接続している複数のホストリソースでの親和性管理者に対して最大接続数を強制しません。代わりに、各ホストリソース内部の親和性管理者に対して最大接続数が強制されます。

同じシステムを管理する複数のホストリソースがあり、現在それらが同じ管理者アカウントを使用するように設定されている場合は、同じ管理者がリソースに対して同時に複数のアクションを実行しようとしていないことを確認するために、それらのリソースを更新しなければならない可能性があります。


リソースアクション

Top Secret アダプタに必要なリソースアクションは login と logoff です。login アクションは、認証されたセッションに関してメインフレームとネゴシエーションを行います。logoff アクションは、そのセッションが不要になったときに接続を解除します。

thin クライアントのホストアクセス 3270 エミュレータは、スクリプトセッション内のコマンドの実行を簡素化するために、リソースアダプタによるリソースアクションのコンテキストに提供されます。

リソースアクションのコンテキスト

スクリプトアクションのコンテキスト内で、いくつかのグローバル変数が必要とされることがあります。

オブジェクト

説明

使用法

hostAccess

TN3270 エミュレータ。コマンドを実行してメインフレームからの応答を解析するためのインタフェースを提供します。簡易メソッドを提供するために com.waveset.object.HostAccess によってラップされます

メインフレームへの応答の送信、応答の待機、および返された結果の解析に使用します

hostAccessLogin

TopSecret RA によって実装されます。接続固有の情報を提供する getHost()、getPort()、getRequestTimeout() などのメソッドを宣言します

 

user

メインフレームユーザーの ACID

認証に使用します

password

メインフレームユーザーのパスワードを格納する暗号化されたオブジェクト。プレーンテキストに変換するには password.decryptToString() を使用します

認証に使用します

system

メインフレームシステム名

 

HostAccess API

次の表では、リソースアクションに渡される hostAccess オブジェクトで使用できるメソッドについて説明します。

メソッド署名

説明

void sendKeys(String input)

指定された文字列 input を送信します。

void sendKeysAndWait(String input, String msg)

sendKeys(input)
waitForInput()

指定された文字列 input を送信します。応答を受信しなかった場合は msg でタイムアウト例外をスローします。

boolean waitForStringFound(String s)

指定された文字列 s が見つかったかどうかを返します。

void waitForString(String s)

特定の文字列を受け取るまで待機します。一般に、ログアウト成功の確認などの確認目的以外には使用しないことをお勧めします。

void waitForStringAndInput(String s)

waitForString(s)
waitForInput()

見つからなかった場合は、検索テキストと、エラーメッセージで受け取ったテキストを格納します

void waitForString(String s, ArrayList stringsToHide)

waitForString()

見つからなかった場合は、stringsToHide で一覧にされた文字列を除いて、エラーメッセージで受け取ったテキストを格納します

void waitForInput()

システムが新しいメッセージを受信できるようになるまで、またはシステムで設定されたタイムアウトまで待機します。

int getRequiredString(String s)

searchText(s,true)

指定された文字列を、カーソル位置から前方に向かって検索します

int getRequiredString(String s, ArrayList stringsToHide)

searchText(s,true)

見つからなかった場合は、stringsToHide で一覧にされた文字列を除いて、エラーメッセージで受け取ったテキストを格納します

String hideFields(String screen, ArrayList stringsToHide)

非表示かつ無効にするべき任意のフィールドとともに文字列を返します。

int searchText(String s, boolean forward)

見つかった場合は文字列のインデックスを、見つからなかった場合は 0 を返します。

void setCursorPos(int pos)

カーソルを画面上の特定の位置に移動します

String getScreen()

現在画面上に表示されているテキストを返します

SendKeys メソッドのニーモニックキーワード

次の表では、英数字以外の値のキー入力をシミュレートする 3270 エミュレータを通して実行される可能性がある特殊機能について説明します。

機能

ニーモニックキーワード

機能

ニーモニックキーワード

Attention

[attn]

F1

[pf1]

Backspace

[backspace]

F2

[pf2]

Backtab

[backtab]

F3

[pf3]

Beginning of Field

[bof]

F4

[pf4]

Clear

[clear]

F5

[pf5]

Cursor Down

[down]

F6

[pf6]

Cursor Left

[left]

F7

[pf7]

Cursor Right

[right]

F8

[pf8]

Cursor Select

[cursel]

F9

[pf9]

Cursor Up

[up]

F10

[pf10]

Delete Character

[delete]

F11

[pf11]

DUP Field

[dup]

F12

[pf12]

Enter

[enter]

F13

[pf13]

End of Field

[eof]

F14

[pf14]

Erase EOF

[eraseeof]

F15

[pf15]

Erase Field

[erasefld]

F16

[pf16]

Erase Input

[erinp]

F17

[pf17]

Field Mark

[fieldmark]

F18

[pf18]

Home

[home]

F19

[pf19]

Insert

[insert]

F20

[pf20]

New Line

[newline]

F21

[pf21]

PA1

[pa1]

F22

[pf22]

PA2

[pa2]

F23

[pf23]

PA3

[pa3]

F24

[pf24]

Page Up

[pageup]

 

Page Down

[pagedn]

Reset

[reset]

System Request

[sysreq]

Tab Field

[tab]

サンプルリソースアクション

次のコードは、login リソースアクションと logoff リソースアクションのサンプル一式です。このサンプルは、ある特定の顧客の環境に合わせた内容になっています。したがって、コマンド、プロンプト、コマンドシーケンスなどのテキストは、配備環境によって異なる可能性があります (たとえば 32 行目の "ISPF" など)。これらのリソースアクションは、XML 内の Javascript をラップします。

Login アクション

1   <?xml version='1.0' encoding='UTF-8'?>
2   <!DOCTYPE Waveset PUBLIC 'waveset.dtd' 'waveset.dtd'>
3      <Waveset>
4         <ResourceAction name='ACME Login Action'>
5            <ResTypeAction restype='TopSecret'>
6               <act>
7                  var TSO_MORE = " ***";
8                  var TSO_PROMPT = " READY";
9                  var TS_PROMPT = " ?";
10                 hostAccess.waitForString("ENTER YOUR APPLICATION NAME");
11                 hostAccess.sendKeys("tso[enter]");
12                 hostAccess.waitForString("ENTER USERID -");
13                 hostAccess.sendKeys(user + "[enter]");
14                 hostAccess.waitForString("TSO/E LOGON");
15                 hostAccess.sendKeys(password.decryptToString() + "[enter]");
16                 hostAccess.sendKeys(password.decryptToString());
17                 var pos = hostAccess.searchText("  -Nomail", false);
18                 if (pos != 0) {
19                    hostAccess.setCursorPos(pos);
20                    hostAccess.sendKeys("S");
21                 }
22                 pos = hostAccess.searchText("  -Nonotice", false);
23                 if (pos != 0) {
24                    hostAccess.setCursorPos(pos);
25                    hostAccess.sendKeys("S");
26                 }
27                 hostAccess.sendKeys("[enter]");
28                 hostAccess.waitForStringAndInput(TSO_MORE);
29                 hostAccess.sendKeys("[enter]");
30                 hostAccess.waitForStringAndInput(TSO_MORE);
31                 hostAccess.sendKeys("[enter]");
32                 hostAccess.waitForStringAndInput("ISPF");
33                 hostAccess.sendKeys("=x[enter]");
34                 hostAccess.waitForString(TSO_PROMPT);
35                 var resp =hostAccess.doCmd("PROFILE NOPROMPT MSGID NOINTERCOM NOPAUSE NOWTPMSG PLANGUAGE(ENU) SLANGUAGE(ENU) NOPREFIX[enter]", TSO_PROMPT, TSO_MORE);
36                 hostAccess.waitForStringAndInput("ENTER LOGON:");
37                 hostAccess.sendKeys(system + "[enter]");
38                 hostAccess.waitForStringAndInput("USER-ID.....");
39                 hostAccess.sendKeys(user + "[tab]" + password.decryptToString() + "[enter]");
40                 var stringsToHide = new java.util.ArrayList();
41                 stringsToHide.add(password.decryptToString());
42                 hostAccess.waitForString("==>", stringsToHide);
43                 hostAccess.waitForInput();
44                 hostAccess.sendKeys("[pf6]");
45                 hostAccess.waitForInput();
46            </act>
47         </ResTypeAction>
48      </ResourceAction>

Logoff アクション

49      <ResourceAction name='ACME Logoff Action'>
50         <ResTypeAction restype='TopSecret'>
51            <act>
52               var TSO_PROMPT = " READY";
53               hostAccess.sendKeys("[clear]end[enter]");
54               hostAccess.waitForString(TSO_PROMPT);
55               hostAccess.sendKeys("logoff[enter]");
56            </act>
57         </ResTypeAction>
58      </ResourceAction>
59   </Waveset>

SSL 設定

SSL または TLS を使用してアダプタを Telnet/TN3270 サーバーに接続する

SSL または TLS を使用して Top Secret リソースアダプタを Telnet/TN3270 サーバーに接続するには、次の手順を使用します。

  1. Telnet/TN3270 サーバーの証明書を PKCS #12 ファイル形式で取得します。このファイルのパスワードとして hod を使用します。サーバーの証明書をエクスポートする方法については、使用しているサーバーのマニュアルを参照してください。一般的なガイドラインについては、後述の「PKCS #12 ファイルの生成」の手順を参照してください。
  2. PKCS #12 ファイルから CustomizedCAs.class ファイルを作成します。最新バージョンの HOD を使用している場合は、次のコマンドを使用してこの作業を行います。
  3. ..¥hod_jre¥jre¥bin¥java -cp ../lib/ssliteV2.zip;../lib/sm.zip com.ibm.eNetwork.HOD.convert.CVT2SSLIGHT CustomizedCAs.p12 hod CustomizedCAs.class

  4. CustomizedCAs.class ファイルを Identity Manager サーバーのクラスパス内の任意の場所 ($WSHOME/WEB-INF/classes など) に配置します。
  5. セッションプロパティー」というリソース属性がリソースにまだ存在しない場合は、Identity Manager IDE またはデバッグページを使用して、この属性をリソースオブジェクトに追加します。<ResourceAttributes> セクションに、次の定義を追加します。
  6. <ResourceAttribute name='セッションプロパティー' displayName='セッション プロパティー' description='セッションプロパティー' multi='true'>

    </ResourceAttribute>

  7. リソースの「リソースパラメータ」ページに移動し、「セッションプロパティー」リソース属性に次の値を追加します。
  8. SESSION_SSL

    true

PKCS #12 ファイルの生成

ここでは、SSL/TLS を使用する Host OnDemand (HOD) リダイレクタを使用している場合に PKCS #12 ファイルを生成するときの一般的な手順を説明します。この作業の実行の詳細については、HOD のマニュアルを参照してください。

  1. IBM 証明書管理ツールを使用して、新しい HODServerKeyDb.kdb ファイルを作成します。このファイルの一部として、新しい自己署名付き証明書をデフォルトのプライベート証明書として作成します。
  2. HODServerKeyDb.kdb ファイルの作成時に、「証明書データベースにキーを追加しようとしてエラーが発生した」という内容のメッセージが表示された場合は、1 つ以上の信頼できる認証局証明書の期限が切れている可能性があります。IBM の Web サイトをチェックして、最新の証明書を取得します。

  3. 作成したプライベート証明書を Base64 ASCII として cert.arm ファイルにエクスポートします。
  4. IBM 証明書管理ツールを使用して cert.arm ファイルから「署名者証明書」にエクスポートされた証明書を追加することにより、CustomizedCAs.p12 という名前の新しい PKCS #12 ファイルを作成します。このファイルのパスワードとして hod を使用します。
トラブルシューティング

「セッションプロパティー」リソース属性に次の内容を追加することにより、HACL のトレースを有効にできます。

SESSION_TRACE

ECLSession=3 ECLPS=3 ECLCommEvent=3 ECLErr=3 DataStream=3 Transport=3 ECLPSEvent=3


トレースパラメータは、改行文字を入れずに列挙してください。テキストボックス内でパラメータが折り返される場合は、そのままでかまいません。


Telnet/TN3270 サーバーにも、同じように利用できるログがあります。

プロビジョニングに関する注意事項

次の表に、このアダプタのプロビジョニング機能の概要を示します。

機能

サポート状況

アカウントの有効化/無効化

使用可

アカウントの名前変更

使用不可

パススルー認証

使用不可

前アクションと後アクション

使用可

データ読み込みメソッド

  • リソースから直接インポート
  • 調整
  • Active Sync

セキュリティーに関する注意事項

ここでは、サポートされる接続と特権の要件について説明します。

サポートされる接続

Identity Manager は、TN3270 を使用して Top Secret アダプタと通信します。

必要な管理特権

管理者に次の特権を付与してください。

アカウント属性

次の表に、デフォルトの Top Secret アカウント属性に関する情報を示します。

アイデンティティーシステム 属性名

リソース
属性名

データの種類

説明

Profiles

PROFILE

String

ユーザーに割り当てられたプロファイル。この属性には複数の値を設定できます。

accountId

ACID

String

必須。アカウント ID

fullname

NAME

String

ユーザーの姓名

Installation Data

INSTDATA

String

インストールデータ

TSOO Access

TSO_ACCESS

Boolean

ユーザーが TSO にアクセスできるかどうかを示します

TSOLPROC

TSO.TSOLPROC

String

TSO ログインプロシージャー

OMVS Access

OMVS_ACCESS

Boolean

ユーザーが OMVS にアクセスできるかどうかを示します

Groups

GROUP

String

ユーザーに割り当てられたグループのリスト

Default Group

DFLTGRP

String

ユーザーのデフォルトのグループ

UID

OMVS.UID

String

OMVS ユーザー ID

OMVSPGM

OMVS.OMVSPGM

String

ユーザーの初期 OMVS プログラム

HOME

OMVS.HOME

String

ユーザーの OMVS ホームディレクトリ

Attributes

ATTRIBUTE

String

アカウント属性のリスト

次の表に、デフォルトではスキーママップに一覧表示されていないサポート対象のアカウント属性の一覧を示します。これらの属性のデータの種類は String です。

リソース
属性名

説明

CICS.OPTIME

CICS で端末ユーザーがタイムアウトになったとみなされるまでの時間を制御します。

CICS.OPID

CICS オペレータ ID を指定します。

DEPT

部署名を指定します。

DIV

部門名を指定します。

ZONE

ゾーン名を指定します。

FACILITY

ACID がアクセスできる機能またはアクセスできない機能のリストを指定します。

DATASET

ユーザーのデータセットのリストを指定します。

CORPID

企業 ID のリストを指定します。

OTRAN

所有可能なトランザクションのリストを指定します。

TSOACCT

TSO アカウント番号のリストを指定します。

SOURCE

関連付けられた ACID がシステムに入る場合に使用するソースリーダーまたは端末プレフィックスのリストを指定します。

TSO.TRBA

ブロードキャストデータセット内の、ユーザーのメールディレクトリエントリの相対ブロックアドレス (RBA) を指定します。

TSO.TSOCOMMAND

TSO ログオン時に発行されるデフォルトのコマンドを指定します。

TSO.TSODEFPRFG

デフォルトの TSO パフォーマンスグループを割り当てます。

TSO.TSODEST

TSO ユーザーに対して TSO が生成した JCL のデフォルトの出力先識別子を指定します。

TSO.TSOHCLASS

TSO ユーザーに対して TSO が生成した JCL のデフォルトの保持クラスを割り当てます。

TSO.TSOJCLASS

TSO ユーザーから TSO が生成したジョブカードのデフォルトのジョブクラスを割り当てます。

TSO.TSOLACCT

TSO ログオンで使用されるデフォルトのアカウント番号を指定します。

TSO.TSOLSIZE

TSO のデフォルトの領域サイズを K バイト単位で割り当てます。

TSO.TSOMCLASS

TSO ユーザーに対して TSO が生成した JCL のデフォルトのメッセージクラスを割り当てます。

TSO.TSOMSIZE

TSO ユーザーがログオン時に指定できる最大領域サイズを K バイト単位で定義します。

TSO.TSOOPT

TSO ユーザーがログオン時に指定できるデフォルトのオプションを割り当てます。

TSO.TSOSCLASS

TSO ユーザーに対して TSO が生成した JCL のデフォルトの SYSOUT クラスを割り当てます。

TSO.TSOUDATA

サイトで定義されたデータフィールドを TSO ユーザーに割り当てます。

TSO.TSOUNIT

TSO 下での動的割り当てに使用されるデフォルトの単位名を割り当てます。

TSO.TUPT

ユーザープロファイルテーブルの値を指定します。

ほかの Top Secret リソース属性のサポートの詳細については、サービス組織にお問い合わせください。

アイデンティティーテンプレート

$accountId$

サンプルフォーム

組み込みのフォーム

なし

その他の利用可能なフォーム

TopSecretUserForm.xml

トラブルシューティング

Identity Manager のデバッグページを使用して、次のクラスでトレースオプションを設定します。

hostAccess オブジェクトは、Identity Manager でトレースされることもあります。デバッグページからトレースされるクラスは com.waveset.adapter.HostAccess です。メインフレームに送信されたキーストロークと待機メッセージを識別するにはトレースレベル 3 で十分です。トレースレベル 4 では、送信された正確なメッセージと、メインフレームからの応答が表示されます。


トレースファイルの場所が有効であることを確認します。デフォルトでは、トレースファイルは InstallDir/idm/config の下のアプリケーションディレクトリに配置されます。アプリケーションが WAR から配備されている場合は、パスにはディレクトリの絶対パスのハードコードが必要になることがあります。クラスタ環境では、トレースファイルをネットワーク共有に書き込むようにしてください。


ソースのトレースのほかに、キーストロークを送信する前の画面テキストを常にログに記録しておくことも役に立つ可能性があります。これは、ファイル書き込み側で実現できます。コマンドのシーケンスは次のとおりです。

  1. var file = new java.io.File('<filename>');
    var writer = new java.io.BufferedWriter(new java.io.FileWriter(file));
    writer.write(hostAccess.getScreen());
    writer.flush();
  2. hostAccess.sendKeysAndWait(<cmd>,<msg>);
  3. writer.newLine();
  4. writer.write(hostAccess.getScreen());
  5. writer.flush();
  6. writer.close();

<filename> は、アプリケーションサーバーのローカルファイルシステム上のファイルの場所を参照するようにしてください。書き込み側は、flush() メソッドが呼び出されると、その場所へのハンドルを開いて、バッファーに格納されている内容を書き込みます。close() メソッドは、ファイルへのハンドルを解放します。getScreen() メソッドをこの関数に渡すと、デバッグのために画面の内容のダンプを取得できます。このトレースは、画面が正しくナビゲートされて、ログイン/ログアウトが正常に実行されたら削除するようにしてください。



前へ      目次      索引      次へ     


Part No: 820-1584.   Copyright 2006 Sun Microsystems, Inc. All rights reserved.