EapHostPeerBeginSession 함수(eappapis.h)
EAP 인증 세션을 시작합니다. EapHostPeerBeginSession 함수가 성공하면 호출자는 EapHostPeerEndSession을 호출하여 인증 세션을 종료해야 합니다. EapHostPeerBeginSession 이외의 함수가 성공 또는 실패하는지 여부에 관계없이 후자의 함수를 호출해야 합니다.
이유에 관계없이 다시 인증이 필요한 경우 pConnectionId 매개 변수로 표시되는 인터페이스가 등록 취소됩니다. pConnectionId가 등록 취소된 경우 EapHostPeerClearConnection을 호출하여 연결을 제거해야 합니다.
EapHostPeerEndSession을 호출하지 않고 인터페이스에서 EapHostPeerBeginSession을 다시 호출하지 마세요. pConnectionId로 지정된 인터페이스에서 하나의 인증 세션만 활성화할 수 있습니다.
구문
DWORD EapHostPeerBeginSession(
[in] DWORD dwFlags,
[in] EAP_METHOD_TYPE eapType,
[in] const EapAttributes * const pAttributeArray,
[in] HANDLE hTokenImpersonateUser,
[in] DWORD dwSizeofConnectionData,
[in] const BYTE * const pConnectionData,
[in] DWORD dwSizeofUserData,
[in] const BYTE * const pUserData,
[in] DWORD dwMaxSendPacketSize,
[in] const GUID * const pConnectionId,
[in] NotificationHandler func,
[in] void *pContextData,
[out] EAP_SESSIONID *pSessionId,
[out] EAP_ERROR **ppEapError
);
매개 변수
[in] dwFlags
새 EAP 인증 세션 동작을 설명하는 EAP 플래그의 조합입니다.
[in] eapType
이 세션에 사용할 EAP 인증 유형을 지정하는 EAP_METHOD_TYPE 구조체입니다.
[in] pAttributeArray
인증할 엔터티의 EAP 특성을 지정하는 EapAttributes 구조체에 대한 포인터입니다.
[in] hTokenImpersonateUser
이 세션에서 사용할 사용자 가장 토큰에 대한 핸들입니다.
[in] dwSizeofConnectionData
pConnectionData에 제공된 연결 데이터 버퍼의 크기(바이트)입니다.
[in] pConnectionData
인증에 사용되는 구성에 대해 설명합니다. NULL 연결 데이터는 유효한 것으로 간주됩니다. 메서드는 기본 구성에서 작동해야 합니다.
[in] dwSizeofUserData
pUserData에 제공된 사용자 데이터 버퍼의 크기(바이트)입니다.
[in] pUserData
EapPeerGetIdentity 함수에서 반환된 사용자 데이터를 포함하는 불투명 사용자 데이터 BLOB을 포함하는 바이트 버퍼에 대한 포인터입니다. 사용자 데이터에는 인증에 사용되는 자격 증명 또는 인증서가 포함될 수 있습니다. pUserData 는 NULL일 수 있습니다. NULL 포인터의 해석은 메서드의 구현에 따라 달라집니다. 사용자 데이터는 인증에 사용되는 사용자 또는 컴퓨터 자격 증명으로 구성됩니다. 일반적으로 사용자 데이터는 구성 데이터에 따라 달라집니다.
EAP_FLAG_PREFER_ALT_CREDENTIALSdwflags에 표시되는 경우 pConnectionData에 전달된 구성 데이터가 다른 자격 증명 검색 모드를 요청하는 경우에도 EapPeerBeginSession에 전달된 자격 증명은 다른 형식의 자격 증명 검색에 선호됩니다. EapPeerBeginSession에 자격 증명을 전달하는 데 실패하면 EAPHost는 메서드 특정 자격 증명 검색을 사용합니다. 이 경우 파일, Windows 로그인 또는 인증서 저장소에서 자격 증명을 가져올 수 있습니다.
EAP 메서드 작성자가 기본 자격 증명과 대체 자격 증명을 모두 정의합니다. 예를 들어 EAP-MSCHAPv2 경우 기본 자격 증명은 winlogon에서 가져온 Windows 자격 증명이고 대체 자격 증명은 pUserData에 전달된 자격 증명(사용자 이름, 암호, 도메인)입니다.
[in] dwMaxSendPacketSize
세션 중에 보낼 수 있는 EAP 패킷의 최대 크기(바이트)입니다.
[in] pConnectionId
지원자의 인증이 수행될 논리 네트워크 인터페이스를 고유하게 식별하는 GUID 값에 대한 포인터입니다. NAP 상태 변경 후 지원자가 다시 인증을 찾는 경우 고유한 GUID를 제공해야 합니다. 내부 메서드를 시작하기 위해 터널링 메서드에서 이 함수를 호출할 때 매개 변수는 NULL 이어야 합니다. pConnectionId 매개 변수가 NULL이면 func 및 pContextData 매개 변수는 무시됩니다.
[in] func
다시 인증이 필요할 때 EAPHost에서 지원자에게 알리기 위해 사용하는 콜백을 제공하는 NotificationHandler 함수 포인터입니다.
함수 처리기가 NULL이면 pContextData 매개 변수는 무시됩니다. 함수 처리기가 NULL인 경우 호출자가 EAP QEC(격리 적용 클라이언트)의 SoH 변경 알림에 관심이 없음을 의미합니다.
다음 코드는 NotificationHandler 콜백 호출을 보여줍니다.
func(*pConnectionId, pContextData);
[in] pContextData
func가 호출될 때 지원자가 연결과 연결할 컨텍스트 데이터를 다시 인증하는 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.
[out] pSessionId
EAPHost 서버에서 이 EAP 인증 세션에 대한 고유 핸들을 포함하는 EAP_SESSIONID 구조체에 대한 포인터입니다.
[out] ppEapError
EAP_ERROR 구조체의 주소에 대한 포인터입니다. 이 함수를 호출하기 전에 주소를 NULL 로 설정해야 합니다. 오류 데이터를 사용할 수 있는 경우 이 함수 호출을 실행하는 동안 발생한 오류가 포함된 EAP_ERROR 구조체의 주소에 대한 포인터가 수신됩니다. 오류 데이터를 사용한 후 EapHostPeerFreeEapError를 호출하여 이 메모리를 해제합니다.
반환 값
없음
설명
EAPHost 지원자가 NAP에 참여하는 경우 지원자는 네트워크 상태의 변경에 응답합니다. 해당 상태가 변경되면 지원자는 다음과 같이 다시 인증 세션을 시작해야 합니다.
- 재인증이 발생할 때 현재 세션이 있는 경우 지원자는 EapHostPeerEndSession을 호출하여 현재 세션을 해제한 다음 EapHostPeerBeginSession을 호출하여 새 세션을 시작해야 합니다.
- 재 인증이 있는 현재 세션이 없거나 EapHostPeerEndSession을 호출하여 이전 세션이 이미 종료된 경우, 지원자는 EapHostPeerBeginSession을 호출하여 새 세션을 시작해야 합니다.
EapHostPeerBeginSession은 연결을 등록하는 유효한 GUID를 제공할 수 있으므로 여러 세션에서 연결을 유지할 수 있습니다. EapHostPeerEndSession이 호출되면 현재 세션만 종료됩니다. GUID를 사용하는 등록은 종료되지 않으므로 EapHostPeerBeginSession 의 원래 등록은 그대로 유지됩니다. 따라서 등록은 여러 세션에서 유효합니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | eappapis.h |
라이브러리 | Eappprxy.lib |
DLL | Eappprxy.dll |