EAPHost LEAP メカニズムの実装
このトピックでは、サード パーティが Windows 用の Lightweight Extensible Authentication Protocol (LEAP) モジュールを記述できるようにする EAPHost メカニズムについて説明します。 LEAP は、 RFC 3748 に従って Cisco によって作成されたレガシ認証方法です。 LEAP の詳細については、「 Cisco LEAP Q&A」を参照してください。
EAPHost 認証プロセス
通常の EAPHost 認証プロセスは、次のように行われます。
- 認証子は、ピアを認証するための要求を送信します。 たとえば、アプリケーションは EAPHost 構成とユーザー データを使用して EapHostPeerBeginSession を呼び出します。
- ピアは、有効な要求に応答して応答パケットを送信します。 たとえば、呼び出しが成功すると、EAP_SESSION_HANDLEセッション ハンドル が 返されます。
- 認証子は追加の要求パケットを送信し、ピアは応答で応答します。 たとえば、アプリケーションは EapHostPeerGetSendPacket を呼び出して、セッション全体で EAPHost によって受信された EAP パケットを取得します。 各パケットは、 EapHostPeerProcessReceivedPacket の呼び出しによって処理されます。
- EapHostPeerProcessReceivedPacket は常にアクション コードを返します。 その後、サプリカントはアクション コードに対応する関数を呼び出す必要があります。
- 要求と応答のシーケンスは、必要な限り続行されます。 たとえば、アプリケーションは EapHostPeerGetResponseAttributes を呼び出して使用可能な EAP 属性を要求し、ピアは EapHostPeerSetResponseAttributes で応答してそれらを返すことができます。
- 最初の要求の後、有効な応答を受信するまで、新しい要求を送信できません。
- メッセージ交換は、認証子がピアを認証できないまで続行されます。その場合、認証子の実装は EAP エラーを送信する必要があります。 たとえば、1 つ以上の要求に対して許容できない応答を行うと、認証システムが Code 4 EAP エラーを送信します。
- または、認証の会話は、認証が成功したと認証子が判断するまで続行できます。その場合、認証子は EAP の成功 (コード 3) を送信する必要があります。
- 結果が成功または失敗のいずれであるかを示す場合でも、アプリケーションは EapHostPeerEndSession を呼び出してセッションを終了します。 障害が発生した場合は、EAPHost で別のセッションを開き、同じ ID または新しい ID を指定することで、再認証を試みることができます。
LEAP 認証プロセス
LEAP 認証プロセスは、通常の EAPhost 認証プロセスとは次のように異なります。
EAP 認証は、サーバー (認証子) によって開始されます。 これに対し、LEAP はクライアント (ピア) によって開始されます。
- したがって、LEAP モジュールを記述するときは、常にピア メソッドからのチャレンジ要求パケットと EAP サーバーからの EAP 応答が、サーバーからの EAP 成功パケットと同じパケット ID を持っている必要があります。
これに対し、EAPHost 要求パケットと応答パケットと成功パケットはすべて異なる ID を持ちます。
Note
すべての EAP 要求には、要求対象を示す [種類] フィールドがあります。 要求パケットと同様に、すべての EAP 応答パケットには、要求の Type フィールドに対応する Type フィールドが含まれます。 例としては、ID 要求パケットとチャレンジ要求パケットがあります。
EAPHost で障害が発生した場合は、EAPHost との別のセッションを開き、同じ ID または新しい ID を指定することで、再認証を試みることができます。
LEAP Authenticator メソッドの実装
LEAP 認証方法を開発する場合は、次のことを確認してください。
- LEAP 認証メソッドは、認証の第 1 フェーズ (ピア認証) が成功した後に、 EAP_METHOD_AUTHENTICATOR_RESPONSE_SEND アクション コードを返す必要があります。 その後、EapMethodAuthenticatorSendPacket が呼び出されると、EapCodeSuccess の EAP コードを含む有効な EapPacket が返されます。
- ピア認証の第 1 フェーズが失敗した場合、LEAP 認証メソッドは EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT アクション コードを返す必要があります。
- LEAP 認証メソッドは、EapMethodAuthenticatorSendPacket が呼び出されたときに、EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULTアクション コードを含む最終的な認証応答パケットを返す必要があります。 その後、 EapMethodAuthenticatorGetResult への後続の呼び出しで、認証されたセッションを識別するために EAP_SESSION_HANDLE を返す必要があります。
LEAP ピア メソッドの実装
LEAP ピア メソッドを開発する場合は、次のことを確認してください
- LEAP ピア メソッドは、認証の第 1 フェーズ (ピア認証) が成功した後に EapPeerMethodResponseActionSend アクション コードを返す必要があります。
- LEAP ピア メソッドは、認証の第 2 フェーズが成功した後に EapPeerMethodResponseActionResult アクション コードを返す必要があります。
関連トピック