PPP_EAP_INPUT 構造体 (raseapif.h)

PPP_EAP_INPUT構造は、RAS 接続マネージャー サービス 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
この接続がマルチリンク接続の最初のリンクであることを示します。 詳細については、「[Multilink and Callback 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

認証を要求するユーザーを識別する Unicode 文字列へのポインター。 この文字列は domain\user または machine\user という形式です。

認証プロトコルで追加のソース (証明書など) からユーザーの ID を派生できる場合は、派生 ID が pwszIdentity の値と一致することを確認する必要があります。

pwszPassword

ユーザーのアカウント パスワードを含む Unicode 文字列へのポインター。 fAuthenticatorFALSE の場合にのみ使用できます。 このメンバーは NULL である可能性があります。

bInitialId

DLL によって送信される初期 EAP パケットの識別子を指定します。 この値は、後続の要求パケットごとに 1 ずつインクリメントされます。

pUserAttributes

RAS_AUTH_ATTRIBUTE構造体の配列へのポインター。 配列は、raatMinimum の値を持つ raaType メンバーを持つ構造体によって終了します (RAS_AUTH_ATTRIBUTE_TYPE参照)。 RasEapBegin 呼び出し中に、この配列には、現在ダイヤルインしているユーザーを記述する属性が含まれています。 fAuthenticationComplete メンバーが TRUE の場合、この配列には認証プロバイダーによって返される属性が含まれる場合があります。

fAuthenticationComplete

認証プロバイダーがユーザーを認証したかどうかを示すブール値を指定します。 TRUE の値は、認証の完了を示します。 dwAuthResultCode メンバーを調べて、認証が成功したかどうかを確認します。 認証プロトコルが認証プロバイダーを使用していない場合は、このメンバーを無視します。

dwAuthResultCode

認証プロバイダーの認証プロセスの結果を指定します。 認証が成功すると 、NO_ERRORdwAuthResultCode の認証エラー コードは、Winerror.h、Raserror.h、または Mprerror.h からのみ取得する必要があります。 認証プロトコルで認証プロバイダーが使用されていない場合は、このフィールドを無視します。

hTokenImpersonateUser

認証を要求するユーザーの偽装トークンを処理します。 このメンバーは、クライアント側でのみ有効です。 偽装トークンの詳細については、「 アクセス トークン」を参照してください。

fSuccessPacketReceived

認証が成功したことを指定します。 RAS は、クライアントがまだ EAP 成功パケットを受信していない場合でも、クライアントがネットワーク制御プロトコル (NCP) パケットを受信した場合に、このメンバーを TRUE に 設定します。 FALSE の値は、NCP パケットが受信されていないことを示します。

EAP 成功パケットは、受信確認されていないパケットです。 そのため、サーバーによって失われ、再び送信されないことがあります。 この状況では、サーバーが PPP の NCP フェーズに移行しているため、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構造体は、RasEapBeginRasEapMakeMessage の呼び出しで、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 [デスクトップ アプリのみ]
Header raseapif.h

こちらもご覧ください

EAP 構造体

拡張認証プロトコル リファレンス

RAS_AUTH_ATTRIBUTE

RasEapBegin

RasEapFreeMemory

RasEapGetIdentity

RasEapMakeMessage