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 個以上指定します。
fAuthenticator
認証プロトコルがサーバーまたはクライアントで動作しているかどうかを指定します。 TRUE の値は、認証プロトコルが認証システムとしてサーバー上で動作していることを示します。 FALSE の値は、認証プロトコルが認証されるプロセスとしてクライアントで動作していることを示します。
pwszIdentity
認証を要求するユーザーを識別する Unicode 文字列へのポインター。 この文字列は domain\user または machine\user という形式です。
認証プロトコルで追加のソース (証明書など) からユーザーの ID を派生できる場合は、派生 ID が pwszIdentity の値と一致することを確認する必要があります。
pwszPassword
ユーザーのアカウント パスワードを含む Unicode 文字列へのポインター。 fAuthenticator が FALSE の場合にのみ使用できます。 このメンバーは NULL である可能性があります。
bInitialId
DLL によって送信される初期 EAP パケットの識別子を指定します。 この値は、後続の要求パケットごとに 1 ずつインクリメントされます。
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
認証が成功したことを指定します。 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 が指すデータのサイズをバイト単位で指定します。 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 [デスクトップ アプリのみ] |
Header | raseapif.h |