セキュリティ データ
セキュア DPS に対する協調フロー要求には、協調フロー要求に関連付けられているユーザの実行アクセスを許可するために使用されるセキュリティ データが含まれている必要があります。
cagen
Gen
は 3 つの方法で、セキュリティ データを協調フローの一部として提供します。- 標準セキュリティ
- 拡張セキュリティ
- 独自適用セキュリティ
標準セキュリティ
標準セキュリティを使用する場合、セキュリティ データ(ユーザ ID とパスワード)は、共通フォーマット バッファ(CFB)ヘッダのフィールドに配置されます。
この技術を使用して提供されるセキュリティ データは層 1 で使用されます。また、間接的には層 2 でも使用されます(TIRSECR ユーザ エグジットによって許可される USER_ID システム属性およびトランザクション コード)。
ユーザ ID とパスワードの値は、以下の 2 つの方法のいずれかで提供されます。
- クライアント マネージャを使用しないインプリメンテーションにおいて、DPC アプリケーションは CLIENT_USER_ID および CLIENT_PASSWORD 変数を使用してユーザ ID とパスワードを提供します。クライアント セキュリティ ユーザ エグジット(WRSECTOKEN)は、これらの値が CFB ヘッダに配置されることを示します。
- クライアント マネージャを使用するインプリメンテーションにおいて、クライアント マネージャはユーザ ID とパスワードを提供します。クライアント マネージャをセキュリティ処理用に構成する方法の詳細については、「クライアント マネージャの操作」を参照してください。
転送される CFB ヘッダのセキュリティ データは、DPS アプリケーションのロジックから直接アクセスできません。ただし、このセキュリティ データは、ほとんどの DPS 実行環境で、DPS が実行されるユーザー コンテキストを確立するために使用されます。たとえば、指定されたユーザー ID およびパスワードは、ユーザーのサインオンに使用されます。サインオン ユーザーは、トランザクションが実行されるコンテキストを確立します。サインオン ユーザに関連付けられたユーザ ID 値は、TIRUSRID ユーザ エグジットによって
Gen
の USER_ID システム属性に入力されます。特定の実行環境では、セキュリティ データをそのまま渡す必要があるサードパーティ環境によってサインオン処理が発生します。したがって、層 1 では DPS の外部でアクセス検証を行うため、層 1 で処理が発生する場合、セキュリティ データは既知の形式で使用可能である必要があります。これらの実行環境に対応するため、CFB のヘッダ部分は暗号化できません。
拡張セキュリティ
拡張セキュリティを使用する場合、セキュリティ データ(ユーザ ID、パスワード、およびオプションのセキュリティ トークン)は、CFB のセキュリティ オフセット部分に配置されます。さらに、ユーザー ID は共通フォーマット バッファ(CFB)ヘッダーの UserID フィールドに配置されます。
DPC アプリケーションについては、
Gen
CLIENT_USER_ID および CLIENT_PASSWORD 変数を使用してユーザ ID とパスワードを提供します。クライアント セキュリティ ユーザ エグジット(WRSECTOKEN)は、これらの値がセキュリティ オフセットに配置されることを示します。クライアント セキュリティ ユーザ エグジットは、フローで拡張セキュリティが使用されることを示すリターン コードを提供します。オプションのセキュリティ トークンについては、セキュリティ オフセット内のセキュリティ トークンの入力に使用されるデータがクライアント セキュリティ ユーザ エグジットによって提供されます。そのため、クライアント セキュリティ ユーザ エグジットは、拡張セキュリティが使用されることを示すだけではなく、必要に応じて、セキュリティ トークンの入力に使用されるデータを提供できます。
セキュリティ トークンは、協調フロー要求の一部として CFB に渡されるデータとして機能するバイト配列です。このデータは、サーバ セキュリティ層 3 - アプリケーション セキュリティ ユーザ エグジットに対する入力として提供されます。セキュリティ トークンは、Kerberos の一部として使用されたり、エンド ユーザを認証することを目的とした「Kerberos ライク」のインプリメンテーションとして使用されたりします。
セキュリティ トークンは、Web サービス機能を使用するフローでは渡されません。
独自作成セキュリティ
独自作成セキュリティ
では、層 4 アクセスおよび層 5 アクセスの検証をサポートするセキュリティを提供します。セキュリティ データと関連する処理はモデル定義に組み込まれます。DPS は、インポート ビューでセキュリティ データを定義します。呼び出し側の DPC は、協調フロー要求実行の準備の一環として、DPS のインポート ビューにセキュリティ データに値を入力します。その他のすべてのセキュリティ処理が DPS の実行を許可していれば、DPS が制御を取得します。DPS は、関連するアクション図または外部アクション ブロック(EAB)にコーディングされている処理を使用して、提供されたセキュリティ データを検証できます。暗号化と復号化
CFB を使用して DPC と DPS 間でビュー データを交換する協調フローの場合、
Gen
では、要求または応答の一部を暗号化された形式で転送できます。使用されるセキュリティ処理のタイプ(SECURITY_NONE、SECURITY_STANDARD、または SECURITY_ENHANCED)にかかわらず、暗号化と復号化を使用できます。
協調フローの処理中に呼び出されるユーザ エグジットは 2 セットあります。一方は、要求が DPC によって暗号化され、DPS によって復号化されるセットです。もう一方は、応答が DPS によって暗号化され、DPC によって復号化されるセットです。暗号化/復号化ユーザ エグジットの 2 つのセットは、それぞれ独立して使用できます。つまり、応答を暗号化しなくても、要求を暗号化できます。応答についても同様です。要求を暗号化しなくても、応答バッファを暗号化できます。
注:
- CFB のどのセクションを暗号化対象にするかを決定する方法の詳細については、「共通フォーマット バッファ」を参照してください。
- DPC と DPS が協調フロー データの暗号化と復号化に使用するユーザ エグジットの詳細については、「分散処理ユーザ エグジット」を参照してください。
- これらのアプリケーションで使用可能なユーザ エグジットの復号化の詳細については、「クライアント マネージャの操作」と「コミュニケーション ブリッジの操作」を参照してください。