Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server
Istanza gestita di SQL di Azure
In questo argomento viene descritto l'utilizzo dei certificati per la sicurezza remota di Service Broker da parte di SQL Server. Il termine sicurezza remota di Service Broker riguarda le operazioni che coinvolgono più istanze di SQL Server e che utilizzano la sicurezza del dialogo o la sicurezza del trasporto.
Panoramica
La funzionalità di sicurezza remota di Service Broker esegue il mapping di un'operazione dall'esterno di un'istanza a un'entità di database di SQL Server. L'operazione procede quindi nel contesto di sicurezza dell'entità di database mediante i normali controlli delle autorizzazioni di SQL Server. Ad esempio, quando arriva un messaggio per una conversazione che usa la sicurezza del dialogo, Service Broker utilizza le informazioni contenute nel messaggio per identificare un’entità di sicurezza dii database per il lato remoto della conversazione. SQL Server verifica quindi che l'entità abbia l'autorizzazione per connettersi al database che ospita il servizio di destinazione e l'autorizzazione per inviare un messaggio al servizio di destinazione.
SQL Server utilizza i certificati per verificare l'identità di un database remoto e per identificare l'entità di database locale per l'operazione. Pertanto, l'installazione di un certificato in SQL Server costituisce un'attestazione di attendibilità del database che contiene la chiave privata del certificato. Gestire attentamente i certificati installati e le associazioni al servizio remoto create.
Nota
Installare solo i certificati da fonti attendibili. Non distribuire le chiavi private.
Per verificare l'identità di un server remoto, SQL Server deve ricevere informazioni decrittografabili mediante la chiave pubblica contenuta in un certificato di proprietà di un'entità di database locale. Se SQL Server è in grado di decrittografare le informazioni, significa che il database remoto contiene la chiave privata corrispondente alla chiave pubblica associata al certificato locale. Dopo la verifica dell'identità di un database remoto da parte di SQL Server, il database remoto può utilizzare le autorizzazioni dell'entità di database locale.
Per la sicurezza del trasporto, ogni database deve considerare attendibile l'altro database. La sicurezza del trasporto può usare i certificati o l'autenticazione di Windows. Per ulteriori informazioni sulla sicurezza del trasporto, vedere Sicurezza del trasporto di Service Broker.
Per la sicurezza del dialogo, l'iniziatore del dialogo deve considerare attendibile la destinazione e deve essere in grado di verificare l'identità della destinazione. Tuttavia, la destinazione può consentire connessioni da iniziatori che non forniscono informazioni di identificazione. In questo caso gli initiator utilizzano il ruolo pubblico nel database che ospita il servizio di destinazione. La sicurezza del dialogo usa sempre i certificati. Per altre informazioni sulla sicurezza del dialogo, vedere Sicurezza del dialogo di Service Broker.
SQL Server non include metodi automatici per la configurazione della sicurezza di Service Broker tramite i certificati.
Requisiti per i certificati
Per essere usato nella sicurezza di Service Broker, un certificato deve soddisfare i seguenti requisiti:
Il modulo della chiave deve essere minore di 2048.
La lunghezza totale del certificato deve essere inferiore a 32 kilobyte (KB).
Deve essere specificato un nome soggetto.
Devono essere specificate le date di validità.
La lunghezza della chiave deve essere un multiplo di 64 byte.
Un certificato autofirmato creato con l'istruzione Transact-SQL CREATE CERTIFICATE soddisfa i requisiti riportati nell'elenco precedente. I certificati caricati da un file potrebbero non soddisfare questi requisiti.
Quando viene archiviato in SQL Server, il certificato deve essere crittografato con la chiave master del database. Service Broker non può usare certificati crittografati soltanto con una password. Inoltre, la chiave master del database deve essere crittografata con la chiave del servizio per l'istanza. In caso contrario, Service Broker non può aprire la chiave master.
Per consentire a SQL Server di utilizzare un certificato per iniziare una conversazione, il certificato deve essere contrassegnato come ACTIVE FOR BEGIN_DIALOG. Per impostazione predefinita, i certificati sono attivi quando si avvia un dialogo. Tuttavia, si può scegliere di disattivare temporaneamente un certificato durante l'aggiornamento della configurazione di sicurezza per un servizio. Per altre informazioni, vedere CREATE CERTIFICATE (Transact-SQL) e ALTER CERTIFICATE (Transact-SQL).