Condividi tramite


Come valutare le autorizzazioni valide per le risorse nei computer remoti

Sintomi e cause

Quando si controllano le autorizzazioni valide di un utente per una risorsa remota, a volte vengono visualizzati risultati o errori non corretti.

I dettagli di questo comportamento e la relativa risoluzione dipendono dal modo in cui si ottengono le autorizzazioni valide, come indicato di seguito:

  • Se si usa un'applicazione Windows esistente, è possibile usare la scheda Accesso effettivo della finestra di dialogo Sicurezza avanzata per la risorsa.

  • Se si usa l'API Authz.dll (Authorization Manager Runtime Engine) (API) del motore di runtime di Gestione autorizzazioni, è possibile chiamare le funzioni seguenti:

    • AuthzInitializeContextFromSid
    • AuthzInitializeRemoteResourceManager
    • AuthzAccessCheck
    • AuthzCachedAccessCheck

Windows Server 2012 R2 ha introdotto modifiche al modo in cui Windows valuta le autorizzazioni valide, soprattutto per le risorse remote.

Uso della scheda Accesso effettivo

Se si usa la scheda Accesso effettivo, la scheda potrebbe visualizzare errori o avvisi.

Errore di autorizzazioni effettive: non si dispone dell'autorizzazione per valutare i diritti di accesso effettivi per la risorsa remota.

Errore di autorizzazione efficace: le informazioni di sicurezza della condivisione non sono disponibili e non sono state valutate per l'accesso effettivo.

Per altre informazioni su come risolvere questi problemi, vedere Risorse remote che includono SMB.

Uso delle chiamate API Authz

È possibile osservare questo problema quando si usano le chiamate API se una delle condizioni seguenti è vera:

  • L'applicazione effettua le chiamate in remoto dal server di risorse.
  • L'account utente che esegue l'applicazione non si trova nello stesso dominio della risorsa.

In questo caso, alcune autorizzazioni Consenti potrebbero non essere presenti o alcune autorizzazioni Nega potrebbero essere visualizzate come autorizzazioni GrantedAccessMask .

Ecco uno scenario di esempio:

  • Esiste un gruppo globale nel dominio A e un gruppo locale di dominio nel dominio B. La risorsa si trova nel dominio B.
  • Il gruppo locale di dominio ha accesso completo alla risorsa. Questo accesso include le autorizzazioni di eliminazione .
  • Il gruppo globale è membro del gruppo locale di dominio. Il gruppo globale non ha accesso diretto alla risorsa.
  • Usando un account utente a livello di amministratore e un computer nel dominio A, è possibile recuperare in remoto le autorizzazioni per le risorse di un utente membro del gruppo globale.

Nei risultati recuperati, l'utente non sembra avere autorizzazioni di eliminazione per la risorsa. Tuttavia, l'utente ha effettivamente autorizzazioni di eliminazione .

Authz.dll usa un servizio Kerberos per una transazione Utente (Kerberos S4U) per ottenere un token per l'utente. Tuttavia, questo token è relativo alla stazione amministrativa o alla stazione in cui viene eseguita l'applicazione server. Il token non è relativo al server di risorse. Di conseguenza, il token non include i gruppi locali di dominio del computer che ospita la risorsa se la risorsa soddisfa una delle condizioni seguenti:

  • La risorsa si trova in un dominio diverso rispetto alla stazione amministrativa o all'utente amministratore.
  • La risorsa dispone di autorizzazioni assegnate ai gruppi predefiniti. I gruppi predefiniti possono essere usati in modo improprio.

Ottenere autorizzazioni valide usando le chiamate API Authz

Per risolvere questo problema, scegliere una delle alternative seguenti:

  • Usare la funzione AuthzInitializeRemoteResourceManager per includere un handle alla risorsa remota quando si chiama la funzione AuthzInitializeContextFromSid .

  • Contesto Authz locale:

    • Se la configurazione abilita Kerberos S4U, assicurarsi che l'account utente amministratore si trova nello stesso dominio della risorsa.
    • Se si controllano le autorizzazioni valide per un oggetto Active Directory, eseguire gli strumenti di amministrazione in un controller di dominio che dispone di una copia completa dell'oggetto (contesto di denominazione della configurazione,NC), controller di rete del dominio o controller di rete dell'applicazione.
    • Se si controllano le autorizzazioni valide per una risorsa cluster, è possibile eseguire gli strumenti di amministrazione da qualsiasi nodo del cluster. In alternativa, eseguire gli strumenti di amministrazione dal server di risorse.
  • Disattiva Kerberos S4U: Cambiare il motore Authz dall'approccio Kerberos S4U ad Active Directory (AD) Lightweight Directory Access Protocol (LDAP) e alle query sam (Server Security Account Manager) autonomo per raccogliere l'elenco di gruppi dell'utente.

    Importante

    Seguire attentamente i passaggi in questa sezione. Se le modifiche al Registro di sistema vengono apportate in modo non corretto, possono verificarsi problemi gravi. Prima di modificarlo, eseguire il backup del Registro di sistema in caso di problemi.

    A tale scopo, seguire questa procedura per configurare la voce del Registro di sistema UseGroupRecursion :

    1. Aprire l'Editor del Registro di sistema e quindi passare alla sottochiave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Authz .
    2. Selezionare Modifica>nuovo>valore DWORD.
    3. Immettere UseGroupRecursion.
    4. Fare clic con il pulsante destro del mouse su UseGroupRecursion e quindi scegliere Modifica.
    5. Immettere 1 e quindi selezionare OK.

      Note

      Se il valore è 0 (valore predefinito), Authz usa il metodo Kerberos. Se il valore è 1, Authz usa le query SAM server autonome e LDAP di ACTIVE Directory.

    6. Chiudere l'Editor del Registro di sistema.

    Note

    • UseGroupRecursion non è efficace se si usa il flag AUTHZ_REQUIRE_S4U_LOGON quando si crea il contesto Authz.
    • L'utente dell'applicazione deve disporre delle autorizzazioni di lettura per l'attributo TokenGroups e per i gruppi locali di dominio del dominio delle risorse.
    • L'applicazione deve essere in grado di usare il protocollo RPC SAM quando chiama le API. Ciò è dovuto al fatto che i gruppi locali del server vengono recuperati usando le API SAM. È possibile impostare un elenco di controllo di accesso (ACL) nell'interfaccia RPC SAM usando i criteri di sicurezza RestrictRemoteSAM .

Ottenere autorizzazioni valide per le risorse remote, incluse le condivisioni SMB

Windows Server 2012 R2 ha aggiunto un'interfaccia RPC Authz al processo LSASS. Questa interfaccia è gestita dal servizio Netlogon. Con l'aiuto di questa interfaccia RPC, è possibile valutare le autorizzazioni valide relative al server di risorse effettivo.

Questo aggiornamento ha anche aggiunto la possibilità di valutare le autorizzazioni impostate sia a livello di file system che di condivisione. Quando si usa questa funzionalità, si noterà quale parte del controllo di accesso limita l'accesso.

Informazioni che forniscono informazioni dettagliate sui fattori che limitano l'accesso di un utente a una risorsa.

Quando si valuta l'accesso effettivo alle risorse, considerare i fattori seguenti:

  • Autorizzazione nel server remoto
    • Per valutare le autorizzazioni valide per una risorsa in un server remoto, un utente deve appartenere al gruppo operatori di assistenza Controllo di accesso. Questo gruppo predefinito semplifica la delega dell'accesso alle persone che non hanno accesso amministrativo ai server di risorse. In caso contrario, gli utenti devono avere accesso amministrativo sia al server remoto che alla condivisione o ad altra risorsa.
  • Accesso alle informazioni di condivisione SMB
    • Autorizzazioni per recuperare il descrittore di sicurezza per la condivisione
      L'utente potrebbe anche avere accesso amministrativo ai descrittori di sicurezza della condivisione SMB. Per impostazione predefinita, molte versioni del sistema operativo sul mercato non concedono tale accesso. Per ricevere un aggiornamento che fornisce questa funzionalità, contattare supporto tecnico Microsoft. La soluzione per le versioni del sistema operativo sul mercato non è disponibile pubblicamente.

    • Modalità di accesso al server (se la risorsa usa il controllo di accesso a livello di condivisione)
      Per valutare le autorizzazioni valide per una risorsa in un server remoto che usa il controllo di accesso a livello di condivisione, è necessario usare un percorso di condivisione UNC per accedere alla risorsa. Non provare a usare una lettera di unità mappata per accedere alla risorsa. Ad esempio, non usare un percorso simile al percorso seguente:

      f:\year2022\quarter2\
      

      Nota: in questo esempio viene f: eseguito il mapping a \\fileserver01.contoso.com\finance-data.

      Usare invece un percorso simile al percorso seguente:

      \\fileserver01.contoso.com\finance-data\year2022\quarter2\
      

Se non si usano autorizzazioni di condivisione per limitare gli utenti, è possibile ignorare in modo sicuro l'avviso delle autorizzazioni di condivisione.