Sicurezza per Business Rules Framework
Il Motore regole di business viene eseguito nel contesto di sicurezza dell'applicazione host. L'identità dell'istanza del motore di regole durante l'esecuzione è quella del contesto del thread che richiama il metodo Policy.Execute .
Configurazione di sicurezza predefinita
Quando si installa Microsoft BizTalk Server, per impostazione predefinita vengono creati due gruppi di Microsoft Windows, uno per gli amministratori e uno per gli utenti: "BizTalk Server Administrators" e "Utenti applicazioni BizTalk". Questi due gruppi di Windows sono membri di BTS_ADMIN_USERS e BTS_HOST_USERS ruoli SQL che sono rispettivamente membri di RE_ADMIN_USERS e RE_HOST_USERS ruoli SQL.
I ruoli SQL predefiniti vengono creati ogni volta che viene creato un archivio regole: BTS_ADMIN_USERS, BTS_HOST_USERS, RE_ADMIN_USERS e RE_HOST_USERS.
Gruppi di Windows predefiniti | ruoli SQL |
---|---|
Amministratori BizTalk Server | RE_ADMIN_USERS |
Utenti applicazione BizTalk | RE_HOST_USERS |
Solo gli utenti nel ruolo RE_ADMIN_USERS possono eseguire le stored procedure che consentono di aggiornare le tabelle relative alla distribuzione e alla configurazione della sicurezza dell'accesso alle entità. Ne consegue che le tutte le operazioni di distribuzione, annullamento della distribuzione e configurazione della sicurezza vengono eseguite solo dagli amministratori del Motore regole di business. Gli utenti nel ruolo RE_HOST_USERS possono eseguire le altre stored procedure nell'archivio regole SQL.
Indipendentemente dall'ordine di installazione del Motore regole di business, durante il processo di configurazione del Motore regole di business al ruolo SQL RE_HOST_USERS viene concessa l'appartenenza all'account Servizio di aggiornamento del Motore regole di business, se il ruolo non dispone già dell'accesso al database. Se, tuttavia, il Motore regole di business viene installato dopo l'installazione iniziale di BizTalk, il gruppo di utenti specifici per l'host BizTalk non verrà aggiunto al ruolo SQL BTS_HOST_USERS nel database Motore regole di business in quanto la creazione degli host è già stata completata. È necessario eseguire questa operazione manualmente.
Sicurezza a livello di elemento
Oltre alla configurazione di sicurezza predefinita, il motore delle regole di business può anche fornire sicurezza a livello di artefatto, ovvero criteri e vocabolari.
A ciascuna versione del criterio o del vocabolario è associato uno o più gruppi di autorizzazioni. Un gruppo di autorizzazioni è un elenco denominato di utenti Microsoft Windows, utenti SQL, ruoli SQL e gruppi di Windows, con un particolare livello di accesso per ciascun tipo.
Quando nell'archivio regole viene creato un nuovo criterio o un nuovo vocabolario, per impostazione predefinita, solo l'utente che lo ha creato e l'amministratore del Motore regole di business dispongono delle autorizzazioni di lettura/esecuzione e di modifica/eliminazione. L'amministratore del motore regole può configurare quali utenti (processi operano con credenziali utente) hanno il livello di accesso o i diritti per eseguire operazioni diverse, ovvero lettura/esecuzione, modifica/eliminazione, autorizzazione completa o nessuna autorizzazione.
Per impostazione predefinita, la sicurezza a livello di elemento non è attivata. La sicurezza a livello di elemento non è attualmente disponibile tramite l'interfaccia utente. È possibile tuttavia impostare questo tipo di sicurezza a livello di codice con le credenziali di amministratore del Motore regole di business. Nel seguente frammento di codice viene illustrato come creare una nuova autorizzazione e associare il gruppo a un set di regole.
RuleSet rs;
string RSName;
// Create new user
AuthorizationGroupEntry newuser = new AuthorizationGroupEntry(UserName, UID);
AuthorizationGroupEntryCollection AGEC = new AuthorizationGroupEntryCollection();
AGEC.Add(newuser);
// Define new authorization group collection
AuthorizationGroupCollection AGC = new AuthorizationGroupCollection();
// Create new authorization group
AuthorizationGroup AG = new AuthorizationGroup(GroupName, AccessPermit, AGEC);
//add the authorization group to the authorization group collection
AGC.Add(AG);
//saving the authorization group collection to the rule store
m_sqlRS.SaveAuthorizationGroups(AGC);
rs = m_sqlRS.GetRuleSet(rsInfo[0]);
RSName = rs.Name;
// Associate authorization group to the ruleset
m_sqlRS.SetRuleSetAuthorizations(RSName, AGC);
// Get ruleset by name from SQL rule store
RuleSetInfoCollection rsInfo = m_sqlRS.GetRuleSets("myRuleSet", RuleStore.Filter.All);
Nota
L'utilizzo della sicurezza a livello di elemento può determinare una riduzione delle prestazioni, in quanto il criterio dovrà eseguire una ricerca nel database a ogni esecuzione per valutare il livello di accesso dell'applicazione prima di restituire un'istanza del Motore regole di business.
Vedere anche
Note importanti sulla sicurezza del Motore regole di business