Architettura di sicurezza per la sincronizzazione tramite il Web

Si applica a: SQL Server

Microsoft SQL Server consente un controllo accurato della configurazione della sicurezza per la sincronizzazione Web. In questo articolo viene riportato un elenco completo dei componenti che possono essere inclusi in una configurazione di sincronizzazione tramite il Web e vengono fornite informazioni sulle connessioni tra i componenti. Se possibile, usare l'autenticazione di Windows.

Nella figura seguente sono illustrate tutte le possibili connessioni, anche se è possibile che alcune di esse non siano necessarie in determinate topologie. Una connessione a un server FTP, ad esempio, è necessaria solo se lo snapshot viene recapitato tramite FTP.

Componenti e connessioni usati nella sincronizzazione Web

Nella tabella seguente vengono descritti i componenti e le connessioni illustrati nella figura.

R. Utente di Windows utilizzato per l'esecuzione dell'agente di merge

Durante la sincronizzazione, l'agente di merge (A) viene avviato come Sottoscrittore. L'agente di merge può essere avviato da un passaggio del processo di SQL Server Agent o da un'applicazione personalizzata autonoma. Se viene avviato da un passaggio del processo di SQL Server Agent, l'agente di merge verrà eseguito nel contesto di un utente di Windows specificato. Se non viene specificato un utente di Windows, l'agente di merge verrà eseguito nel contesto dell'account di servizio di Windows per SQL Server Agent.

Tipo di account Posizione in cui viene specificato l'account
utente di Windows Transact-SQL: parametri @job_login e @job_password di sp_addmergepullsubscription_agent.

RMO (Replication Management Objects): proprietà Login e Password per SynchronizationAgentProcessSecurity.
Account di servizio di Windows per SQL Server Agent Gestione configurazione SQL Server
Applicazione autonoma L'agente di merge viene eseguito nel contesto dell'utente di Windows che esegue l'applicazione.

B. Connessione al Sottoscrittore

L'agente di merge si connette al Sottoscrittore utilizzando l'autenticazione di Windows o l'autenticazione di SQL Server. L'utente di Windows o l'account di accesso di SQL Server specificato deve essere associato a un utente di database che sia membro del ruolo predefinito del database dbowner nel database di sottoscrizione.

Nota

Quando l'agente di merge viene avviato da un processo di SQL Server Agent, viene sempre utilizzata l'autenticazione di Windows. L'autenticazione di Windows viene inoltre utilizzata quando l'agente di merge viene avviato a livello di programmazione, a meno che non venga specificata in modo esplicito l'autenticazione di SQL Server.

Tipo di autenticazione Posizione in cui viene specificata l'autenticazione
- Autenticazione di Windows. L'agente di merge esegue le connessioni nel contesto dell'utente di Windows specificato per l'agente di merge (A).
Autenticazione di SQL Server viene utilizzata solo se si specifica quanto segue:

- RMO: valore di Standard per SubscriberSecurityMode.
- Riga di comando dell'agente di merge: valore 0 per SubscriberSecurityMode.
RMO: SubscriberLogin e SubscriberPassword.

Riga di comando dell'agente di merge: -SubscriberLogin e -SubscriberLogin.

C. Connessione a un server proxy in uscita

Specificare un utente di Windows per questa connessione solo se è presente un server proxy in uscita che limita l'accesso alla rete interna del Sottoscrittore.

Tipo di autenticazione Posizione in cui viene specificata l'autenticazione
Autenticazione di Windows RMO: InternetProxyLogin e InternetProxyPassword con InternetProxyServer.

Riga di comando dell'agente di merge: -InternetProxyLogin e -InternetProxyPassword con -InternetProxyServer.

D. Connessione a IIS

Dopo la connessione al Sottoscrittore e l'estrazione delle modifiche dal database di sottoscrizione, l'agente di merge esegue una richiesta HTTPS a Microsoft Internet Information Services (IIS) e carica le modifiche ai dati come messaggio XML. L'agente di merge deve disporre delle autorizzazioni di accesso a IIS.

Tipo di autenticazione Posizione in cui viene specificata l'autenticazione
L'autenticazione di base viene utilizzata se si specifica uno dei valori seguenti:

- Transact-SQL: valore 0 per il parametro @internet_security_mode di sp_addmergepullsubscription_agent.
- RMO: valore di Standard per InternetSecurityMode.
- Riga di comando dell'agente di merge: valore 0 per -InternetSecurityMode.
Transact-SQL: parametri @internet_login e @internet_password di sp_addmergepullsubscription_agent.

RMO: InternetLogin e InternetPassword.

Riga di comando dell'agente di merge: -InternetLogin e -InternetPassword.
L'autenticazione integrata1 viene utilizzata se si specifica uno dei valori seguenti:

- Transact-SQL: valore 1 per il parametro @internet_security_mode di sp_addmergepullsubscription_agent.
- RMO: valore di Integrated per InternetSecurityMode.
- Riga di comando dell'agente di merge: valore 1 per -InternetSecurityMode.
L'agente di merge esegue le connessioni nel contesto dell'utente di Windows specificato per l'agente di merge (A).

1 L'autenticazione integrata può essere utilizzata solo se tutti i computer si trovano nello stesso dominio oppure in più domini con relazioni di trust reciproche.

Nota

La delega è necessaria se si utilizza l'autenticazione integrata. Per le connessioni dal sottoscrittore a IIS è consigliabile usare l'autenticazione di base e TLS.

E. Connessione al server di pubblicazione

I componenti Listener per la replica e Riconciliatore replica di tipo merge (Merge Replication Reconciler) di SQL Server sono ospitati nel computer che esegue IIS. Questi componenti eseguono le operazioni seguenti:

  • Prelievo della richiesta HTTPS descritta nella sezione "D. Connessione a IIS".

  • Stabilire una connessione SQL al database di pubblicazione e applicare le modifiche caricate al database di pubblicazione.

  • Estrazione delle modifiche scaricate e invio di una risposta HTTPS all'agente di merge.

Riconciliatore replica di tipo merge (Merge Replication Reconciler) si connette al server di pubblicazione mediante l'autenticazione di Windows o l'autenticazione di SQL Server. L'utente di Windows o l'account di accesso di SQL Server specificato deve essere conforme alle regole seguenti:

Tipo di autenticazione Posizione in cui viene specificata l'autenticazione
L'autenticazione di Windows viene utilizzata se si specifica uno dei valori seguenti:

- Transact-SQL: valore 1 per il parametro @publisher_security_mode di sp_addmergepullsubscription_agent.
- RMO: valore di Integrated per PublisherSecurityMode.
- Riga di comando dell'agente di merge: valore 1 per -PublisherSecurityMode.
L'agente di merge esegue le connessioni al server di pubblicazione nel contesto dell'utente di Windows specificato per la connessione a IIS (D). Se il server di pubblicazione e IIS si trovano in computer differenti e viene utilizzata l'autenticazione integrata per la connessione (D), è necessario abilitare la delega Kerberos nel computer che esegue IIS. Per ulteriori informazioni, vedere la documentazione di Windows.
Autenticazione di SQL Server viene utilizzata se si specifica uno dei valori seguenti:

- Transact-SQL: valore 0 per il parametro @publisher_security_mode di sp_addmergepullsubscription_agent.
- RMO: valore di Standard per PublisherSecurityMode.
- Riga di comando dell'agente di merge: valore 0 per -PublisherSecurityMode.
Transact-SQL: parametri @publisher_login e @publisher_password di sp_addmergepullsubscription_agent.

RMO: PublisherLogin e PublisherPassword.

Riga di comando dell'agente di merge: -PublisherLogin e -PublisherPassword.

F. Connessione al server di distribuzione

Anche Riconciliatore replica di tipo merge (Merge Replication Reconciler) ospitato nel computer che esegue IIS effettua connessioni al server di distribuzione. Per tali connessioni utilizza l'autenticazione di Windows o l'autenticazione di SQL Server. L'utente di Windows o l'account di accesso di SQL Server specificato deve essere conforme alle regole seguenti:

  • Trovarsi nell'elenco di accesso alla pubblicazione. Per altre informazioni, vedere Proteggere il server di pubblicazione.

  • Essere associato a un utente di database nel database di distribuzione. L'utente può essere l'utente Guest .

La condivisione snapshot si trova generalmente nel server di distribuzione. Per ulteriori informazioni sulle condivisioni snapshot, vedere la sezione "H. Accesso alla condivisione snapshot", più avanti in questo argomento.

- Tipo di autenticazione Posizione in cui viene specificata l'autenticazione
L'autenticazione di Windows viene utilizzata se si specifica uno dei valori seguenti:

- Transact-SQL: valore 1 per il parametro @distributor_security_mode di sp_addmergepullsubscription_agent.
- RMO: valore di Integrated per DistributorSecurityMode.
- Riga di comando dell'agente di merge: valore 1 per -DistributorSecurityMode.
L'agente di merge esegue le connessioni al server di distribuzione nel contesto dell'utente di Windows specificato per la connessione a IIS (D). Se il server di distribuzione e IIS si trovano in computer differenti e viene utilizzata l'autenticazione integrata per la connessione (D), è necessario abilitare la delega Kerberos nel computer che esegue IIS. Per ulteriori informazioni, vedere la documentazione di Windows.
Autenticazione di SQL Server viene utilizzata se si specifica uno dei valori seguenti:

- Transact-SQL: valore 0 per il parametro @distributor_security_mode di sp_addmergepullsubscription_agent.
- RMO: valore di Standard per DistributorSecurityMode.
- Riga di comando dell'agente di merge: valore 0 per -DistributorSecurityMode.
Transact-SQL: parametri @distributor_login e @distributor_password di sp_addmergepullsubscription_agent.

RMO: DistributorLogin e DistributorPassword

Riga di comando dell'agente di merge: -DistributorLogin e -DistributorPassword.

G. Connessione a un server FTP

Specificare un utente di Windows per questa connessione solo se si eseguirà il download dei file di snapshot da un server FTP, anziché da un percorso UNC, al computer che esegue IIS prima dell'applicazione dello snapshot al Sottoscrittore. Per altre informazioni, vedere Trasferire snapshot tramite FTP.

Tipo di autenticazione Posizione in cui viene specificata l'autenticazione
Autenticazione di Windows Transact-SQL: parametri @ftp_login e @ftp_password di sp_addmergepublication.

RMO: FtpLogin e FtpPassword.

H. Accesso alla condivisione snapshot

Alla condivisione snapshot è possibile accedere tramite Riconciliatore replica di tipo merge (Merge Replication Reconciler) ospitato nel computer che esegue IIS.

Tipo di autenticazione Posizione in cui viene specificata l'autenticazione
Autenticazione di Windows L'agente di merge accede alla condivisione snapshot nel contesto dell'utente di Windows specificato per la connessione a IIS (D). Se la condivisione snapshot e IIS si trovano in computer differenti e viene utilizzata l'autenticazione integrata per la connessione (D), è necessario abilitare la delega Kerberos nel computer che esegue IIS. Per ulteriori informazioni, vedere la documentazione di Windows.

I. Account del pool di applicazioni per IIS

Questo account viene utilizzato per avviare il processo W3wp.exe nel computer che esegue IIS per Windows Server 2003 o il processo Dllhost.exe in Windows 2000. Questi processi ospitano applicazioni nel computer che esegue IIS, ad esempio Listener per la replica di SQL Server e Riconciliatore replica di tipo merge (Merge Replication Reconciler). Questo account deve disporre delle autorizzazioni di lettura ed esecuzione sulle seguenti DLL di replica nel computer che esegue IIS:

  • Replisapi

  • Replrec

  • Replprov

  • Msgprox

  • Xmlsub

L'account deve inoltre essere membro del gruppo IIS_WPG. Per altre informazioni, vedere la sezione "Impostazione delle autorizzazioni per Listener per la replica di SQL Server" in Configurare IIS per la sincronizzazione Web.

Tipo di account Posizione in cui viene specificato l'account
Qualsiasi utente di Windows che dispone delle autorizzazioni necessarie. Gestione Internet Information Services (IIS).