Come impostare gli ACL tramite il file Manifest.xml in IIS

Esistono molti metodi che è possibile utilizzare per configurare gli elenchi di controllo di accesso (ACL). Uno di questi metodi è attraverso l’uso dello strumento da riga di comando come Icacls.exe. Gli hoster PHP utilizzano comunemente la riga di comando per impostare gli ACL. Tuttavia, è anche possibile impostare l’elenco di controllo degli accessi con l’uso del file Manifest.xml. Questi sono i sistemi che vengono comunemente utilizzati durante l’installazione di un’app con l’uso del Web Deployment Tool (WDT) o tramite l’utilizzo del Microsoft Web Platform Installer (Web PI).


Il WDT è preconfigurato per installare tutti i file e le directory senza apportare alcuna modifica a qualsiasi tipo di autorizzazione già esistente. Nella maggior parte dei casi, implica che l’app possiede solo un diritto di lettura in ingresso ai file e alle directory installati. Se la tua app richiede di essere scritta in un file o in una directory, puoi specificare i file o le directory particolari con un comando setAcl nel file Manifest.xml. I componenti setAclResourceType specificano se il percorso sta per un file o una directory.

XMLCopy

Per certificare che si fornisce l’elenco di controllo degli accessi alla directory corretta, è necessario implementare anche un vincolo nascosto in relazione all’AppPath in cui è configurato e impostato.

XMLCopy

Se non si configura ACL su un file o una directory specifici, l’ACL potrebbe essere configurato per consentire l’accesso in lettura al file o alla directory per impostazione predefinita. Gli ACL sono precisi, quindi una concessione di accesso non offre essenzialmente un accesso in lettura. Se devi scrivere su un file o una directory, dovresti incorporare “leggi, scrivi”. Quando devi elencare i file in una directory, dovresti incorporare “ListDirectory”. Tieni presente che l’accesso in scrittura non implica una modifica corretta. Se è necessario modificare i file non appena vengono scritti sul disco, è necessario configurare chiaramente l’accesso alla modifica.

Esistono alcune autorizzazioni che sono fusioni di altre autorizzazioni; ad esempio, l’autorizzazione “Modifica” dà alla persona diritto a “Leggi”, “Scrivi”, “Esegui” e “Elimina”.

Per offrire l’accesso in lettura, esecuzione e scrittura a MyApp directory della struttura dei file per il client Test, incorporare la riga seguente nel file Manifest.xml:

XMLCopy

Per configurare gli elenchi di controllo di accesso sul thread MyApp / Upload per consentire ai clienti anonimi di caricare contenuti, integra la riga seguente nel tuo manifest.xml file:

XMLCopy

Tenere presente che anonymousAuthenticationUser è un token specifico che viene comunemente risolto nella configurazione dell’ID di autenticazione anonima. Per offrire l’accesso in lettura a MyAppData cartella per l’identità del pool di app, integrare la riga seguente in manifest.xml file:

XMLCopy

Tenere presente che setAclUser non viene utilizzato qui. Il valore preimpostato per questo è Identità pool di applicazioni; pertanto, potresti essere in grado di tralasciare quella linea.

Tenere presente che è considerato un enorme rischio per la sicurezza offrire l’accesso in “Scrittura” o “Modifica” all’intero albero dell’app tramite l’applicazione dell’ACL alla radice dell’applicazione. Le ACL dovrebbero essere molto restrittive e di natura granulare ma non limitare in alcun modo la funzionalità delle app.

Se sei a conoscenza delle autorizzazioni UNIX o Linux, i privilegi qui sono correlati alle autorizzazioni “Proprietario” su tali piattaforme. Sebbene le autorizzazioni di gruppo e globali possano essere configurate attraverso numerosi ACL esterni al WDT, le uniche autorizzazioni configurate in questa istanza sono la categoria di autorizzazioni “Proprietario”. La tabella seguente illustra le controparti del sistema operativo Windows di una varietà di autorizzazioni mascherate per bit di Linux:

Linux

Esempio dei diritti dell’utente e delle descrizioni

fileSystemRights Enum

  • Spazio dei nomi: System.Security.AccessControl
  • Assiemi: System.IO.FileSystem.AccessControl.dll, mscorlib.dll
  • Definizione: definisce l’autorizzazione di accesso da utilizzare durante lo sviluppo di regole di accesso e controllo.
  • Questo elenco contiene un elemento FlagsAttribute che consente una fusione bit a bit dei valori dei suoi membri.

C #copia

[System.Flags]
[System.Security.SecurityCritical]

publicenum FileSystemRights

  • Eredità: Oggetto -> ValueType -> Enum -> FileSystemRights
  • attributi: FlagsAttribute, SecurityCriticalAttribute

Esempi

Il codice seguente è un’illustrazione che utilizza l’elenco FullControl per scrivere una regola di accesso e quindi rimuovere la regola di accesso da un file. Devi fornire un account utente o di gruppo valido per poter eseguire l’esempio che abbiamo mostrato qui.

C # Copia

using System;
using System.IO;
utilizzando System.Security.AccessControl;

namespace FileSystemExample
{
class FileExample
{
publicstaticvoid Main ()
{
provare
{
string fileName = "test.xml";

Console.WriteLine ("Aggiunta della voce di controllo di accesso per"
+ nome del file);

// Aggiunge la voce di controllo di accesso al file.
AddFileSecurity (fileName, @ "DomainNameAccountName",
FileSystemRights.ReadData, AccessControlType.Allow);

Console.WriteLine ("Rimozione voce controllo accessi da"
+ nome del file);

// Rimuovi la voce di controllo dell'accesso dal file.
RemoveFileSecurity (fileName, @ "DomainNameAccountName",
FileSystemRights.ReadData, AccessControlType.Allow);

Console.WriteLine ( "Fatto.");
}
cattura (eccezione e)
{
Console.WriteLine (e);
}
}

// Aggiunge una voce ACL sul file specificato per l'account specificato.
publicstaticvoid AddFileSecurity (nome file stringa, account stringa,
Diritti FileSystemRights, AccessControlType controlType)
{


// Ottieni un oggetto FileSecurity che rappresenta il file
// impostazioni di sicurezza correnti.
FileSecurity fSecurity = File.GetAccessControl (fileName);

// Aggiungi FileSystemAccessRule alle impostazioni di sicurezza.
fSecurity.AddAccessRule (nuova FileSystemAccessRule (conto,
diritti, controlType));

// Imposta le nuove impostazioni di accesso.
File.SetAccessControl (fileName, fSecurity);

}

// Rimuove una voce ACL dal file specificato per l'account specificato.
publicstaticvoid RemoveFileSecurity (nome file stringa, account stringa,
Diritti FileSystemRights, AccessControlType controlType)
{

// Ottieni un oggetto FileSecurity che rappresenta il file
// impostazioni di sicurezza correnti.
FileSecurity fSecurity = File.GetAccessControl (fileName);

// Rimuovi FileSystemAccessRule dalle impostazioni di sicurezza.
fSecurity.RemoveAccessRule (nuova FileSystemAccessRule (conto,
diritti, controlType));

// Imposta le nuove impostazioni di accesso.
File.SetAccessControl (fileName, fSecurity);

}
}
}

Per la guida alla configurazione specifica ACL di Internet Information Services (IIS), vedere di seguito:

Come impostare gli ACL

Esistono molti modi per impostare gli ACL tramite la shell. Queste tesi includono l’uso di strumenti da riga di comando come Icacls.exe. Questo articolo si concentra sul meccanismo manifest (XML) del Web Deployment Tool che può essere utilizzato per impostare gli ACL. Questo viene utilizzato quando si installa un’app tramite lo strumento di distribuzione Web o il programma di installazione della piattaforma Web.

Per offrire le autorizzazioni di lettura, esecuzione e scrittura alla directory del file system MyApp per l’utente Foo, incorporare la riga seguente nel file Manifest.xml:

XMLCopy

Per configurare l’ACL sul percorso MyApp / Upload per consentire agli utenti anonimi di caricare contenuti, integrare le righe seguenti nel file Manifest.xml:

XMLCopy

Tenere presente che anonymousAuthenticationUser è un token particolare che determinerà l’identità di autenticazione anonima configurata.

Per fornire l’accesso in lettura alla cartella MyAppData per l’identità del pool di applicazioni, incorporare il comando seguente nel file Manifest.xml:

XMLCopy

Tenere presente che setAclUser non è utilizzato qui. Il (il valore predefinito impostato per questo è l’identità del pool di applicazioni).

Il token anonymousAuthenticationUser viene misurato abitualmente fino all’identità impostata dal sito Web e che verrà utilizzata per l’autenticazione anonima. Mentre questa identità viene impostata dall’amministratore del sito Web, la cosa migliore da fare è utilizzare anonymousAuthenticationUser per le applicazioni PHP e non utilizzare setAclUser per le applicazioni Microsoft ASP.NET, tranne per il fatto che l’applicazione ha un requisito particolare per un utente di gestire correttamente il file).

Le app PHP vengono comunemente eseguite come utente anonimo a causa del fatto che le impostazioni FastCGI utilizzano comunemente la rappresentazione come True (eseguita come utente anonimo). Le app ASP.NET vengono eseguite sostanzialmente come identità del processo di lavoro (identità del pool di applicazioni). Se setAclUser non viene specificato, quindi anonymousAuthenticationUser utilizza l’identità del pool di applicazioni dell’app per rappresentare l’identità per l’autorizzazione.

Commento conclusivo

Gli elenchi FileSystemRights stabiliscono le azioni del file system consentite per un account utente specifico e quali procedure del file system sono controllate per un account utente specifico.

Utilizzare l’elenco FileSystemRights quando si desidera generare una regola di accesso con la categoria FileSystemAccessRule o quando si desidera generare una regola di controllo con la categoria FileSystemAuditRule.

Questo elenco è composto da molti valori dei diritti di struttura granulare e molti valori che sono una miscela di quei valori granulari. È più semplice utilizzare i valori di fusione come FullControl, Read e Write, invece di precisare ciascun valore di elemento singolarmente.

Screenshots

Come impostare gli ACL tramite il file Manifest.xml in IIS

Come impostare gli ACL tramite il file Manifest.xml in IIS

Come impostare gli ACL tramite il file Manifest.xml in IIS

Come impostare gli ACL tramite il file Manifest.xml in IIS

Dai un’occhiata a questi 3 migliori servizi di web hosting

FastComet

Prezzo di partenza:
$ 2.95


Affidabilità
9.7


Prezzi
9.5


Di facile utilizzo
9.7


Supporto
9.7


Caratteristiche
9.6

Leggi le recensioni

Visita FastComet

Hosting A2

Prezzo di partenza:
$ 3.92


Affidabilità
9.3


Prezzi
9.0


Di facile utilizzo
9.3


Supporto
9.3


Caratteristiche
9.3

Leggi le recensioni

Visita A2 Hosting

ChemiCloud

Prezzo di partenza:
$ 2.76


Affidabilità
10


Prezzi
9.9


Di facile utilizzo
9.9


Supporto
10


Caratteristiche
9.9

Leggi le recensioni

Visita ChemiCloud

Articoli How-To correlati

  • Come configurare, installare e distribuire ASP.NET Core su IIS
    intermedio
  • Come disabilitare la vulnerabilità del metodo Opzioni in IIS e Apache
    intermedio
  • Come distribuire un’applicazione Blazor su IIS
    intermedio
  • Come configurare il pool di applicazioni IIS (Windows) in Plesk
    intermedio
  • Come distribuire IIS e ASP.NET con il Puppet Module
    intermedio
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me