PPP_EAP_INPUT 구조체(raseapif.h)
PPP_EAP_INPUT 구조는 RAS 연결 관리자 Service PPP 구현과 EAP 간의 상호 작용에 사용됩니다.
이 구조는 사용자 정보를 제공하고 RADIUS 서버와 같은 인증 공급자를 쉽게 사용할 수 있도록 합니다.
구문
typedef struct _PPP_EAP_INPUT {
DWORD dwSizeInBytes;
DWORD fFlags;
BOOL fAuthenticator;
WCHAR *pwszIdentity;
WCHAR *pwszPassword;
BYTE bInitialId;
RAS_AUTH_ATTRIBUTE *pUserAttributes;
BOOL fAuthenticationComplete;
DWORD dwAuthResultCode;
HANDLE hTokenImpersonateUser;
BOOL fSuccessPacketReceived;
BOOL fDataReceivedFromInteractiveUI;
PBYTE pDataFromInteractiveUI;
DWORD dwSizeOfDataFromInteractiveUI;
PBYTE pConnectionData;
DWORD dwSizeOfConnectionData;
PBYTE pUserData;
DWORD dwSizeOfUserData;
HANDLE hReserved;
GUID guidConnectionId;
BOOL isVpn;
} PPP_EAP_INPUT, *PPPP_EAP_INPUT;
멤버
dwSizeInBytes
PPP_EAP_INPUT 구조체의 크기(바이트 ) 를 지정합니다. 이 멤버의 값을 사용하여 이 구조체의 현재 버전과 이후 버전을 구분할 수 있습니다.
fFlags
인증 프로세스를 한정하는 다음 플래그 중 0개 이상을 지정합니다.
fAuthenticator
인증 프로토콜이 서버 또는 클라이언트에서 작동하고 있는지 여부를 지정합니다. TRUE 값은 인증 프로토콜이 인증자로 서버에서 작동 중임을 나타냅니다. FALSE 값은 인증 프로토콜이 인증될 프로세스로 클라이언트에서 작동 중임을 나타냅니다.
pwszIdentity
인증을 요청하는 사용자를 식별하는 유니코드 문자열에 대한 포인터입니다. 이 문자열은 domain\user 또는 machine\user 형식입니다.
인증 프로토콜이 추가 원본(예: 인증서)에서 사용자 ID를 파생할 수 있는 경우 파생 ID가 pwszIdentity 값과 일치하는지 확인해야 합니다.
pwszPassword
사용자의 계정 암호를 포함하는 유니코드 문자열에 대한 포인터입니다. fAuthenticator가 FALSE인 경우에만 사용할 수 있습니다. 이 멤버는 NULL일 수 있습니다.
bInitialId
DLL에서 보낸 초기 EAP 패킷의 식별자를 지정합니다. 이 값은 각 후속 요청 패킷에 대해 하나씩 증가합니다.
pUserAttributes
RAS_AUTH_ATTRIBUTE 구조체의 배열에 대한 포인터입니다. 배열은 raatMinimum 값이 있는 raaType 멤버가 있는 구조체에 의해 종료됩니다(RAS_AUTH_ATTRIBUTE_TYPE 참조). RasEapBegin 호출 중에 이 배열에는 현재 전화 접속 사용자를 설명하는 특성이 포함되어 있습니다. fAuthenticationComplete 멤버가 TRUE이면 이 배열에 인증 공급자가 반환한 특성이 포함될 수 있습니다.
fAuthenticationComplete
인증 공급자가 사용자를 인증했는지 여부를 나타내는 부울 값을 지정합니다. TRUE 값은 인증 완료를 나타냅니다. dwAuthResultCode 멤버를 확인하여 인증에 성공했는지 확인합니다. 인증 프로토콜이 인증 공급자를 사용하지 않는 경우 이 멤버를 무시합니다.
dwAuthResultCode
인증 공급자의 인증 프로세스 결과를 지정합니다. 인증에 성공하면 NO_ERROR. dwAuthResultCode에 대한 인증 실패 코드는 Winerror.h, Raserror.h 또는 Mprerror.h에서만 제공해야 합니다. 인증 프로토콜이 인증 공급자를 사용하지 않는 경우 이 필드를 무시합니다.
hTokenImpersonateUser
인증을 요청하는 사용자의 가장 토큰을 처리합니다. 이 멤버는 클라이언트 쪽에서만 유효합니다. 가장 토큰에 대한 자세한 내용은 액세스 토큰을 참조하세요.
fSuccessPacketReceived
인증에 성공했음을 지정합니다. 클라이언트가 아직 EAP 성공 패킷을 받지 못하더라도 클라이언트가 NCP(네트워크 제어 프로토콜) 패킷을 수신하는 경우 RAS는 이 멤버를 TRUE 로 설정합니다. FALSE 값은 NCP 패킷이 수신되지 않음을 나타냅니다.
EAP 성공 패킷은 승인되지 않은 패킷입니다. 따라서 서버에서 손실되고 분개하지 않을 수 있습니다. 이 경우 NCP 패킷 수신은 서버가 PPP의 NCP 단계로 이동했기 때문에 인증이 성공했음을 나타냅니다.
클라이언트 쪽에서만 이 멤버를 검사합니다.
fDataReceivedFromInteractiveUI
대화형 사용자 인터페이스에서 정보를 사용할 수 있는지 여부를 지정합니다. 기본값은 FALSE입니다. RAS는 사용자가 인증 프로토콜의 대화형 사용자 인터페이스에서 종료할 때마다 이 멤버를 TRUE 로 설정합니다.
pDataFromInteractiveUI
인증 프로토콜의 대화형 사용자 인터페이스에서 받은 데이터에 대한 포인터입니다. fDataReceivedFromInteractiveUI 멤버가 TRUE이고 대화형 사용자 인터페이스가 실제로 데이터를 반환한 경우 이 포인터는 NULL이 아닙니다. 그렇지 않으면 이 포인터가 NULL입니다.
NULL이 아닌 경우 인증 프로토콜은 자체 메모리 공간에서 데이터 복사본을 만들어야 합니다. RAS는 PPP_EAP_INPUT 구조체가 전달된 호출에서 반환될 때 이 데이터가 차지하는 메모리를 해제합니다. 메모리를 해제하기 위해 RAS는 RasEapFreeMemory 함수를 호출합니다.
dwSizeOfDataFromInteractiveUI
pDataFromInteractiveUI가 가리키는 데이터의 크기(바이트)를 지정합니다. 대화형 사용자 인터페이스에서 데이터가 반환되지 않으면 이 멤버는 0입니다.
pConnectionData
인증 프로토콜의 구성 사용자 인터페이스에서 받은 연결 데이터에 대한 포인터입니다. 이 데이터는 PPP_EAP_INPUT 구조체가 RasEapBegin에 전달된 경우에만 사용할 수 있습니다. RasEapMakeMessage 호출에서는 사용할 수 없습니다.
인증 프로토콜은 자체 메모리 공간에서 이 데이터의 복사본을 만들어야 합니다. RAS는 PPP_EAP_INPUT 구조체가 전달된 호출에서 반환될 때 이 데이터가 차지하는 메모리를 해제합니다. 메모리를 해제하기 위해 RAS는 RasEapFreeMemory 함수를 호출합니다.
인증 프로토콜의 구성 사용자 인터페이스가 데이터를 반환하지 않는 경우 이 멤버는 NULL입니다.
dwSizeOfConnectionData
pConnectionData가 가리키는 데이터의 크기(바이트)를 지정합니다. pConnectionData가 NULL이면 이 멤버는 0입니다.
pUserData
클라이언트 컴퓨터의 인증 프로토콜 RasEapGetIdentity 함수에서 받은 사용자 데이터에 대한 포인터입니다. 인증 프로토콜이 RasEapGetIdentity를 구현하지 않는 경우 이 멤버는 이 사용자에 대한 레지스트리의 데이터를 가리킵니다.
이 데이터는 PPP_EAP_INPUT 구조체가 RasEapBegin에 전달된 경우에만 사용할 수 있습니다. RasEapMakeMessage 호출에서는 사용할 수 없습니다.
인증 프로토콜은 자체 메모리 공간에서 이 데이터의 복사본을 만들어야 합니다. RAS는 PPP_EAP_INPUT 구조체가 전달된 호출에서 반환될 때 이 데이터가 차지하는 메모리를 해제합니다.
RasEapGetIdentity 함수가 구현되지 않았거나 데이터를 반환하지 않고 레지스트리에 있는 사용자에 대한 데이터가 없는 경우 이 멤버는 NULL입니다.
dwSizeOfUserData
pUserData가 가리키는 데이터의 크기(바이트)를 지정합니다. pUserData가 NULL이면 이 멤버는 0입니다.
hReserved
이 멤버는 예약되어 있습니다.
guidConnectionId
isVpn
설명
PPP_EAP_INPUT 구조는 RasEapBegin 및 RasEapMakeMessage 호출에서 RAS에서 인증 프로토콜로 전달됩니다.
PPP_EAP_INPUT 구조체의 pwszIdentity 및 pwszPassword 멤버는 RasEapBegin 함수에서 사용자 정보를 가져오는 데 사용됩니다. pwszPassword 멤버는 fAuthenticator 멤버가 FALSE인 경우에만 NULL이 아닌 멤버입니다. 즉, 인증 프로토콜이 클라이언트 컴퓨터에서 실행되고 있습니다.
인증 프로토콜이 Radius 또는 Windows 2000 도메인 인증과 같은 인증 공급자를 사용하는 경우 다음 멤버를 사용하여 인증 공급자와 인터페이스합니다.
pUserAttributesfAuthenticationCompletedwAuthResultCode참고fAuthenticator 가 TRUE인 경우에만 RAS_AUTH_ATTRIBUTE 구조체의 배열이 전달됩니다. 이 배열에는 포트 식별자 및 로컬 IP 주소와 같은 현재 세션 정보가 포함됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
머리글 | raseapif.h |