Set_Conversation_Security_Type (CPI-C)
呼び出し元プログラムによって Set_Conversation_Security_Type 呼び出し (関数名 cmscst) が発行され、呼び出されたプログラムへのアクセスを検証するためにパートナー論理装置 (LU) が必要とする情報を指定します。
構文
CM_ENTRY Set_Conversation_Security_Type(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *conversation_security_type,
CM_INT32 FAR *return_code
);
パラメーター
conversation_ID
指定されたパラメーター。 会話の識別子を指定します。 このパラメーターの値は 、Initialize_Conversationによって返されました。
conversation_security_type
指定されたパラメーター。 呼び出されたプログラムへのアクセスを検証するためにパートナー LU が必要とする情報を指定します。 構成中に呼び出されたプログラムに対して確立された会話セキュリティに基づいて、次のいずれかの値を使用します。
CM_SECURITY_NONE
呼び出されたプログラムで会話セキュリティが使用されていないことを示す。
CM_SECURITY_PROGRAM
呼び出されたプログラムが会話セキュリティを使用し、ユーザー識別子とパスワードが必要であることを示す。
CM_SECURITY_SAME
ユーザー ID が、パートナー LU 内のノード サービスに割り当て要求で送信されることを示します。 この設定は、有効なユーザー識別子とパスワードで呼び出された呼び出されたプログラムが別のプログラムを呼び出すように指定するためにも使用されます (「 TP 間の通信」で示されています)。 たとえば、プログラム A が有効なユーザー ID とパスワードを使用してプログラム B を呼び出し、プログラム B がプログラム C を呼び出すとします。プログラム B がCM_SECURITY_SAME値を指定した場合、CPI-C はプログラム C の LU、プログラム A からのユーザー ID、および既に検証済みの標識を送信します。 このインジケーターは、プログラム C にパスワードを必要としないように指示します (プログラム C が既に検証済みのインジケーターを受け入れるように構成されている場合)。
CM_SECURITY_SAMEを使用する場合、アプリケーションは常に Set_Conversation_Security_User_ID と Set_Conversation_Security_Password を呼び出して 、security_user_ID パラメーターと security_password パラメーターの値を指定 する 必要があります。 SNA サーバーとピア LU の間でネゴシエートされるプロパティに応じて、 Allocate 関数は次の優先順位で 3 種類の Attach (FMH-5) メッセージのいずれかを送信します。
LU が既に検証済みのセキュリティをネゴシエートしている場合、SNA Server によって送信されたアタッチには、Set_Conversation_Security_Passwordで指定されたsecurity_password パラメーター フィールドの内容は含まれません。
LU が永続的な検証セキュリティをネゴシエートした場合、SNA Server によって送信される Attach には、Set_Conversation_Security_Passwordによって指定されたsecurity_password パラメーターが含まれますが、LU-LU セッションの開始以降に Set_Conversation_Security_User_ID によって設定された指定されたsecurity_user_ID パラメーターに対して Attach が最初の場合にのみ含まれます。また、後続のすべての Attaches (アプリケーションまたは他のアプリケーションが使用して発行) の security_password パラメーターを省略します。この LU-LU モードのトリプレット)。
アプリケーションは、LU 間でネゴシエートされたセキュリティー・モードを見分けることはできません。また、それが発行している Allocate 関数がその LU-LU モード・トリプレットの最初の機能であるかどうかを判断することもできません。 そのため、conversation_security_type が CM_SECURITY_SAME に設定されている場合、アプリケーションは常に Set_Conversation_Security_User_ID と Set_Conversation_Security_Password を呼び出して、security_user_IDパラメーターとsecurity_password パラメーターを設定する必要があります。
永続的な検証と既に検証済みのセキュリティの詳細については、「SNA 形式ガイド」セクション「FM ヘッダー 5: アタッチ (LU 6.2)」を参照してください。
CPI-C 自動ログオン機能を使用する場合は、このパラメーターをCM_SECURITY_PROGRAMに設定する必要があります。 詳細については、このトピックで後述する「解説」セクションを参照してください。
return_code
この呼び出しから返されたコード。 有効なリターン コードについては、このトピックの後半で説明します。
リターン コード
CM_OK
プライマリ リターン コード。呼び出しが正常に実行されました。
CM_PROGRAM_STATE_CHECK
プライマリ リターン コード。メッセージ交換が INITIALIZE 状態ではありません。
CM_PROGRAM_PARAMETER_CHECK
プライマリ リターン コード。 conversation_ID または conversation_security_type で指定された値が無効です。
CM_PRODUCT_SPECIFIC_ERROR
プライマリ リターン コード。製品固有のエラーが発生し、製品エラー ログに記録されています。
State Changes (状態の変化)
スレッドは INITIALIZE 状態である必要があります。
状態の変更はありません。
注釈
この呼び出しは、 Initialize_Conversationで指定されたサイド情報から初期セキュリティの種類をオーバーライドします。 Allocate が発行された後は、この呼び出しを発行できません。
会話のセキュリティの種類が CM_SECURITY_NONE に設定されている場合、会話が割り当てられると、ユーザー識別子とパスワードは無視されます。
CM_SECURITY_SAMEの会話セキュリティの種類は、ユーザー ID のセットが同じで、すべてのノードに対してユーザーを検証する際に 1 つのノードで実行されたユーザー検証を受け入れるノード間で使用することを目的としています。 この場合、ユーザー ID の初期検証を除き、パスワードは使用されません。
CPI-C アプリケーションの自動ログオンは、Host Integration Server でサポートされています。 この機能には、ネットワーク管理者による特定の構成が必要です。 CPI-C アプリケーションは、SNA サーバーのクライアントから LAN 側で呼び出す必要があります。 クライアントは Microsoft Windows ドメインにログインする必要がありますが、SNA Server CPI-C API をサポートする任意のプラットフォームにすることができます。
クライアント アプリケーションは、プログラム レベルのセキュリティを使用するようにコーディングされ、特別なハードコーディングされた CPI-C ユーザー名 MS$SAME とパスワード MS$SAME が使用されます。 このセッション割り当てがクライアントから SNA Server に送信されると、SNA サーバーは、クライアントがログオンしている Windows アカウントに対応するホスト アカウントとパスワードを検索し、ホスト アカウント情報をホストに送信する APPC アタッチ メッセージに置き換えます。