このトピックでは、サプリカント API の特定の呼び出しシーケンスについて説明します。
サプリカント API 呼び出しシーケンスの概要
サプリカントがアクセス ポイントなどのプロバイダーから EAP パケットを受信すると、通常、次のサプリカント API 呼び出しフローが発生します。
- アプリケーションは、EAPHost 構成データとユーザー データ 使用して EapHostPeerBeginSession を呼び出します。 呼び出しが成功すると、EAP_SESSION_HANDLE セッション ハンドルが返されます。
- サプリカントが受信した各パケットは、EapHostPeerProcessReceivedPacket呼び出しによって処理されます。 その後、サプリカントは、関数によって返されるアクション コードに対応する関数を呼び出します。
- アクション コードが EapHostPeerResponseSend 場合、サプリカントは EapHostPeerGetSendPacket呼び出して、認証子に送信される応答を取得します。
- セッション中にサプリカントに返されるアクション コードが EapHostPeerResponseRespond 場合は、EAP 属性が使用可能であることを示します。 その後、サプリカント EapHostPeerGetResponseAttributes を呼び出して取得します。 これらの属性には、認証プロセス中に使用される補足データが含まれます。 サプリカントは属性の処理を完了すると、データを更新 EapHostPeerSetResponseAttributes を呼び出します。 この関数は、サプリカントの次のアクションを決定するアクション コードを返します。
- アクション コードが EapHostPeerResponseInvokeUI 場合、サプリカントはユーザー インターフェイス ダイアログを発生させ、資格情報や ID 情報などの対話型データをユーザーから取得します。 以下の「サプリカント API 呼び出しフローを使用したユーザー操作」を参照してください。
- アクション コードが EapHostPeerResponseResult 場合は、認証セッションの結果がサプリカントで使用可能であることを示します。 その後、サプリカント EapHostPeerGetResult を呼び出して結果を取得します。 結果が成功または失敗を示しているかどうかに関係なく、サプリカントは EapHostPeerEndSession呼び出します。 障害が発生した場合は、EAPHost で別のセッションを開き、新しい ID を指定するか、元の ID でもう一度認証を試みることで、再認証を試みることができます。
サプリカント API 呼び出しフローを使用したユーザー操作
場合によっては、認証プロセスを続行するために、サプリカントがユーザーから情報を取得する必要があります。
次の一覧は、対話型入力を有効にするために必要なサプリカントおよび EAPHost UI プロセスでの一連の呼び出しを示しています。
サプリカントは、EapHostPeerGetUIContext呼び出して、現在のユーザー インターフェイス コンテキストを取得します。
その後、サプリカントは、サプリカント UI プロセスに UI コンテキスト データを送信します。
手記
UI プロセスは、通常は UI を収集するか、対話型 UI を処理しますが、サプリカント プロセスとは別です。 2 つのプロセスを分離することは EAPHost の要件ではありませんが、これを行うと、UI プロセスがデスクトップと対話できるという利点があります。
サプリカントが UI を単独でレンダリングする場合は、EapHostPeerQueryInteractiveUIInputFields関数呼び出して、対話型 UI コンポーネントが発生する入力フィールドを取得します。 それ以外の場合は、EapHostPeerInvokeInteractiveUI 呼び出してメソッド対話型 UI を呼び出す従来のモデルに従
手記
EAP_E_EAPHOST_METHOD_OPERATION_NOT_SUPPORTED が返された場合、サプリカントは、EapHostPeerInvokeInteractiveUI呼び出すことによって、メソッド対話型 UI を呼び出す従来のモデルに従う必要があります。 エラーが発生した場合、EapHostPeerQueryInteractiveUIInputFieldsは、NULL以外のリターン コードを返します。
サプリカント呼び出し EapHostPeerQueryInteractiveUIInputFields または EaphostPeerInvokeInteractiveUI UI プロセスが既存のコンテキスト データを渡し、Eappcfg.dllを読み込むかどうか。 新しいデータを収集するために適切な UI が発生します。 ユーザー入力を含む可能性がある新しい UI コンテキスト データがコピーされ、EapPeerFreeMemoryを呼び出して古いコンテキスト データ解放されます。
UI プロセスは、新しいコンテキスト データをサプリカントに返します。このデータは、EapHostPeerSetUIContext呼び出して設定します。
関連トピック