Esercitazione: Configurare l'autenticazione di Microsoft Entra per SQL Server

Si applica a: SQL Server 2022 (16.x)

Questo articolo descrive un processo dettagliato per configurare l'autenticazione con Microsoft Entra ID e illustra come usare diversi metodi di autenticazione di Microsoft Entra.

Nota

Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).

In questa esercitazione apprenderai a:

  • Creare e registrare un'applicazione Microsoft Entra
  • Concedere le autorizzazioni all'applicazione Microsoft Entra
  • Creare e assegnare un certificato
  • Configurare l'autenticazione di Microsoft Entra per SQL Server tramite portale di Azure
  • Creare account di accesso e utenti
  • Connessione con un metodo di autenticazione supportato

Prerequisiti

Prerequisiti di autenticazione

Nota

La funzionalità estesa è stata implementata in Azure per consentire la creazione automatica del certificato di Azure Key Vault e dell'applicazione Microsoft Entra durante la configurazione di un amministratore di Microsoft Entra per SQL Server. Per altre informazioni, vedere Esercitazione: Uso dell'automazione per configurare l'amministratore di Microsoft Entra per SQL Server.

  • Registrazione dell'applicazione Microsoft Entra per SQL Server. La registrazione di un'istanza di SQL Server come applicazione Microsoft Entra consente all'istanza di eseguire query sull'ID Microsoft Entra e consente all'applicazione Microsoft Entra di eseguire l'autenticazione per conto dell'istanza di SQL Server. La registrazione dell'applicazione richiede anche alcune autorizzazioni, usate da SQL Server per determinate query.

  • SQL Server usa un certificato per questa autenticazione, archiviato in Azure Key Vault (AKV). L'agente Azure Arc scarica il certificato nell'host dell'istanza di SQL Server.

Avviso

le Connessione autenticate dall'ID Microsoft Entra vengono sempre crittografate. Se SQL Server usa un certificato autofirmato, è necessario aggiungere trust server cert = true il stringa di connessione. Le connessioni autenticate di SQL Server e Windows non richiedono la crittografia, ma è consigliabile.

Creare e registrare un'applicazione Microsoft Entra

  1. Passare alla portale di Azure, selezionare Registrazione nuova app Microsoft Entra ID.>>
    1. Specificare un nome: l'esempio in questo articolo usa SQLServerCTP1.
    2. Selezionare Tipi di account supportati e usare account solo in questa directory dell'organizzazione
    3. Non impostare un URI di reindirizzamento
    4. Selezionare Registra

Vedere la registrazione dell'applicazione di seguito:

Screenshot of registering application in the Azure portal.

Concedere le autorizzazioni dell'applicazione

Selezionare l'applicazione appena creata e nel menu a sinistra selezionare Autorizzazioni API.

  1. Selezionare Aggiungi un'autorizzazione Per>l'applicazione Microsoft Graph>

    1. Controllare Directory.Read.All
    2. Selezionare Aggiungi autorizzazioni
  2. Selezionare Aggiungi un'autorizzazione Autorizzazioni>delegate di Microsoft Graph>

    1. Controllare Application.Read.All
    2. Controllare Directory.AccessAsUser.All
    3. Controllare Group.Read.All
    4. Controllare User.Read.All
    5. Selezionare Aggiungi autorizzazioni
  3. Selezionare Concedi consenso amministratore

Screenshot of application permissions in the Azure portal.

Nota

Per concedere Amministrazione il consenso alle autorizzazioni precedenti, l'account Microsoft Entra richiede il ruolo Global Amministrazione istrator o Privileged Role Amministrazione istrator.

Creare e assegnare un certificato

  1. Passare alla portale di Azure, selezionare Insiemi di credenziali delle chiavi e selezionare l'insieme di credenziali delle chiavi che si vuole usare o crearne uno nuovo. Selezionare Certificati>Genera/Importa

    1. Per il metodo di creazione del certificato, usare Generate.

    2. Aggiungere un nome e un oggetto del certificato.

    3. Il periodo di validità consigliato è al massimo 12 mesi. Il resto dei valori può essere lasciato come predefinito.

    4. Seleziona Crea.

    Screenshot of creating certificate in the Azure portal.

    Nota

    Dopo aver creato il certificato, potrebbe essere disabilitato. Aggiornare il sito e il certificato verrà visualizzato come abilitato.

  2. Passare al nuovo certificato e selezionare la riga per la versione più recente del certificato. Selezionare Download in formato CER per salvare la chiave pubblica del certificato.

    Screenshot of certificate in the Azure portal where you can view and download the certificate.

    Nota

    Questa operazione non deve essere eseguita nell'host di SQL Server. Invece, qualsiasi client che accederà al portale di Azure per il passaggio successivo.

  3. Nella portale di Azure passare alla registrazione dell'app creata in precedenza e selezionare l'elenco Certificati

    1. Selezionare Carica certificato.
    2. Selezionare la chiave pubblica (.cer file) scaricata nell'ultimo passaggio.
    3. Selezionare Aggiungi.

    Screenshot of certificate and secrets menu in the Azure portal.

  4. Nella portale di Azure passare all'istanza di Azure Key Vault in cui è archiviato il certificato e selezionare Criteri di accesso dal menu di spostamento.

    1. Seleziona Crea.

    2. Per Autorizzazioni segrete, seleziona Get e List.

    3. Per Autorizzazioni certificato seleziona Get e List.

    4. Selezionare Avanti.

    5. Nella pagina Entità cerca il nome dell'istanza di Machine - Azure Arc, ovvero il nome host dell'host di SQL Server.

      Screenshot of Azure Arc server resource in portal.

    6. Ignora la pagina Applicazione (facoltativa) selezionando Avanti due volte oppure selezionando Rivedi e crea.

      Verifica che l'"ID oggetto" dell’Entità corrisponda all'ID entità dell'identità gestita assegnata all'istanza.

      Screenshot of Azure portal to review and create access policy.

      Per confermare, vai alla pagina della risorsa e seleziona Visualizzazione JSON in alto a destra nella casella Essentials nella pagina Panoramica. In Identity (Identità ) si troverà il principalId

      Screenshot of portal control of JSON view of machine definition.

    7. Seleziona Crea.

    Devi selezionare Crea per assicurarti che vengano applicate le autorizzazioni. Per assicurarti che le autorizzazioni siano state archiviate, aggiorna la finestra del browser e verifica che la riga per l'istanza di Azure Arc sia ancora presente.

    Screenshot of adding access policy to the key vault in the Azure portal.

Configurare l'autenticazione di Microsoft Entra per SQL Server tramite portale di Azure

Nota

È disponibile l'uso del modello dell'interfaccia della riga di comando di Azure, PowerShell o ARM per configurare un amministratore di Microsoft Entra per SQL Server.

  1. Passare al portale di Azure e selezionare SQL Server - Azure Arc e selezionare l'istanza per l'host di SQL Server.

  2. Controlla lo stato della risorsa SQL Server - Azure Arc e verifica se è connessa dal menu Proprietà. Per altre informazioni, vedere Convalidare le risorse di SQL Server - Azure Arc.

  3. Selezionare Microsoft Entra ID e Purview in Impostazioni nel menu della risorsa.

  4. Selezionare Imposta Amministrazione per aprire il riquadro MICROSOFT Entra ID e scegliere un account da impostare come account di accesso amministratore per SQL Server.

  5. Selezionare Certificato gestito dal cliente e Selezionare un certificato.

  6. Selezionare Cambia certificato e selezionare l'istanza di AKV e il certificato creati in precedenza nel nuovo riquadro.

  7. Selezionare Registrazione app gestita dal cliente.

  8. Selezionare Cambia registrazione app e selezionare la registrazione dell'app creata in precedenza.

  9. Seleziona Salva. In questo modo viene inviata una richiesta all'agente server Arc, che configura l'autenticazione di Microsoft Entra per l'istanza di SQL Server.

    Screenshot of setting Microsoft Entra authentication in the Azure portal.

    Sono necessari alcuni minuti per scaricare i certificati e configurare le impostazioni. Dopo aver impostato tutti i parametri e aver selezionato Salva nel portale di Azure, potrebbe essere visualizzato il messaggio seguente: SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing. Attendere che il processo di salvataggio venga confermato con Saved successfully, prima di tentare un account di accesso a Microsoft Entra.

    L'agente server di Azure Arc può essere aggiornato solo dopo il completamento dell'azione precedente. Ciò significa che il salvataggio di una nuova configurazione di Microsoft Entra prima che l'ultimo abbia finalizzato può causare un errore. Se viene visualizzato il messaggio Chiamata estesa non riuscita quando si seleziona Salva, attendere 5 minuti e riprovare.

    Nota

    Quando all'account di accesso amministratore di Microsoft Entra viene concesso il sysadmin ruolo, la modifica dell'amministratore di Microsoft Entra nel portale di Azure non rimuove l'account di accesso precedente che rimane come .sysadmin Per rimuovere l'account di accesso, è necessario eliminarlo manualmente.

    La modifica dell'amministratore di Microsoft Entra per l'istanza di SQL Server viene eseguita senza un riavvio del server, una volta completato il processo con l'agente Azure Arc di SQL Server. Affinché il nuovo amministratore venga visualizzato in sys.server_principals, è necessario riavviare l'istanza di SQL Server e fino a quando non viene visualizzato il vecchio amministratore. L'amministratore corrente di Microsoft Entra può essere archiviato nel portale di Azure.

Creare account di accesso e utenti

Dopo che l'agente di Azure Arc nell'host SQL Server ha completato l'operazione, l'account amministratore selezionato nel menu MICROSOFT Entra ID nel portale sarà un nell'istanza sysadmin di SQL Server. Accedere a SQL Server con l'account amministratore di Microsoft Entra che dispone sysadmin delle autorizzazioni per il server usando un client come SSMS o Azure Data Studio.

Nota

Tutte le connessioni a SQL Server eseguite con l'autenticazione Microsoft Entra richiedono una connessione crittografata. Se il database Amministrazione istrator (DBA) non ha configurato un certificato SSL/TLS attendibile per il server, è probabile che gli account di accesso avranno esito negativo con il messaggio La catena di certificati è stata emessa da un'autorità non attendibile. Per risolvere questo problema, configurare l'istanza di SQL Server per l'uso di un certificato SSL/TLS considerato attendibile dal client o selezionare certificato server attendibile nelle proprietà di connessione avanzate. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database.

Creare la sintassi di accesso

La stessa sintassi per la creazione di account di accesso e utenti di Microsoft Entra in database SQL di Azure e Istanza gestita di SQL di Azure ora può essere usata in SQL Server.

Nota

In SQL Server, tutti gli account che hanno l'autorizzazione ALTER ANY LOGIN o ALTER ANY USER possono creare rispettivamente account di accesso o utenti di Microsoft Entra. L'account non deve essere un account di accesso di Microsoft Entra.

Per creare un account di accesso per un account Microsoft Entra, eseguire il comando T-SQL seguente nel master database:

CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;

Per gli utenti, il nome dell'entità deve essere nel formato user@tenant.com. In Microsoft Entra ID si tratta del nome dell'entità utente. Per tutti gli altri tipi di account, ad esempio i gruppi o le applicazioni Di Microsoft Entra, il nome principale è il nome dell'oggetto Microsoft Entra.

Ecco alcuni esempi:

-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO

Per elencare gli account di accesso di Microsoft Entra nel master database, eseguire il comando T-SQL:

SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');

Per concedere a un utente Microsoft Entra l'appartenenza al sysadmin ruolo ,ad esempio admin@contoso.com, eseguire i comandi seguenti in master:

CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER; 
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO

La sp_addsrvrolemember stored procedure deve essere eseguita come membro del ruolo del server SQL Server sysadmin .

Creare la sintassi utente

È possibile creare un utente di database da Microsoft Entra ID come utente di database associato a un'entità server (account di accesso) o come utente del database indipendente.

Per creare un utente di Microsoft Entra da un account di accesso di Microsoft Entra in un database di SQL Server, utilizzare la sintassi seguente:

CREATE USER [principal_name] FROM LOGIN [principal_name];

La principal_name sintassi è identica a quella per gli account di accesso.

Di seguito sono riportati alcuni esempi.

-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO

Per creare un utente di database indipendente di Microsoft Entra, ovvero un utente non associato a un account di accesso al server, è possibile eseguire la sintassi seguente:

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

Usare il nome del gruppo Microsoft Entra o il nome dell'applicazione Microsoft Entra come <principal name> quando si crea un utente del database Microsoft Entra da un gruppo o un'applicazione.

Di seguito sono riportati alcuni esempi.

-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO

Per elencare gli utenti creati nel database, eseguire il comando T-SQL seguente:

SELECT * FROM sys.database_principals;

Un nuovo utente del database ha l'autorizzazione Connessione per impostazione predefinita. Tutte le altre autorizzazioni di SQL Server devono essere concesse in modo esplicito dai responsabili autorizzati.

Account guest Microsoft Entra

La CREATE LOGIN sintassi e CREATE USER supporta anche gli utenti guest. Ad esempio, se testuser@outlook.com viene invitato al contoso.com tenant, può essere aggiunto come account di accesso a SQL Server con la stessa sintassi della creazione di qualsiasi altro utente o account di accesso di Microsoft Entra. Quando si creano utenti guest e account di accesso, usare il messaggio di posta elettronica di origine dell'account guest, non il nome dell'entità utente nel tenant. Negli esempi viene outlook.com fornito anche se l'account è registrato nel contoso.com tenant.

Creare un utente guest da un account di accesso esistente

CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];

Creare un utente guest come utente indipendente

CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;

Connessione con un metodo di autenticazione supportato

SQL Server supporta diversi metodi di autenticazione di Microsoft Entra:

  • Default
  • Nome utente e password
  • Integrato
  • Universale con autenticazione a più fattori
  • Entità servizio
  • Identità gestita
  • Token di accesso

Usare uno di questi metodi per connettersi all'istanza di SQL Server. Per altre informazioni, vedere Autenticazione di Microsoft Entra per SQL Server.

Esempio di autenticazione con SSMS

Nota

Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, Azure AD rimane ancora in alcuni elementi codificati, ad esempio campi dell'interfaccia utente, provider di connessioni, codici di errore e cmdlet. In questo articolo i due nomi sono intercambiabili.

Di seguito è riportato lo snapshot della pagina di connessione di SQL Server Management Studio (SSMS) usando il metodo di autenticazione Azure Active Directory - Universale con MFA.

Screenshot SSMS showing the Connect to Server window.

Durante il processo di autenticazione, un database in cui è stato creato l'utente deve essere indicato in modo esplicito in SSMS. Espandere Opzioni > Connessione proprietà > Connessione al database: database_name.

Per altre informazioni, vedere Uso dell'autenticazione a più fattori di Microsoft Entra.

Gli strumenti di SQL Server che supportano l'autenticazione Di Microsoft Entra per Azure SQL sono supportati anche per SQL Server 2022 (16.x).

Posizione in cui vengono archiviati i parametri ID di Microsoft Entra

Avviso

I parametri ID di Microsoft Entra sono configurati dall'agente di Azure Arc e non devono essere riconfigurati manualmente.

In Linux i parametri ID Di Microsoft Entra vengono archiviati in mssql-conf. Per altre informazioni sulle opzioni di configurazione in Linux, vedere Configurare SQL Server in Linux con lo strumento mssql-conf.

Problemi noti

  • L'aggiornamento del certificato non viene propagato:
    • Dopo aver configurato l'autenticazione di Microsoft Entra per SQL Server, l'aggiornamento del certificato in SQL Server - ID Microsoft Entra della risorsa di Azure Arc e il riquadro Purview potrebbero non propagarsi completamente. In questo modo il salvataggio viene eseguito correttamente , ma il valore precedente viene ancora visualizzato. Per aggiornare il certificato, eseguire le operazioni seguenti:

      • Selezionare Rimuovi Amministrazione.
      • Seleziona Salva.
      • Selezionare Imposta Amministrazione e riconfigurare l'autenticazione di Microsoft Entra con il nuovo certificato.
      • Seleziona Salva.

Vedi anche