EAPHost LEAP 메커니즘 구현
이 항목에서는 타사에서 Windows용 LEAP(Lightweight Extensible Authentication Protocol) 모듈을 작성할 수 있도록 하는 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 오류를 전송해야 합니다. 예를 들어 하나 이상의 요청에 대한 허용되지 않는 응답으로 인해 인증자가 코드 4 EAP 오류를 전송하게 됩니다.
- 또는 인증자가 성공적인 인증이 발생했음을 확인할 때까지 인증 대화를 계속할 수 있습니다. 이 경우 인증자는 EAP 성공(코드 3)을 전송해야 합니다.
- 결과가 성공 또는 실패를 나타내는지 여부에 관계없이 애플리케이션은 EapHostPeerEndSession을 호출하여 세션을 종료합니다. 오류가 발생하는 경우 EAPHost를 사용하여 다른 세션을 열고 동일한 ID 또는 새 ID를 제공하여 다시 인증을 시도할 수 있습니다.
LEAP 인증 프로세스
LEAP 인증 프로세스는 다음과 같이 일반 EAPhost 인증 프로세스와 다릅니다.
EAP 인증은 서버(인증자)에 의해 시작됩니다. 반면 LEAP는 클라이언트(피어)에 의해 시작됩니다.
- 따라서 LEAP 모듈을 작성할 때는 항상 피어 메서드의 챌린지 요청 패킷과 EAP 서버의 EAP 응답에 항상 서버의 EAP 성공 패킷과 동일한 패킷 ID가 있어야 합니다.
반면, EAPHost 요청 및 응답 및 성공 패킷에는 일반적으로 모두 다른 ID가 있습니다.
참고 항목
모든 EAP 요청에는 요청되는 내용을 나타내는 형식 필드가 있습니다. 요청 패킷과 마찬가지로 모든 EAP 응답 패킷에는 요청의 형식 필드에 해당하는 형식 필드가 포함됩니다. ID 요청 및 챌린지 요청 패킷을 예로 들어 있습니다.
EAPHost에서 오류가 발생하는 경우 EAPHost를 사용하여 다른 세션을 열고 동일한 ID 또는 새 ID를 제공하여 다시 인증을 시도할 수 있습니다.
LEAP Authenticator 메서드 구현
LEAP 인증자 메서드를 개발할 때 다음을 확인하세요.
- LEAP 인증자 메서드는 첫 번째 인증 단계(피어 인증)가 성공한 후 EAP_METHOD_AUTHENTICATOR_RESPONSE_SEND 작업 코드를 반환해야 합니다. 그런 다음 EapMethodAuthenticatorSendPacket이 호출되면 EapCodeSuccess의 EAP 코드를 사용하여 유효한 EapPacket을 반환해야 합니다.
- LEAP 인증자는 피어 인증의 첫 번째 단계가 실패한 경우 EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT 작업 코드를 반환해야 합니다.
- LEAP 인증자 메서드는 EapMethodAuthenticatorSendPacket이 호출될 때 EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT 작업 코드를 사용하여 최종 인증 응답 패킷을 반환해야 합니다. 그런 다음 EapMethodAuthenticatorGetResult에 대한 후속 호출에서 인증된 세션을 식별하려면 EAP_SESSION_HANDLE 반환해야 합니다.
LEAP 피어 메서드 구현
LEAP 피어 메서드를 개발할 때 다음을 확인하세요.
- LEAP 피어 메서드는 첫 번째 인증 단계(피어 인증)가 성공한 후 EapPeerMethodResponseActionSend 작업 코드를 반환해야 합니다.
- LEAP 피어 메서드는 인증의 두 번째 단계가 성공한 후 EapPeerMethodResponseActionResult 작업 코드를 반환해야 합니다.
관련 항목