Condividi tramite


struttura SCH_CREDENTIALS (schannel.h)

La struttura SCH_CREDENTIALS contiene informazioni di inizializzazione per le credenziali Schannel.

Sintassi

typedef struct _SCH_CREDENTIALS {
  DWORD           dwVersion;
  DWORD           dwCredFormat;
  DWORD           cCreds;
  PCCERT_CONTEXT  *paCred;
  HCERTSTORE      hRootStore;
  DWORD           cMappers;
  _HMAPPER        **aphMappers;
  struct          _HMAPPER;
  DWORD           dwSessionLifespan;
  DWORD           dwFlags;
  DWORD           cTlsParameters;
  PTLS_PARAMETERS pTlsParameters;
} SCH_CREDENTIALS, *PSCH_CREDENTIALS;

Membri

dwVersion

Impostare su SCH_CREDENTIALS_VERSION.

dwCredFormat

Schannel in modalità kernel supporta i valori seguenti.

Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP e Windows XP/2000: Questo flag non è supportato e deve essere zero.

Valore Significato
SCH_CRED_FORMAT_CERT_HASH
0x00000001
Il membro paCred della struttura SCH_CREDENTIALS passata deve essere un puntatore a una matrice di byte di lunghezza 20 contenente l'identificazione personale del certificato. Si presuppone che il certificato si trova nell'archivio "MY" del computer locale.
SCH_CRED_FORMAT_CERT_HASH_STORE
0x00000002
Il membro paCred della struttura SCH_CREDENTIALS punta a una struttura SCHANNEL_CERT_HASH_STORE.

cCreds

Numero di strutture nella matrice paCred.

paCred

Matrice di puntatori alle strutture di CERT_CONTEXT. Ogni puntatore specifica un certificato che contiene una chiave privata da usare per l'autenticazione dell'applicazione.

Le applicazioni client spesso passano un elenco vuoto e dipendono da Schannel per trovare un certificato appropriato o creare un certificato in un secondo momento, se necessario.

hRootStore

Opzionale. Valido solo per le applicazioni server. Gestire in un archivio certificati che contiene certificati radice autofirmati per le autorità di certificazione attendibili dall'applicazione. Questo membro viene usato solo dalle applicazioni lato server che richiedono l'autenticazione client.

cMappers

Riservato.

aphMappers

Riservato.

_HMAPPER

dwSessionLifespan

Numero di millisecondi in cui Schannel mantiene la sessione nella cache della sessione. Dopo che è trascorso questo periodo di tempo, tutte le nuove connessioni tra il client e il server richiedono una nuova sessione Schannel. Impostare il valore di questo membro su zero per usare il valore predefinito di 360000000 millisecondi (dieci ore).

dwFlags

Contiene flag di bit che controllano il comportamento di Schannel. Questo membro può essere zero o una combinazione dei valori seguenti.

Valore Significato
SCH_CRED_AUTO_CRED_VALIDATION
0x00000020
Solo client.

Questo flag è l'opposto di SCH_CRED_MANUAL_CRED_VALIDATION e fa parte del comportamento predefinito di Schannel.

SCH_CRED_CACHE_ONLY_URL_RETRIEVAL_ON_CREATE
0x00020000
Indicare a Schannel di passare il flag di CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL alla funzione CertGetCertificateChain durante la convalida delle credenziali specificate durante una chiamata a AcquireCredentialsHandle (Schannel).

Windows Server 2003 e Windows XP/2000: Questo flag non è supportato.

SCH_CRED_DISABLE_RECONNECTS
0x00000080
Solo server.

Se questo flag è impostato, gli handshake completi eseguiti con questa credenziale non consentiranno la riconnessione. Viene creata una voce della cache, in modo che la sessione possa essere riattivata in un secondo momento usando la funzione ApplyControlToken .

SCH_CRED_IGNORE_NO_REVOCATION_CHECK
0x00000800
Quando si verificano i certificati revocati, ignorare CRYPT_E_NO_REVOCATION_CHECK errori. Per altre restrizioni, vedere Osservazioni.
SCH_CRED_IGNORE_REVOCATION_OFFLINE
0x00001000
Quando si controllano i certificati revocati, ignorare CRYPT_E_REVOCATION_OFFLINE errori. Per altre restrizioni, vedere Osservazioni.
SCH_CRED_MANUAL_CRED_VALIDATION
0x00000008
Solo client.

Impedire a Schannel di convalidare la catena di certificati server ricevuta.

SCH_CRED_NO_DEFAULT_CREDS
0x00000010
Solo client.

Impedire a Schannel di tentare di fornire automaticamente una catena di certificati per l'autenticazione client.

SCH_CRED_NO_SERVERNAME_CHECK
0x00000004
Solo client.

Impedire a Schannel di confrontare il nome di destinazione fornito con i nomi dei soggetti nei certificati del server .

SCH_CRED_NO_SYSTEM_MAPPER
0x00000002
Solo server.

Impedire a Schannel di usare le funzioni di mapping dei certificati di sistema predefinite per eseguire il mapping dei certificati client a un account utente.

SCH_CRED_REVOCATION_CHECK_CHAIN
0x00000200
Quando si convalida una catena di certificati, controllare tutti i certificati per la revoca. Per altre restrizioni, vedere Osservazioni.
SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
0x00000400
Quando si convalida una catena di certificati, non controllare la radice per la revoca. Per altre restrizioni, vedere Osservazioni.
SCH_CRED_REVOCATION_CHECK_END_CERT
0x00000100
Quando si convalida una catena di certificati, controllare solo l'ultimo certificato per la revoca. Per altre restrizioni, vedere Osservazioni.
SCH_CRED_USE_DEFAULT_CREDS
0x00000040
Solo client.

Schannel tenta di fornire automaticamente una catena di certificati per l'autenticazione client. Questo valore è l'opposto di SCH_CRED_NO_DEFAULT_CREDS.

SCH_SEND_AUX_RECORD
0x00200000
Indicare a Schannel di suddividere i dati da crittografare in due record separati per contrastare i punti deboli presenti nel protocollo SSL/TLS quando usato con la suite di crittografia simmetrica usando la modalità di concatenamento a blocchi crittografati. Per altre informazioni, vedere vulnerabilità in SSL/TLS potrebbe consentire la divulgazione di informazioni.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP e Windows XP/2000: Questo flag non è supportato.

SCH_SEND_ROOT_CERT
0x00040000
Schannel invia il certificato radice come parte del messaggio del certificato.
Nota Il certificato radice inviato in rete dal client o dal server Schannel non deve essere considerato attendibile. Deve essere convalidata in base a un hash attendibile del certificato radice.
 
SCH_USE_STRONG_CRYPTO
0x00400000
Indica a Schannel di disabilitare algoritmi di crittografia deboli noti, suite di crittografia e versioni del protocollo SSL/TLS che potrebbero essere altrimenti abilitate per una migliore interoperabilità.
SCH_USE_PRESHAREDKEY_ONLY
0x00800000
Indica a Schannel di selezionare solo pacchetti di crittografia PSK e disabilitare tutte le altre suite di crittografia.

cTlsParameters

Numero di voci nella matrice pTlsParameters.

Si tratta di un errore per specificare più di SCH_CRED_MAX_SUPPORTED_PARAMETERS.

pTlsParameters

Matrice di puntatori alle strutture TLS_PARAMETERS che indicano le restrizioni dei parametri TLS, se presenti. Se non vengono specificate restrizioni, vengono usate le impostazioni predefinite del sistema. È consigliabile che le applicazioni si basano sulle impostazioni predefinite del sistema.

È un errore includere più di una struttura TLS_PARAMETERS con cAlpnIds == 0 e rgstrPartizioninIds == NULL.

Osservazioni

Per usare la struttura di SCH_CREDENTIALS, definire SCHANNEL_USE_BLACKLISTS insieme a UNICODE_STRING e PUNICODE_STRING. In alternativa, includere Ntdef.h, SubAuth.h o Winternl.h.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10 1809 [solo app desktop]
server minimo supportato Windows Server 1809 [solo app desktop]
intestazione schannel.h

Vedere anche

CRYPTO_SETTINGS

TLS_PARAMETERS