EDITAR:
Consegui reduzir o problema. Aparentemente, isso não é um problema com o Surface, mas com o Windows 8.1 (provavelmente 8 também) e com 10. Eu não o peguei no início, pois usei um laptop e um usuário sem domínio para testar primeiro o Windows 8.1.
Quando uso uma conta de usuário local, conectar-me ao Wi-Fi RADIUS funciona sem problemas. Assim que eu tentar isso com uma conta de usuário de domínio (eu tentei um com e um sem permissões de administrador local), ele não irá se conectar. Por favor, note que eu estou falando sobre um domínio e não AD, pois ainda estamos usando o Samba 3.
Original:
Estamos executando uma rede wifi de raio usando um servidor FreeRADIUS (PEAP com MSChapv2). Ele funciona perfeitamente em todas as máquinas (testado no Windows 7 e 8.1, Android 4.3, Arch Linux), exceto em todos os nossos Surface Pro 3. As máquinas Windows usam exatamente as mesmas configurações que a configuração Wi-Fi é automatizada usando um script PowerShell. Eu também tentei configurá-lo manualmente com diferentes opções muitas vezes.
Estamos usando um certificado assinado pela autoridade de certificação personalizada de nossa empresa para o servidor FreeRADIUS. Verifiquei se a autoridade de certificação está instalada corretamente no Windows e também tentei uma conexão sem a verificação do certificado.
Isso é o que aparece no arquivo de log FreeRADIUS:
Wed Jul 15 10:32:52 2015 : Auth: Login OK: [someuser] (from client stg-wlan-core port 0 via TLS tunnel)
Wed Jul 15 10:32:55 2015 : Auth: Login incorrect: [someuser] (from client stg-wlan-core port 217 cli C0-33-5E-33-10-8F)
Isso é o que aparece se você usar a depuração no FreeRADIUS:
[eap] EAP packet type response id 221 length 43
[eap] Continuing tunnel setup.
++[eap] returns ok
Found Auth-Type = EAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group authenticate {...}
[eap] Request found, released from the list
[eap] EAP/peap
[eap] processing type peap
[peap] processing EAP-TLS
[peap] eaptls_verify returned 7
[peap] Done initial handshake
[peap] eaptls_process returned 7
[peap] EAPTLS_OK
[peap] Session established. Decoding tunneled attributes.
[peap] Peap state send tlv success
[peap] Received EAP-TLV response.
[peap] Client rejected our response. The password is probably incorrect.
[peap] We sent a success, but received something weird in return.
[eap] Handler failed in EAP/peap
[eap] Failed in EAP select
++[eap] returns invalid
Failed to authenticate the user.
Login incorrect: [someuser] (from client stg-wlan-core port 112 cli 50-1A-C5-F4-F6-87)
Using Post-Auth-Type Reject
Ele diz algo sobre uma senha incorreta. Não tenho certeza de qual senha ela está falando, pois tenho certeza de que a conta do usuário existe e a senha está correta.
Rastreamento da superfície:
[500] 07-15 10:19:48:898: RasEapCreateConnectionProperties, eap type id = 26
[500] 07-15 10:19:48:899: CopyXmlDoc returned: 0x0
[500] 07-15 10:19:48:899: ReadConnectionData
[500] 07-15 10:19:48:900: Setting the defaults to use win-logon
[500] 07-15 10:19:48:900: Use Winlogon credentials is set to No
[500] 07-15 10:19:48:900: Successfully generated blob for MSChapV2 Connection Properties
[500] 07-15 10:19:49:831: RasEapCreateConnectionProperties, eap type id = 26
[500] 07-15 10:19:49:831: CopyXmlDoc returned: 0x0
[500] 07-15 10:19:49:832: ReadConnectionData
[500] 07-15 10:19:49:833: Setting the defaults to use win-logon
[500] 07-15 10:19:49:833: Use Winlogon credentials is set to No
[500] 07-15 10:19:49:833: Successfully generated blob for MSChapV2 Connection Properties
[500] 07-15 10:19:49:843: RasEapCreateConnectionProperties, eap type id = 26
[500] 07-15 10:19:49:843: CopyXmlDoc returned: 0x0
[500] 07-15 10:19:49:844: ReadConnectionData
[500] 07-15 10:19:49:845: Setting the defaults to use win-logon
[500] 07-15 10:19:49:845: Use Winlogon credentials is set to No
[500] 07-15 10:19:49:845: Successfully generated blob for MSChapV2 Connection Properties
[500] 07-15 10:19:50:109: InitLSA.
[500] 07-15 10:19:50:109: InitLSA: returning 0x0
[500] 07-15 10:19:50:109: ChapInit: exit: fInitialize=0x1, g_dwRefCount = 0x1, g_hLsa = 0x1147e5d0
[500] 07-15 10:19:50:109: EapMSCHAPv2Initialize Exit: fInitizlize = 1, dwRefCount = 0x1,
[500] 07-15 10:19:50:109: EapMSCHAPv2Initialize: fInitizlize = 0, dwRefCount = 0x1,
[500] 07-15 10:19:50:109: ChapInit: fInitialize=0x0, g_dwRefCount = 0x1, g_hLsa = 0x1147e5d0
[500] 07-15 10:19:50:135: RasEapGetIdentity
[500] 07-15 10:19:50:135: ReadUserData
[500] 07-15 10:19:50:135: NULL user blob is passed, size: 0
[500] 07-15 10:19:50:135: ReadConnectionData
A única razão pela qual consigo pensar é que é um problema com o adaptador wifi ou seu driver. Se você tiver alguma ideia ou precisar de mais informações, informe-nos.