Condividi tramite


Rappresentazione client

La rappresentazione è utile in un ambiente di elaborazione distribuito quando i server devono passare richieste client ad altri processi server o al sistema operativo. In questo caso, un server rappresenta il contesto di sicurezza del client. Altri processi server possono quindi gestire la richiesta come se il client originale lo facesse.

server rappresenta un client chiamante quando effettua chiamate successive per conto del client

Ad esempio, un client effettua una richiesta al server A. Se server A deve eseguire una query sul server B per completare la richiesta, il server A rappresenta il contesto di sicurezza client e invia la richiesta al server B per conto del client. Il server B usa il contesto di sicurezza del client originale, anziché l'identità di sicurezza per il server A, per determinare se completare l'attività.

Il server chiama RpcImpersonateClient per sovrascrivere la sicurezza per il thread del server con il contesto di sicurezza client. Al termine dell'attività, il server chiama RpcRevertToSelf o RpcRevertToSelfEx per ripristinare il contesto di sicurezza definito per il thread del server.

Quando si esegue l'associazione, il client può specificare informazioni sulla qualità del servizio sulla sicurezza che specifica come il server può rappresentare il client. Ad esempio, una delle impostazioni consente al client di specificare che il server non è autorizzato a rappresentarlo. Per altre informazioni, vedere Quality of Service.

La funzionalità di chiamare altri server durante la rappresentazione del client originale viene chiamata delega . Quando viene usata la delega, un server che rappresenta un client può chiamare un altro server e può effettuare chiamate di rete con le credenziali del client. Ovvero, dal punto di vista del secondo server, le richieste provenienti dal primo server sono indistinguibili dalle richieste provenienti dal client. Non tutti i provider di sicurezza supportano la delega. Microsoft offre un solo provider di sicurezza che supporta la delega: Kerberos.

La delega può essere una funzionalità pericolosa a causa dei privilegi che il client assegna al server durante una chiamata di procedura remota. Per questo motivo Kerberos consente le chiamate con il livello di rappresentazione della delega solo se è richiesta l'autenticazione reciproca. Gli amministratori di dominio possono limitare i computer a cui vengono effettuate chiamate con livello di rappresentazione della delega per impedire ai client non sospetti di effettuare chiamate ai server che potrebbero abusare delle credenziali.

Esiste un'eccezione alla regola di delega: chiamate che usano ncalrpc. Quando queste chiamate vengono effettuate, il server ottiene i diritti di delega, anche se viene specificato un livello di rappresentazione di rappresentazione. Ovvero, un server può chiamare altri server per conto del client. Questa operazione funziona solo per una sola chiamata remota. Ad esempio, se il client A chiama il server locale LB usando ncalrpc server locale LB può rappresentare e chiamare RB del server remoto. RB sarà in grado di agire per conto del client A, ma solo nel computer remoto in cui è in esecuzione RB. Non può effettuare un'altra chiamata di rete al computer remoto C a meno che LB non ha specificato un livello di rappresentazione del delegato quando ha chiamato RB.

Nota

Il termine rappresentazione rappresenta due significati sovrapposti. Il primo significato della rappresentazione è il processo generale di agire per conto di un cliente. Il secondo significato è il livello di rappresentazione specifico denominato rappresentazione. Il contesto del testo in genere chiarisce il significato.