RPC_BINDING_HANDLE_SECURITY_V1_A struttura (rpcdce.h)

La struttura RPC_BINDING_HANDLE_SECURITY_V1 contiene le opzioni di sicurezza di base con cui creare un handle di associazione RPC.

Sintassi

typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A {
  unsigned long             Version;
  unsigned char             *ServerPrincName;
  unsigned long             AuthnLevel;
  unsigned long             AuthnSvc;
  SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity;
  RPC_SECURITY_QOS          *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_A, *PRPC_BINDING_HANDLE_SECURITY_V1_A;

Members

Version

Versione di questa struttura. Per RPC_BINDING_HANDLE_SECURITY_V1 è necessario impostare su 1.

ServerPrincName

Puntatore a una stringa contenente il nome dell'entità server a cui fa riferimento l'handle di associazione. Il contenuto del nome e della relativa sintassi sono definiti dal servizio di autenticazione in uso.

AuthnLevel

Livello di autenticazione da eseguire nelle chiamate di routine remote effettuate usando questo handle di associazione. Per un elenco dei livelli di autenticazione supportati da RPC, vedere Costanti a livello di autenticazione.

Se AuthnSvc è impostato su RPC_C_AUTHN_NONE, questo membro deve anche essere impostato su RPC_C_AUTHN_NONE.

AuthnSvc

Servizio di autenticazione da usare quando si esegue l'associazione.

Specificare RPC_C_AUTHN_NONE per disattivare l'autenticazione per le chiamate di routine remote effettuate usando l'handle di associazione.

Se viene specificato RPC_C_AUTHN_DEFAULT, la libreria di runtime RPC usa il servizio di autenticazione RPC_C_AUTHN_WINNT per le chiamate di routine remote effettuate usando l'handle di associazione.

Se AuthnLevel è impostato su RPC_C_AUTHN_NONE, questo membro deve essere impostato in modo analogo su RPC_C_AUTHN_NONE.

AuthIdentity

SEC_WINNT_AUTH_IDENTITY struttura che contiene le credenziali di autenticazione e autorizzazione del client appropriate per il servizio di autenticazione e autorizzazione selezionato.

SecurityQos

RPC_SECURITY_QOS struttura che contiene le impostazioni di qualità del servizio di sicurezza per l'handle di associazione.

Nota Per un elenco dei servizi di autenticazione supportati da RPC, vedere Costanti del servizio di autenticazione.
 

Commenti

Se questa struttura non viene passata a RpcBindingCreate , ovvero se il parametro Security di RpcBindingCreate è impostato su NULL , vengono assunti i comportamenti di sicurezza predefiniti seguenti:

  • Per la sequenza di protocollo ncalrpc (RPC locale), RPC userà la sicurezza a livello di trasporto. Ciò significa che RPC userà i meccanismi di sicurezza offerti dal kernel di Windows per fornire la sicurezza e RPC non autenticarà il server poiché si connette usando l'identità del thread corrente. In questo caso, il rilevamento delle identità è statico, il tipo di rappresentazione è impostato su "Impersonate" e il livello di autenticazione è impostato su "Privacy".
  • Per la sequenza di protocolli ncacn_np, RPC userà anche la sicurezza a livello di trasporto. Se la chiamata è remota, RPC usa i meccanismi di sicurezza forniti dal reindirizzamento del file system di Windows e non esiste alcuna autenticazione reciproca. In questo caso, l'identità è l'identità del thread corrente, lo stato di rilevamento delle identità è statico, il tipo di rappresentazione è impostato su "Rappresentazione" e il livello di autenticazione viene determinato dai criteri del computer remoto.

    Se la chiamata è locale, RPC usa i meccanismi di sicurezza forniti dal file system con pipe denominata e non esiste anche l'autenticazione reciproca. In questo caso, l'identità è l'identità del thread corrente o qualsiasi identità stabilita tramite il comando "net use" per il server. Lo stato di rilevamento delle identità è dinamico, il tipo di rappresentazione è impostato su "Impersonate" e il livello di autenticazione è impostato su "Privacy".

  • Per le sequenze di protocolli ncacn_ip_tcp, ncacn_ip_udp e ncacn_http, non viene usata alcuna sicurezza quando la sicurezza è impostata su NULL. Il server non eseguirà la rappresentazione e tutti i dati verranno inviati come testo chiaro. Per garantire la protezione massima per i dati, l'applicazione deve sempre fornire dati di sicurezza.

Nella tabella seguente vengono riepilogate le impostazioni di sicurezza predefinite per le diverse sequenze di protocolli se il parametro Security di RpcBindingCreate è impostato su NULL.

Impostazioni di sicurezza predefinite ncalrpc ncacn_np locale ncacn_np remoto ncacn_ip_tcp, ncacn_ip_udp e ncacn_http
Meccanismo di sicurezza Windows Kernel NPFS Reindirizzamento file system Nessuno
Livello di autenticazione Privacy Privacy Criteri del server dipendenti Nessuno
Autenticazione reciproca? No No No No
Tipo di rappresentazione Impersonate Impersonate Impersonate N/D
Tipo di rilevamento delle identità Statico Dynamic Static N/D
Solo efficace? No N/D N/D
Identità delle chiamate Thread corrente Thread corrente Impostazioni del thread corrente o "net use" N/D
 
Nota Se si crea l'handle di associazione chiamando l'API RpcBindingFromStringBinding , il rilevamento delle identità predefinito per ncalrpc in assenza di impostazioni di sicurezza specifiche è dinamico.

Se si crea un handle di associazione veloce chiamando l'API RpcBindingCreate , il rilevamento delle identità predefinito per ncalrpc in assenza di impostazioni di sicurezza specifiche è statico.

È consigliabile tenere presente le differenze in queste due API se si passa tra di essi nell'applicazione.

Dopo aver creato l'handle di associazione, è possibile usare le API RpcBindingSetAuthInfoInfoEx e RpcBindingSetAuthInfoEx per modificare le impostazioni del set di handle di associazione con questa struttura.

 

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione rpcdce.h (include Rpc.h)

Vedi anche

RPC_BINDING_HANDLE

RpcBindingBindd

RpcBindingCreate