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 del server possono quindi gestire la richiesta come se il client originale lo effettuasse.

server rappresenta un client chiamante quando si effettuano chiamate successive per conto del client

Ad esempio, un client effettua una richiesta al server A. Se il server A deve eseguire una query sul server B per completare la richiesta, il server A rappresenta il contesto di sicurezza client e effettua 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 Qualità del servizio.

La possibilità di chiamare altri server durante la rappresentazione del client originale è denominata 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 fornisce un solo provider di sicurezza che supporta la delega: Kerberos.

La delega può essere una funzionalità pericolosa a causa dei privilegi che il client concede al server durante una chiamata di procedura remota. Per questo motivo Kerberos consente le chiamate con il livello di rappresentazione della delega solo se viene 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 insospettabili di effettuare chiamate ai server che potrebbero abusare delle proprie 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. Ovvero, un server può chiamare altri server per conto del client. Questa operazione funziona solo per una chiamata remota. Ad esempio, se il client A chiama il server locale LB usando il server locale ncalrpc 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.