다음을 통해 공유


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개 이상을 지정합니다.

의미
RAS_EAP_FLAG_ROUTER
에서 전화 접속하는 컴퓨터가 라우터인지 RAS 클라이언트인지 여부를 지정합니다. 컴퓨터가 라우터인 경우 이 매개 변수를 설정해야 합니다.
RAS_EAP_FLAG_NON_INTERACTIVE
인증 프로토콜이 사용자 인터페이스를 표시해서는 안 되도록 지정합니다. 인증 프로토콜이 제공된 데이터의 ID를 확인할 수 없는 경우 raserror.h에 정의된 오류 코드 ERROR_INTERACTIVE_MODE 반환해야 합니다.
RAS_EAP_FLAG_LOGON
Winlogon에서 가져온 사용자 데이터를 지정합니다.
RAS_EAP_FLAG_FIRST_LINK
이 연결이 멀티링크 연결의 첫 번째 링크임을 나타냅니다. 자세한 내용은 [다중 링크 및 콜백 Connections](/windows/win32/eap/multilink-and-callback-connections)을 참조하세요.
RAS_EAP_FLAG_GUEST_ACCESS
클라이언트가 게스트 액세스를 원하는지 지정합니다. 이 플래그는 일반적으로 무선 연결의 경우 N번 연속 시도에 대해 인증이 실패하는 경우 무선 클라이언트가 게스트 액세스를 요청하도록 구성된 경우 이 플래그를 전달하여 수행합니다. 게스트 액세스를 허용하려면 RADIUS 서버를 설정해야 합니다.
RAS_EAP_FLAG_8021X_AUTH
이 세션이 무선 컨텍스트에서 실행 중임을 지정합니다.
RAS_EAP_FLAG_RESUME_FROM_HIBERNATE
컴퓨터가 최대 절전 모드에서 다시 시작된 후 첫 번째 호출임을 지정합니다.
RAS_EAP_FLAG_PEAP_UPFRONT
IAS 파이프라인의 시작 부분에서 PEAP를 사용하도록 지정합니다.
RAS_EAP_FLAG_ALTERNATIVE_USER_DB
사용자 데이터베이스가 Active Directory가 아님을 지정합니다.
RAS_EAP_FLAG_PRE_LOGON
사용자 또는 컴퓨터 계정에 대한 자격 증명을 여러 UI 인스턴스를 발생하지 않고 안전한 방식으로 가져오라고 지정합니다.

fAuthenticator

인증 프로토콜이 서버 또는 클라이언트에서 작동하고 있는지 여부를 지정합니다. TRUE 값은 인증 프로토콜이 인증자로 서버에서 작동 중임을 나타냅니다. FALSE 값은 인증 프로토콜이 인증될 프로세스로 클라이언트에서 작동 중임을 나타냅니다.

pwszIdentity

인증을 요청하는 사용자를 식별하는 유니코드 문자열에 대한 포인터입니다. 이 문자열은 domain\user 또는 machine\user 형식입니다.

인증 프로토콜이 추가 원본(예: 인증서)에서 사용자 ID를 파생할 수 있는 경우 파생 ID가 pwszIdentity 값과 일치하는지 확인해야 합니다.

pwszPassword

사용자의 계정 암호를 포함하는 유니코드 문자열에 대한 포인터입니다. fAuthenticatorFALSE인 경우에만 사용할 수 있습니다. 이 멤버는 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가 가리키는 데이터의 크기(바이트)를 지정합니다. pConnectionDataNULL이면 이 멤버는 0입니다.

pUserData

클라이언트 컴퓨터의 인증 프로토콜 RasEapGetIdentity 함수에서 받은 사용자 데이터에 대한 포인터입니다. 인증 프로토콜이 RasEapGetIdentity를 구현하지 않는 경우 이 멤버는 이 사용자에 대한 레지스트리의 데이터를 가리킵니다.

이 데이터는 PPP_EAP_INPUT 구조체가 RasEapBegin에 전달된 경우에만 사용할 수 있습니다. RasEapMakeMessage 호출에서는 사용할 수 없습니다.

인증 프로토콜은 자체 메모리 공간에서 이 데이터의 복사본을 만들어야 합니다. RAS는 PPP_EAP_INPUT 구조체가 전달된 호출에서 반환될 때 이 데이터가 차지하는 메모리를 해제합니다.

RasEapGetIdentity 함수가 구현되지 않았거나 데이터를 반환하지 않고 레지스트리에 있는 사용자에 대한 데이터가 없는 경우 이 멤버는 NULL입니다.

dwSizeOfUserData

pUserData가 가리키는 데이터의 크기(바이트)를 지정합니다. pUserDataNULL이면 이 멤버는 0입니다.

hReserved

이 멤버는 예약되어 있습니다.

guidConnectionId

isVpn

설명

PPP_EAP_INPUT 구조는 RasEapBegin 및 RasEapMakeMessage 호출에서 RAS에서 인증 프로토콜로 전달됩니다.

PPP_EAP_INPUT 구조체의 pwszIdentitypwszPassword 멤버는 RasEapBegin 함수에서 사용자 정보를 가져오는 데 사용됩니다. pwszPassword 멤버는 fAuthenticator 멤버가 FALSE인 경우에만 NULL이 아닌 멤버입니다. 즉, 인증 프로토콜이 클라이언트 컴퓨터에서 실행되고 있습니다.

인증 프로토콜이 Radius 또는 Windows 2000 도메인 인증과 같은 인증 공급자를 사용하는 경우 다음 멤버를 사용하여 인증 공급자와 인터페이스합니다.

pUserAttributesfAuthenticationCompletedwAuthResultCode참고fAuthenticatorTRUE인 경우에만 RAS_AUTH_ATTRIBUTE 구조체의 배열이 전달됩니다. 이 배열에는 포트 식별자 및 로컬 IP 주소와 같은 현재 세션 정보가 포함됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 raseapif.h

추가 정보

EAP 구조체

확장 가능한 인증 프로토콜 참조

RAS_AUTH_ATTRIBUTE

RasEapBegin

RasEapFreeMemory

RasEapGetIdentity

RasEapMakeMessage