独自のプラグインの作成

Network Security プラグインおよび HCM プラグインは、CMInterface インターフェースを インプリメントする Java クラスです。CMS は、前述の API を使って、プラグインへの呼び出しを行います。

Network Security プラグイン:Z and I Emulator for Web には、Tivoli Access Manager 用プラグインと Netegrity Siteminder 用プラグインという 2 つの Network Security プラグインが用意されています。これらをいずれも使用しない場合には、ユーザー自身の プラグインを作成できます。

Network Security プラグインの主な機能は、ユーザーのネットワーク ID を獲得することであり、 この ID は着信 HTTP 要求オブジェクトの HTTP ヘッダーから得ることができます。ネットワーク ID の 取得方法の詳細は、ご使用のネットワーク・セキュリティー・アプリケーションに応じて異なります。詳細については、ご使用のネットワーク・セキュリティーの資料を参照してください。

HCM プラグイン:Z and I Emulator for Web には、DCAS 用プラグインが 2 つ、Vault 用プラグインが 1 つという、3 つの HCM プラグインが用意されています。これらをいずれも使用しない場合には、ユーザー自身の プラグインを作成できます。サンプル HCM プラグイン・コードについては、サンプル HCM プラグインを参照してください。

HCM プラグインの主な機能は、ユーザーのネットワーク ID またはユーザーの証明書 (さらに、アプリケーション ID も 必要である可能性が高い) を取得して、適切なホスト信任状を入手することです。Web Express Logon の インプリメンテーションでは、ユーザーのネットワーク ID は、JDBC アクセス可能データベースを経由して それらのホスト ID にマップされます。ただし、これは LDAP などの別な方法で行うこともできます。この理由から、ユーザー独自の HCM プラグイン を作成することもできます。ここでは、DCAS/JDBC プラグインにおいてユーザーのネットワーク ID を ホスト ID に関連付けることで、3270 アプリケーション・ログインを自動化します。次に、 それらのホスト ID とアプリケーション ID を使用して、RACF 生成のパスチケットを取得します。このパスチケットは、ユーザーがホストにサインオンするときに使用されます。ご使用の環境で、プラグインの JDBC アソシエーション部分を使用しなくてもかまいません。そのため、 ここでは、独自のカスタム・プラグインを開発するために使用可能な DCAS API を提供しています。この API を使用すれば、RACF 生成のパスチケットにアクセスできます。

DCAS API オブジェクト (DCASClient) は、Passticket 要求をカプセル化します。

DCAS API クライアントには、以下のメンバーが含まれています。

メンバー:
  • ポート番号
  • 鍵リング・ファイル名
  • 鍵リング・パスワード
  • WellKnownTrustedCAs 使用
  • サーバー認証
  • トレース・レベル
  • トレース・ログ・ファイル名

DCAS API クライアントには、以下のメソッドが含まれています。

メソッド:
Public DCASClient()
オブジェクト作成時にデフォルトのトレース・レベルとログ・ファイル名を使用する場合は、このコンストラクターを使用します。
Public DCASClient(int traceLevel, String logFile)
  • traceLevel - トレース・レベル (0=なし、1=最小、2=通常および 3=最大)
  • logFile - トレース・ログ・ファイル名。この名前には、絶対パス名を含めてください。
オブジェクト作成時にトレース・レベルとログ・ファイル名を指定する場合は、このコンストラクターを使用します。
Public int Init (String hostAddress, int hostPort, String trustStoreName, String trustStorePassword, String trustStoreType)
  • hostAddress - DCAS サーバーの IP アドレス
  • hostPort - DCAS サーバーのポート番号。指定しない場合、デフォルトのポート番号 8990 が使用されます。
  • trustStoreName - DCAS に接続するために JSSE が使用するトラストストアの名前。この名前には、絶対パス名を含めてください。デフォルトのトラストストアを使用する場合は、ヌルに設定してください。
  • trustStorePassword - 上記トラストストアのパスワード。デフォルトのトラストストアを使用する場合は、ヌルに設定してください。
  • trustStoreType - 上記トラストストアのタイプ。有効値は DCASClient.TRUSTSTORE_TYPE_PKCS12 (pkcs12)、DCASClient.TRUSTSTORE_TYPE_JCEKS (jceks)、 および DCASClient.TRUSTSTORE_TYPE_JKS (jks) です。デフォルトのトラストストアを使用する場合は、ヌルに設定してください。
このメソッドは、DCASClient オブジェクトの作成後に呼び出されます。これらのパラメーターはオブジェクトに保管され、オブジェクトが存続する間は変更されません。トラストストア名には、絶対パス名を含めてください。デフォルトのトラストストアが使用されない場合は、トラストストアには DCAS クライアント証明書と DCAS サーバー証明書を含める必要があります。トラストストア・パスワードは、パスワード暗号化ツールを使用して暗号 化されているはずです。このパスワードは、オブジェクト内に格納される前に暗号化解除されます。有効な戻りコードは、SSOConstants オブジェクトに説明があります。成功した場合は 0 が戻り、 成功しなかった場合はゼロ以外が戻ります。
public void setUseDefaultTrustStore(boolean def)
public void setNoFIPS(boolean nof)
Public int Init(String dcasAddr, int dcasPort, String keyringFileName, String keyringPassword)
  • dcasAddr - DCAS サーバーの IP アドレス
  • dcasPort - DCAS サーバーのポート番号。指定しない場合、デフォルトのポート番号 8990 が使用されます。
  • keyringFileName - SSL 鍵リング・データベース・ファイルの名前。この名前には、絶対パス名を含めてください。
  • keyringPassword - 上記鍵リング・データベースのパスワード。
このメソッドは、DCASClient オブジェクトの作成後に呼び出されます。パラメーターはオブジェクトに保管され、 そのオブジェクトが存在する間は変更されません。p12 ファイル名には、絶対パス名を指定する必要があります。ここには、DCAS クライアント証明書および DCAS サーバー証明書を含めなければなりません。これらの証明書用にデフォルトのトラストストアが使用されている場合、p12FileName および p12Password をヌルに設定します。p12 パスワードは、パスワード暗号化ツールを使用して暗号化されているはずです。このパスワードは、オブジェクト内に格納される前に暗号化解除されます。有効な戻りコードは、SSOConstants オブジェクトに説明があります。p12 以外のタイプのトラストストアを使用している場合は、 代わりに Init(hostAddress, hostPort, trustStoreName, trustStorePassword, trustStoreType) メソッドを使用してください。
Public void setWellKnownTrustedCAs(boolean wellKnownCAs)
public void setWellKnownTrustedCAsPassword(String password)
このメソッドは、上記のパラメーターで指定された値を設定するために使用します。
Public void setServerAuthentication(boolean serverAuth)
Public void setTraceLevel(int level)
Public void setLogFile(string fileName)
Public CMResponse getPassticket(String hostUserID, String hostApplID, String hostAddr, long timeout)
  • hostUserID - パスチケットが要求されるユーザー ID。
  • hostApplID - パスチケットが要求されるアプリケーション ID。
  • hostAddr - DCAS サーバーのアドレス。
  • timeout - DCAS プロトコルがパスチケットを戻す場合に利用できる時間。ミリ秒単位で指定します。
このメソッドは、DCASClient オブジェクトの作成および初期化後に、DCAS サーバーからパスチケットを取得するために呼び出されます。パスチケットおよびユーザー ID は、CMResponse オブジェクトに戻されます。呼び出し元は、CMResponse オブジェクトの状況フィールドを検査して、呼び出しが正常に行われたかどうかを調べる 必要があります。呼び出しが正常に行われた場合、状況フィールドは SSO_CMR_SUCCESS (0) に設定されます。状況フィールドの有効な値は、表 1 に明記されています。SSL クライアント認証済み接続が DCAS サーバーとの間で確立され、それ以降のすべてのパスチケット要求で再使用されます。
Public CMResponse getPassticket(byte certificate[], String hostApplID, String hostAddr, long timeout)
  • certificate - パスチケットが要求されるユーザー証明書。
  • hostApplID - パスチケットが要求されるアプリケーション ID。
  • hostAddr - DCAS サーバーのアドレス。
  • timeout - DCAS プロトコルがパスチケットを戻す場合に利用できる時間。ミリ秒単位で指定します。
このメソッドは、DCASClient オブジェクトの作成および初期化後に、DCAS サーバーからパスチケットを取得するために呼び出されます。パスチケットおよびユーザー ID は、CMResponse オブジェクトに戻されます。呼び出し元は、CMResponse オブジェクトの状況フィールドを検査して、呼び出しが正常に行われたかどうかを調べる 必要があります。呼び出しが正常に行われた場合、状況フィールドは SSO_CMR_SUCCESS (0) に設定されます。状況フィールドの有効な値は、表 1 に明記されています。SSL クライアント認証済み接続が DCAS サーバーとの間で確立され、それ以降のすべてのパスチケット要求で再使用されます。
Public void Destroy()
このメソッドは、DCAS 接続をクローズします。