Configurazione della protezione per gli archivi di salvataggio permanente
L'accesso al database di salvataggio permanente di SQL Server è protetto tramite i ruoli di SQL Server indicati di seguito:
InstanceStoreUsers. I membri di questo ruolo possono scaricare/salvare le istanze di flusso di lavoro da/nell'archivio di istanza. L'applicazione che utilizza WorkflowServiceHost o WorkflowApplication per ospitare servizi e utilizza SqlWorkflowInstanceStore per il salvataggio permanente dovrebbe essere eseguita tramite un'identità membro di questo ruolo.
InstanceStoreObservers. I membri di questo ruolo possono eseguire query sull'archivio di istanza. L'applicazione che utilizza WorkflowServiceHost o WorkflowApplication per ospitare servizi e utilizza SqlWorkflowInstanceStore per il salvataggio permanente dovrebbe essere eseguita tramite un'identità membro di questo ruolo.
WorkflowAdministrators. I membri di questo ruolo possono accodare (aggiungere) i comandi di controllo alla coda dei comandi nell'archivio di istanza.
WorkflowActivationUsers. I membri di questo ruolo possono eseguire query sull'archivio di istanza per istanze attivabili di flusso di lavoro. Il servizio Gestione flusso di lavoro (WMS) deve essere eseguito tramite un'identità membro di questo ruolo.
WorkflowManagementServiceUsers. I membri di questo ruolo possono annullare l'accodamento (recuperare) dei comandi di controllo dalla coda dei comandi nell'archivio di istanza. I WMS devono essere eseguiti tramite un'identità membro di questo ruolo.
L'accesso all'archivio di salvataggio permanente SQL è consentito per singolo archivio. Un utente che ha accesso alle istanze di un servizio di flusso di lavoro archiviato in un archivio di istanza ha accesso a tutte le istanze, incluse quelle di un servizio di flusso di lavoro diverso presenti nell'archivio. Per evitare che gli utenti che hanno accesso alle istanze di un servizio accedano a quelle di un altro servizio, assicurarsi di utilizzare archivi di istanza separati per i due servizi.
Ad esempio, se il Servizio1 viene eseguito tramite l'identità Utente1, il Lettore1 può eseguire query sulle istanze del Servizio1 e l'Amministratore1 può controllare le istanze del Servizio1. Se il Servizio2 viene eseguito tramite l'identità Utente2, il Lettore2 può eseguire query sulle istanze del Servizio2 e l'Amministratore2 può controllare le istanze del Servizio2. Per evitare che Utente1/Lettore1/Amministratore1 carichi/esegua query/controlli le istanze del Servizio2 e che Utente2/Lettore2/Amministratore2 carichi/esegua query/controlli le istanze del Servizio1, tutte le istanze del Servizio1 devono essere archiviate in un archivio di istanza Archivio1 e tutte le istanze del Servizio2 devono essere archiviate in un archivio di istanza Archivio2.
In questo scenario, un utente deve aggiungere gli utenti o i gruppi Windows riportati di seguito a questi ruoli:
Aggiungere Utente1 al ruolo InstanceStoreUsers del database Archivio1. In alternativa, aggiungere Utente1 a un gruppo Windows GruppoUtenti1 e aggiungere GruppoUtenti1 al ruolo InstanceStoreUsers del database Archivio1.
Aggiungere Lettore1 o GruppoLettori1, un gruppo Windows di cui il Lettore1 è membro, a InstanceStoreObservers del database Archivio1.
Aggiungere Amministratore1 o GruppoAmministratori1, un gruppo Windows di cui l'Amministratore1 è membro, a WorkflowAdminstrators del database Archivio1.
Aggiungere Utente2 o GruppoLettori2, un gruppo Windows di cui l'Utente2 è membro, a InstanceStoreUsers del database Archivio2.
Aggiungere Lettore2 o GruppoLettori2, un gruppo Windows di cui il Lettore2 è membro, a InstanceStoreObservers del database Archivio2.
Aggiungere Amministratore2 o GruppoAmministratori2, un gruppo Windows di cui l'Amministratore2 è membro, a WorkflowAdministrators del database Archivio2.
Aggiungere l'ID di sicurezza (SID) di WMS ai gruppi Windows GruppoAmministratori1 e GruppoAmministratori2.
Per aumentare la protezione, è possibile eseguire più istanze di WMS. Ad esempio, due istanze WMS1 e WMS2 dei servizi Gestione flusso di lavoro sono in esecuzione ed entrambe vengono eseguite tramite l'account BUILTIN\Local Services. Si supponga di assegnare WMS1 all'ID di sicurezza WMS-SID1 e WMS2 all'ID di sicurezza WMS-SID2. In questo caso, procedere come riportato di seguito anziché eseguire l'ultimo passaggio della procedura precedente:
Aggiungere WMS-SID1 al gruppo Windows WMSGroup1 e aggiungere WMSGroup1 a WorkflowActivationUsers e WorkflowManagementServiceUsers del database Archivio1.
Aggiungere WMS-SID2 al gruppo Windows WMSGroup2 e aggiungere WMSGroup2 a WorkflowActivationUsers e WorkflowManagementServiceUsers del database Archivio2.
Autorizzazione endpoint di controllo istanza
L'autorizzazione degli endpoint di controllo istanza (ICE) di tutti i servizi permanenti nell'Archivio1 al WMSGroup1 per lo scenario descritto nella sezione precedente deve essere modificata. Allo stesso modo, deve essere modificata l'autorizzazione degli ICE di tutti i servizi permanenti nell'Archivio2 al WMSGroup2. Nell'esempio riportato di seguito viene mostrato come proteggere l'accesso a un ICE mediante un file di configurazione.
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="myServiceBehavior">
<workflowInstanceManagement authorizedWindowsGroup="WMSGroup1" />
</behavior>
</serviceBehaviors >
</behaviors>
</system.serviceModel>
</configuration>
Autorizzazione endpoint di gestione del servizio
L'autorizzazione degli endpoint di gestione del servizio (SME) di tutti i servizi permanenti nell'Archivio1 al WMSGroup1 per lo scenario descritto al'inizio dell'argomento deve essere modificata. Allo stesso modo, deve essere modificata l'autorizzazione degli SME di tutti i servizi permanenti nell'Archivio2 al WMSGroup2. Nell'esempio riportato di seguito viene mostrato come proteggere l'accesso a uno SME mediante un file di configurazione.
<configuration>
<microsoft.applicationServer>
<hosting>
<serviceManagement enabled="true" authorizedWindowsGroup="WMSGroup1" endpointConfiguration="ServiceManagementNetPipeEndpoint" />
</hosting>
</microsoft.applicationServer>
</configuration>
Configurazione del servizio Gestione flusso di lavoro
Nello scenario descritto all'inizio dell'argomento, WMS1 deve essere configurato per monitorare l'Archivio1 e WMS2 per monitorare l'Archivio2. A tale scopo, modificare la sezione di configurazione del servizio Gestione flusso di lavoro nel file Web.config radice come illustrato nel seguente esempio di configurazione.
<configuration>
<microsoft.applicationServer>
<persistence>
<workflowManagement>
<workflowManagementServiceInstances>
<workflowManagementServiceInstance name="WMS1">
<instanceStores>
<instanceStore name="Store1" location="[root, SiteName or VPath]" />
</instanceStores>
</workflowManagementServiceInstance>
<workflowManagementServiceInstance name="WMS2">
<instanceStores>
<instanceStore name="Store2" location="[root, SiteName or VPath]" />
</instanceStores>
</workflowManagementServiceInstance>
</workflowManagementServiceInstances>
</workflowManagement>
</persistence>
</microsoft.applicationServer>
</configuration>
Configurazione guidata di Windows Server AppFabric
La configurazione guidata di AppFabric consente di associare i gruppi Windows a tre tipi di utenti: Administrators, Readers e Users. Per impostazione predefinita, i gruppi Windows AS_Administrators, AS_Observers e IIS_USRS sono associati ad Administrators, Readers e Users, rispettivamente. La configurazione guidata aggiunge AS_Administrators ai ruoli InstanceStoreObservers, WorkflowActivationUsers, WorkflowAdministrators e WorkflowManagementServiceUsers in SQL Server, aggiunge AS_Observers al ruolo InstanceStoreObservers e aggiunge IIS_USRS al ruolo InstanceStoreUsers.
La configurazione guidata imposta il valore dell'attributo authorizedWindowsGroup dell'elemento workflowInstanceManagement e il valore dell'attributo authorizedWindowsGroup dell'elemento serviceManagement ad AS_Administrators.
2011-12-05