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
Questo articolo descrive come SQL Server usa i certificati per la sicurezza remota di Service Broker. 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 usa 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 chiavi private.
Per verificare l'identità di un server remoto, SQL Server deve ricevere informazioni che possono essere decrittografate con la chiave pubblica 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 che SQL Server verifica l'identità di un database remoto, il database remoto può agire con 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 altre 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 potrebbe 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 della finestra di dialogo, vedere Sicurezza della finestra di dialogo di Service Broker.
SQL Server non fornisce metodi automatizzati per la configurazione della sicurezza di Service Broker tramite certificati.
Requisiti dei certificati
Un certificato deve soddisfare i requisiti seguenti da usare per la sicurezza di Service Broker:
- 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 CREATE CERTIFICATE Transact-SQL soddisfa i requisiti 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 solo 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.
Affinché SQL Server usi un certificato per avviare 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 e ALTER CERTIFICATE.