Utente interattivo

L'utente interattivo è l'utente attualmente connesso al computer in cui è in esecuzione il server COM. Se l'identità è impostata come utente interattivo, tutti i client usano la stessa istanza del server se il server registra la relativa class factory come multiutente. Se nessun utente è connesso, il server non verrà eseguito. Se il server ha un'interfaccia utente grafica (GUI) che il client deve visualizzare, è consigliabile usare l'utente interattivo per l'identità del server. Tuttavia, la scelta di questa identità comporta alcuni rischi per la sicurezza perché il server viene eseguito con l'identità dell'utente connesso senza la conoscenza o il consenso dell'utente connesso. Inoltre, un'applicazione di servizio non può visualizzare un'interfaccia utente. Per altre informazioni, vedere Interactive Services.

Se un server COM è configurato per l'esecuzione come utente interattivo, in un ambiente servizi terminal, il server verrà avviato nella sessione interattiva che corrisponde all'identità utente del client. Tuttavia, l'applicazione client può usare il moniker di sessione per fare riferimento a un oggetto fornito dal server in una sessione che non corrisponde all'identità client. Quando viene usato, l'applicazione client può specificare qualsiasi sessione, nel qual caso il server verrà eseguito come utente proprietario della sessione, non come utente che avvia l'utente. Le autorizzazioni di accesso predefinite in questo scenario non consentono all'utente di avviare i metodi nel server. Tuttavia, rimangono i seguenti rischi per la sicurezza:

  • Se il server COM espone interfacce non controllate da COM, ad esempio porte TCP, named pipe, porte LPC, sezioni di memoria condivisa e così via, è possibile utilizzarle dall'utente di avvio per influenzare il server. Gli oggetti COM configurati per l'esecuzione come utente interattivo devono ridurre la superficie di attacco il più possibile.
  • Gli oggetti COM sono liberi di impostare le proprie autorizzazioni di accesso. Se l'oggetto imposta le autorizzazioni di accesso, nella registrazione appID o chiamando CoInitializeSecurity, per consentire l'accesso dell'utente di avvio, l'utente potrà avviare il server per l'esecuzione come un altro utente, quindi accedere all'oggetto.

Identità dell'applicazione

Avvio utente

Identità del servizio

Utente specificato