共用方式為


驗證通訊協定初始化

EAP 安全聯機會在用戶端與伺服器之間初始化,其方式與 RAS 和無線 (802.1X) 客戶端類似。

客戶

當客戶端嘗試建立連線時,驗證服務會為使用者取得 身分識別資訊。 如果此驗證通訊協定的登入 RAS_EAP_VALUENAME_INVOKE_NAMEDLG 值,且此值設定為零,則驗證服務會呼叫 RasEapGetIdentity。 此函式通常會顯示使用者介面,可讓身分識別資訊是驗證通訊協定特定的類型;例如,憑證或數值標識符。 如果 RAS_EAP_VALUENAME_INVOKE_NAMEDLG 不存在,或設定為一個,驗證服務會顯示標準系統用戶名稱對話方塊。

驗證服務取得使用者的身分識別信息之後,它會呼叫驗證通訊協議的實作 RasEapBegin。 此呼叫可讓驗證通訊協定配置和初始化工作緩衝區,服務會在後續呼叫時傳遞至 RasEapMakeMessage,並 RasEapEnd。 工作緩衝區對服務不透明,且永遠不會存取工作緩衝區的內容。 如果驗證通訊協定為每個 EAP 會話建立不同的工作緩衝區,則工作緩衝區是會話和線程安全。 因為驗證通訊協定會配置工作緩衝區的記憶體,因此驗證通訊協定也應該使用 RasEapFreeMemory 函式釋放此記憶體。

在呼叫 RasEapBegin時,服務也會傳遞 PPP_EAP_INPUT 結構,其中包含聯機組態資訊的指標,以及使用者的身分識別資訊。 服務一律會傳入 pszIdentityPPP_EAP_INPUT成員的值。 不過,pszPassword 成員 PPP_EAP_INPUT 可能會 NULL

PPP_EAP_INPUT 結構中,fAuthenticator 成員會指出要叫用驗證通訊協定以驗證(用戶端上)或驗證器(在伺服器上)。

伺服器

在伺服器上,bInitialID 成員 PPP_EAP_INPUT 指定伺服器用於第一個 EAP 封包的標識符。 伺服器會針對後續封包遞增此標識碼。

此外,在伺服器上,pUserAttributes 指標 PPP_EAP_INPUT 指向 RAS_AUTH_ATTRIBUTE_TYPE 類型的屬性陣列。 這些是從用戶端取得之用戶的屬性。

如果 RasEapBegin 呼叫傳回 NO_ERROR以外的任何值,會話就會中斷連線。 傳回的錯誤會記錄在伺服器上,或向用戶顯示(在用戶端上)。