Requisiti di contesto

I requisiti di contesto vengono espressi come combinazione di flag di bit passati alla funzione InitializeSecurityContext (Generale) o AcceptSecurityContext (Generale). Questi flag influiscono sul contesto in diversi modi. Non tutti i flag si applicano a tutti i contesti. Alcuni sono validi solo per il server, altri solo per il client.

Il chiamante usa il parametro fContextReq della chiamata InitializeSecurityContext (Generale) o AcceptSecurityContext (Generale) per specificare un set di flag che indicano le funzionalità necessarie. Quando la funzione restituisce, il parametro pfContextAttr indica gli attributi del contesto stabilito. Il chiamante determina se gli attributi di contesto finali sono accettabili.

I flag richiesti da o restituiti da InitializeSecurityContext (Generale) sono preceduti da ISC. Quelli richiesti da o restituiti da AcceptSecurityContext (Generale) sono preceduti da ASC. I flag passati a una funzione includono REQ, mentre i flag restituiti includono RET. Ad esempio, un flag di richiesta per l'autenticazione reciproca passata a InitializeSecurityContext (Generale) è ISC_REQ_MUTUAL_AUTH. Un server che richiede l'autenticazione reciproca passa ASC_REQ_MUTUAL_AUTH a AcceptSecurityContext (Generale). Se viene ottenuta l'autenticazione reciproca, InitializeSecurityContext (Generale) restituisce ISC_RET_MUTUAL_AUTH e AcceptSecurityContext (Generale) restituisce ASC_RET_MUTUAL_AUTH. Se il chiamante richiede l'autenticazione reciproca, ma il pacchetto di sicurezza indica che non può essere eseguito, il chiamante deve decidere se annullare il contesto o continuare.

La tabella seguente descrive i vari flag dei requisiti di contesto.

Flag Descrizione
DELEGATO
Il server nell'applicazione di trasporto può creare nuovi contesti di sicurezza rappresentando il client che verrà accettato da altri server come contesti del client. Delegato funziona solo se è impostato MUTUAL_AUTH. DELEGATE è attualmente supportato solo da Kerberos. Kerberos delega inoltre solo a un server con il flag TRUSTED_FOR_DELEGATION. Non usare questo flag per la delega vincolata.
MUTUAL_AUTH
Le parti di comunicazione devono autenticare le proprie identità tra loro. Senza MUTUAL_AUTH, il client autentica l'identità nel server. Con MUTUAL_AUTH, il server deve anche autenticarne l'identità nel client.
Quando si usa il pacchetto di sicurezza Schannel , il server imposta la costante ASC_RET_MUTUAL_AUTH solo nell'ultima chiamata a AcceptSecurityContext (Negotiate) dopo il completamento del mapping dei certificati.
REPLAY_DETECT
Il pacchetto di sicurezza rileva i pacchetti riprodotti e notifica al chiamante se un pacchetto è stato riprodotto. L'uso di questo flag implica tutte le condizioni specificate dal flag INTEGRITÀ.
SEQUENCE_DETECT
Il contesto deve essere consentito per rilevare il recapito out-of-order dei pacchetti in un secondo momento tramite le funzioni di supporto dei messaggi. L'uso di questo flag implica tutte le condizioni specificate dal flag INTEGRITÀ.
RISERVATEZZA.
Il contesto può proteggere i dati durante il transito usando le funzioni EncryptMessage (Generale) e DecryptMessage (Generale). Il flag CONFIDENTIALY non funziona se il contesto generato è per l'account Guest.
USE_SESSION_KEY
È necessario negoziare una nuova chiave di sessione .
PROMPT_FOR_CREDS
Se il client è un utente interattivo, il pacchetto di sicurezza deve, se possibile, richiedere all'utente le credenziali appropriate.
USE_SUPPLIED_CREDS
Le informazioni sulle credenziali specifiche del pacchetto sono disponibili nel buffer di input. Il pacchetto di sicurezza può usare queste credenziali per autenticare la connessione.
SAVE_SUPPLIED_CREDS
Le credenziali fornite devono essere memorizzate nella cache con le credenziali supplementari.
ALLOCATE_MEMORY
Il pacchetto di sicurezza deve allocare memoria. Il chiamante deve infine chiamare la funzione FreeContextBuffer per liberare memoria allocata dal pacchetto di sicurezza.
USE_DCE_STYLE
Il chiamante prevede una transazione di autenticazione a tre gambe.
DATAGRAMMA
La semantica del datagram deve essere usata. Per altre informazioni, vedere Contesti di Datagram.
CONNECTION
La semantica di connessione deve essere usata. Per altre informazioni, vedere Contesti orientati alla connessione.
Stream
La semantica di flusso deve essere usata. Per altre informazioni, vedere Contesti di flusso.
EXTENDED_ERROR
I messaggi di risposta di errore per il peer devono essere generati se il contesto ha esito negativo.
INTEGRITÀ
L'integrità del buffer può essere verificata ma non è abilitata alcuna sequenziazione o rilevamento delle risposte.
NO_INTEGRITY
Il requisito INTEGRITÀ viene ignorato.
IDENTIFICARE
Quando un server rappresenta un contesto con questo flag impostato, la rappresentazione restituisce un accesso estremamente limitato. La rappresentazione con il setIDENTIFI viene usata per verificare l'identità del client.