Disattivazione della sicurezza dell'attivazione

In genere, l'attivazione usa le impostazioni di sicurezza predefinite. È tuttavia possibile controllare la sicurezza dell'attivazione specificando una struttura COAUTHINFO, membro della struttura CO edizione Standard RVERINFO passata alle funzioni di attivazione. Se il client specifica un livello di autenticazione di RPC_C_AUTHN_LEVEL_NONE nella struttura COAUTHINFO , l'autenticazione non viene tentata. In caso contrario, viene tentata l'attivazione sicura e, se l'autenticazione ha esito negativo, l'attivazione ha esito negativo.

Se il client non specifica una struttura COAUTHINFO esplicita e imposta invece il puntatore su NULL, COM tenterà di autenticare il client. Se non è in grado di autenticare il client, COM controlla il descrittore di sicurezza delle autorizzazioni di avvio per verificare se è presente un DACL NULL o un ACL che consente l'accesso a Tutti. Se il controllo ha esito positivo, viene avviato il server. Pertanto, anche se il client non specifica una struttura COAUTHINFO, l'attivazione non protetta può avvenire quando il server lo consente.

Nota

Per consentire agli utenti di rete non autenticati di eseguire un'applicazione COM, i ruoli dell'applicazione devono includere l'utente anonimo. A partire da Windows Server 2003, per impostazione predefinita, l'utente anonimo non è incluso nel gruppo Everyone.

 

Perché un client vuole disattivare la sicurezza dell'attivazione in modo esplicito anche se l'attivazione non sicura verrà eseguita se il server lo consente? Poiché la disattivazione esplicita della sicurezza dell'attivazione aumenta le prestazioni quando il client non vuole o richiede controlli di sicurezza.

Per disattivare in modo esplicito la sicurezza dell'attivazione, è necessario eseguire le operazioni seguenti:

  • Il client deve specificare un livello di autenticazione di RPC_C_AUTHN_LEVEL_NONE nella struttura COAUTHINFO membro della struttura CO edizione Standard RVERINFO fornita alla funzione di attivazione.
  • Il client deve specificare un livello di rappresentazione di RPC_C_IMP_LEVEL_IMPERSONATE nella struttura COAUTHINFO membro della struttura CO edizione Standard RVERINFO fornita alla funzione di attivazione. Se questo valore non viene passato, si otterrà RPC_S_edizione StandardRVER_UNAVAILABLE.
  • Il server deve specificare Everyone per le autorizzazioni di avvio predefinite. Il modo consigliato per eseguire questa attività consiste nell'usare Dcomcnfg.exe come indicato di seguito:
    1. Eseguire Dcomcnfg.exe.
    2. Nella pagina Applicazioni selezionare l'applicazione che rappresenta il server. Fare clic sul pulsante Proprietà oppure fare doppio clic sull'applicazione selezionata.
    3. Nella pagina delle proprietà Sicurezza fare clic sul pulsante Usa autorizzazioni di avvio personalizzate.
    4. Fare clic sul pulsante Modifica nell'area Autorizzazioni di avvio .
    5. Nella finestra di dialogo Autorizzazioni valore registro fare clic sul pulsante Aggiungi.
    6. Selezionare la voce tutti nella casella di riepilogo.
    7. Nella casella di riepilogo Tipo di accesso scegliere Consenti avvio.
    8. Fare clic sul pulsante OK .

Nota

In Windows Server 2003, la funzionalità di autenticazione per l'applicazione di sistema COM+ include il valore EOAC_DISABLE_AAA. Questo valore, che disabilita le attivazioni come attivatore (AAA), viene usato nella chiamata CoInitializeSecurity all'avvio dell'applicazione di sistema. L'impostazione della funzionalità di autenticazione su EOAC_DISABLE_AAA consente a un'applicazione eseguita con un account con privilegi (ad esempio LocalSystem) di impedire l'uso dell'identità per avviare componenti non attendibili.

 

Disattivazione della sicurezza delle chiamate