Uso dei ruoli per l'autorizzazione client
La sicurezza basata sui ruoli viene usata per stabilire criteri di autorizzazione, determinando il client o i client da consentire e con l'autorità. Si decide chi deve essere in grado di eseguire le azioni e l'accesso alle risorse.
I ruoli facilitano questa operazione fungendo da meccanismo di controllo di accesso richiamato ogni volta che un utente tenta di accedere a qualsiasi risorsa dell'applicazione. Un ruolo è fondamentalmente un elenco di utenti, più precisamente, una categoria simbolica di utenti che condividono lo stesso privilegio di sicurezza. Quando si assegna un ruolo a una risorsa dell'applicazione, si concede l'autorizzazione di accesso per tale risorsa a chiunque sia membro di tale ruolo.
Pertanto, è possibile definire un privilegio di sicurezza molto particolare dichiarandolo come ruolo e assegnando quindi il ruolo a risorse specifiche. Quando l'applicazione viene distribuita, l'amministratore di sistema può popolare il ruolo con utenti e gruppi di utenti effettivi. Quando l'applicazione viene eseguita, COM+ applichererà i criteri eseguendo i controlli dei ruoli.
Fondamentalmente, i ruoli consentono di proteggere il codice, ovvero i metodi che possono essere chiamati dai client di un'applicazione COM+. L'appartenenza al ruolo viene controllata ogni volta che un client tenta di chiamare un metodo esposto da un componente in un'applicazione. Se il chiamante si trova in un ruolo assegnato al metodo chiamato o alla risorsa, la chiamata ha esito positivo; in caso contrario, ha esito negativo.
Sicurezza dichiarativa basata su ruoli
Con la sicurezza dichiarativa basata sui ruoli, è possibile dichiarare i ruoli in modo amministrativo, usando lo strumento di amministrazione di Servizi componenti o le funzioni Amministrazione istrative, e assegnarle in modo amministrativo alle risorse dell'applicazione. Dove e come si imposta la sicurezza dichiarativa determinerà dove vengono tracciati i limiti di sicurezza per l'applicazione. Per altri dettagli, vedere Limiti di sicurezza.
È possibile assegnare un determinato ruolo all'intera applicazione, a un determinato componente, a una particolare interfaccia in un componente o a un metodo specifico in un'interfaccia. Le assegnazioni di ruolo vengono ereditate dalla catena naturale di inclusione, ovvero se si assegna un ruolo a un componente, viene assegnato in modo implicito a ogni interfaccia e metodo esposto da tale componente.
Con la disponibilità delle assegnazioni di ruolo a livello di metodo, è possibile proteggere in modo efficace i componenti e le interfacce che non sono stati progettati tenendo conto della sicurezza. Tuttavia, se i metodi stessi non sono a protezione diretta con assegnazioni di ruolo dichiarative, potrebbe essere necessario eseguire il controllo dei ruoli a livello di codice. In genere è consigliabile tenere presente la sicurezza quando si decide come prendere in considerazione le funzionalità aziendali tramite metodi; in caso contrario, è possibile trovare l'aggiunta nel codice correlato alla sicurezza all'ultimo minuto.
Per procedure dettagliate per l'impostazione della sicurezza basata sui ruoli, vedere Configurazione della sicurezza basata su ruoli.
Sicurezza a livello di codice
In alcune circostanze potrebbe essere necessario inserire la logica di sicurezza nei componenti usando comunque la sicurezza basata sui ruoli. Potrebbe non essere possibile, o scegliere di non, tenere conto di tutte le decisioni di accesso tramite metodi. Ad esempio, potrebbe essere disponibile una risorsa applicazione privata, ad esempio un database specifico, che si vuole consentire solo ad alcuni chiamanti di un metodo di accedere, escludendo altri. Oppure potresti avere un singolo metodo TransferMoney e vuoi limitare alcuni chiamanti limitando la quantità che possono trasferire.
In tali circostanze, è possibile eseguire il controllo dei ruoli nel codice. Viene fornita una semplice API, che consente di controllare se la sicurezza è attivata e se un chiamante o un determinato utente si trova in un determinato ruolo. Questa funzionalità è disponibile solo quando è abilitata la sicurezza basata sui ruoli. Ciò significa che è comunque possibile sfruttare la sicurezza dichiarativa basata sui ruoli in cui è sufficiente e quindi estenderla a livello di codice a un livello di granularità più fine quando necessario.
Inoltre, quando si usa la sicurezza basata sui ruoli, si ha accesso a livello di codice alle informazioni relative a tutti i chiamanti upstream nella catena di chiamate al componente. Ciò è particolarmente utile quando si desidera mantenere un audit trail dettagliato.
Per le descrizioni di come eseguire il controllo dei ruoli nel codice e su come accedere alle informazioni sul contesto delle chiamate di sicurezza, vedere Sicurezza dei componenti a livello di codice.
Autorizzazione e autenticazione
Presupposti significativi per l'autorizzazione che si è certi che i client siano effettivamente quelli che dicono di essere. La verifica dell'identità client viene gestita separatamente da un servizio di autenticazione. Senza l'autenticazione, si consente fondamentalmente ai chiamanti di entrare nel sistema d'onore. Per le descrizioni dell'autenticazione in quanto influisce sulle applicazioni COM+, vedere Autenticazione client.
Argomenti correlati