Integrazione con Microsoft Entra ID

L'integrazione di Cloud SQL per SQL Server con Microsoft Entra ID fornisce la gestione di identità e accessi (IAM) centralizzata per i tuoi database utilizzando il tenant Microsoft Entra ID esistente.

Questa integrazione offre i seguenti vantaggi:

  • Autenticazione centralizzata. Consente a utenti e applicazioni di accedere alle proprie istanze Cloud SQL per SQL Server utilizzando le identità Microsoft Entra ID esistenti senza dover reinserire una password. Questa funzionalità elimina la necessità di gestire accessi e password separati specifici per SQL Server.

  • Sicurezza avanzata. Ti aiuta ad applicare le policy di sicurezza esistenti della tua organizzazione, come l'autenticazione a più fattori (MFA) e le regole di accesso condizionale (CA), a livello di database.

  • Gestione utenti semplificata: Quando l'account Microsoft Entra ID di un utente viene disattivato o rimosso, l'accesso al database dell'utente viene revocato automaticamente. Questa funzionalità semplifica l'offboarding e le revisioni degli accessi.

Prerequisiti per l'integrazione

Per utilizzare l'integrazione di Cloud SQL per SQL Server con Microsoft Entra ID, l'istanza deve soddisfare i seguenti requisiti:

  1. Devi avere un'istanza esistente o crearne una nuova.

    L'autenticazione Microsoft Entra ID è supportata solo su SQL Server 2022 o versioni successive; non è disponibile su SQL Server 2017 o SQL Server 2019.

  2. Attiva l'autenticazione Microsoft Entra ID.

    Prima di attivare l'autenticazione Microsoft Entra ID, completa i seguenti passaggi nel portale di Azure:

    1. Trova l'ID tenant di Microsoft Entra.
    2. Crea una nuova registrazione dell'applicazione in Microsoft Entra ID.

      Cloud SQL per SQL Server utilizza questa applicazione per comunicare con l'ID tenant di Microsoft Entra. Quando crei l'applicazione, prendi nota dell'ID applicazione o ID client.

    3. Concedi all'applicazione le autorizzazioni per leggere i dati della directory:

      1. Seleziona la registrazione dell'applicazione appena creata, quindi fai clic su API permissions (Autorizzazioni API).
      2. Seleziona Aggiungi un'autorizzazione > Microsoft Graph > Autorizzazioni applicazione.
      3. Concedi uno dei seguenti set di autorizzazioni:
        • Opzione 1.
          • Directory.Read.All
        • Opzione 2. Fornisce autorizzazioni più specifiche.
          • Application.Read.All
          • Group.Read.All
          • User.Read.All
      4. Concedi il consenso amministratore a livello di tenant per consentire all'applicazione di utilizzare queste autorizzazioni.

Connettività di rete

Microsoft Entra ID è un servizio pubblico che utilizza endpoint pubblici per l'autenticazione. Affinché l'autenticazione Microsoft Entra ID funzioni correttamente, l'istanza Cloud SQL deve essere in grado di stabilire connessioni in uscita verso questi endpoint pubblici. Le sezioni seguenti illustrano i passaggi successivi in base alla configurazione della connessione di rete dell'istanza:

Istanze con un IP pubblico

Se la tua istanza Cloud SQL è configurata con un indirizzo IP pubblico, ha accesso in uscita integrato a internet.

Sebbene non sia necessaria alcuna configurazione di rete aggiuntiva per il funzionamento dell'autenticazione Microsoft Entra ID, consulta le limitazioni prima di continuare.

Istanze con un IP privato

Se l'istanza Cloud SQL è configurata solo con un indirizzo IP privato, non ha accesso diretto a internet. Devi configurare un percorso in uscita per consentire all'istanza di raggiungere gli endpoint di identità pubblici di Microsoft. La configurazione dell'integrazione di Microsoft Entra ID dipende dalla configurazione dell'istanza privata:

Private Service Connect

Se l'istanza Cloud SQL è configurata per utilizzare un indirizzo IP privato, ti consigliamo di utilizzare Private Service Connect per abilitare Microsoft Entra ID, in quanto elimina alcune attività di manutenzione overhead, come le seguenti:

  • Gestione delle VM bastion host.
  • Mantenimento delle route.
  • Creazione di route troppo ampie, come quelle richieste per la connettività PSA.

Prima di continuare, esamina le limitazioni per l'utilizzo di Microsoft Entra ID.

Per abilitare la connettività, devi configurare Cloud Network Address Translation (Cloud NAT) nel VPC consumer. In questo modo, l'istanza abilitata per PSC può utilizzare il gateway Cloud NAT per il traffico in uscita verso gli endpoint Microsoft pubblici. Una volta attivato, il routing interno limita il traffico in modo che solo il traffico correlato a Microsoft Entra ID raggiunga l'istanza Cloud NAT.

Per abilitare la connettività, completa i seguenti passaggi obbligatori:

  1. Crea un'istanza abilitata per PSC.
  2. Configura la connettività in uscita per l'istanza Cloud SQL.
  3. Crea un gateway Cloud NAT.

Accesso privato ai servizi

Se l'istanza Cloud SQL è configurata per utilizzare un indirizzo IP privato e utilizzi PSA, per abilitare la connettività a Microsoft Entra ID sono necessari i seguenti passaggi:

  1. Esegui il deployment di una VM bastion host all'interno del VPC.

    Quando crei una VM bastion host nel tuo progetto, l'IP forwarding deve essere abilitato. Se hai creato una VM bastion host basata su Linux, configurala in modo che esegua l'IP forwarding:

    sudo sysctl net.ipv4.conf.all.forwarding=1
    sudo iptables --table nat --append POSTROUTING --out-interface  ens4 -j MASQUERADE
    
  2. Configura le route di rete necessarie per indirizzare il traffico di autenticazione di Microsoft Entra ID dall'istanza Cloud SQL tramite la VM host bastion per raggiungere internet.

    Aggiungi le route corrispondenti per ogni endpoint Microsoft Entra ID. Puoi trovare gli intervalli IP attuali nella sezione AzureActiveDirectory del file di risorse Azure IP Ranges and Service Tags. Ad esempio, gli endpoint di accesso di Microsoft Entra ID, come login.microsoftonline.com, utilizzano indirizzi IP negli intervalli 20.190.128.0/18 e 40.126.0.0/18.

    gcloud

    Per ogni intervallo IP di Microsoft Entra ID, crea due route, sostituendo VM_NAME e VM_ZONE con il nome e la zona effettivi della VM bastion host:

    gcloud --project=PROJECT_ID compute routes create NAME \
      --network=NETWORK --destination-range=RANGE \
      --priority=998 --next-hop-gateway=default-internet-gateway
    
    gcloud  --project=PROJECT_ID compute routes create NAME \
      --network=NETWORK --destination-range=RANGE --priority=999 \
      --next-hop-instance=VM_NAME --next-hop-instance-zone=VM_ZONE \
      --next-hop-ilb=ILB_VALUE
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza Cloud SQL.
    • NAME: il nome della route che vuoi creare.
    • NETWORK: il nome della rete in cui si trova l'istanza Cloud SQL.
    • RANGE: l'intervallo IP che vuoi utilizzare.
    • VM_NAME: il nome della VM bastion host che vuoi includere.
    • VM_ZONE: la zona della VM bastion host che vuoi includere, ad esempio us-central1.
    • ILB_VALUE: (Facoltativo) Il nome o l'indirizzo IP di una regola di forwarding per un bilanciatore del carico TCP/UDP interno. Se hai configurato un bilanciatore del carico davanti alle VM bastion host, devi includere il flag --next-hop-ilb in questo comando.

      Per saperne di più, consulta Bilanciatori del carico di rete passthrough interni come hop successivi.

    Un esempio potrebbe essere il seguente:

    gcloud  --project=my-customer-project compute routes create my-route-1 --network=default --destination-range=20.20.32.0/27 --priority=998 --next-hop-gateway=default-internet-gateway
    
    gcloud  --project=my-customer-project compute routes create my-route-2 --network=default --destination-range=20.20.32.0/27 --priority=999 --next-hop-instance=my-bastion-vm --next-hop-instance-zone=us-central1-c --next-hop-ilb=fr-ilb1
    
  3. Utilizza lo stesso comando del passaggio precedente per applicare la stessa configurazione per consentire il traffico per i controlli di revoca dei certificati di Microsoft Entra ID. Utilizza gli intervalli IP elencati nella pagina Indirizzo IP dello stato del certificato DigiCert.

    Se non completi questo passaggio, l'autenticazione Microsoft Entra ID potrebbe comunque funzionare, ma potresti anche riscontrare ritardi nell'apertura di nuove connessioni.

Gestisci l'autenticazione Microsoft Entra ID

Puoi attivare l'autenticazione Entra ID per un'istanza nuova o esistente.

Crea un'istanza con l'autenticazione Microsoft Entra ID abilitata

Puoi attivare l'autenticazione Microsoft Entra ID quando crei una nuova istanza Cloud SQL per SQL Server. Devi fornire l'ID tenant Microsoft Entra e l'ID applicazione (ID client) specifici della registrazione dell'app che hai configurato nel portale Azure.

Per saperne di più, consulta i Prerequisiti.

gcloud

gcloud sql instances create INSTANCE_NAME \
    --database-version=EDITION \
    --tier=TIER \
    --network=NETWORK
    --root-password=PASSWORD
    --entra-id-tenant-id=TENANT_ID \
    --entra-id-application-id=APPLICATION_ID

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza che vuoi creare.
  • EDITION: la versione dell'istanza che vuoi utilizzare, ad esempio SQLSERVER_2025_STANDARD.
  • TIER: il livello dell'istanza o il tipo di macchina che vuoi utilizzare, ad esempio db-custom-2-3840.
  • NETWORK: il nome della rete che vuoi utilizzare.
  • PASSWORD: la password dell'istanza.
  • TENANT_ID: l'ID tenant di Microsoft Entra.
  • APPLICATION_ID: l'ID applicazione o client.

Un esempio potrebbe essere il seguente:

gcloud sql instances create my-entraid-instance \
    --database-version=SQLSERVER_2025_STANDARD \
    --tier=db-custom-2-3840 \
    --assign-ip \
    --root-password=D61Xv36f!0lE \
    --entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
    --entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd

REST v1

Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di una richiesta JSON, consulta Impostazioni.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il nome del progetto in cui si troverà l'istanza che vuoi creare.
  • INSTANCE_ID: l'ID dell'istanza che vuoi creare.
  • EDITION: la versione dell'istanza che vuoi utilizzare, ad esempio SQLSERVER_2022_STANDARD.
  • REGION: la regione in cui vuoi che risieda l'istanza, ad esempio us-central1.
  • PASSWORD: la password dell'istanza.
  • TIER: il livello dell'istanza o il tipo di macchina che vuoi utilizzare, ad esempio db-custom-2-3840.
  • NETWORK: il nome della rete che vuoi utilizzare.
  • TENANT_ID: l'ID tenant di Microsoft Entra.
  • APPLICATION_ID: l'ID applicazione o client.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "databaseVersion":"EDITION",
  "name":"INSTANCE_ID",
  "region":"REGION",
  "rootPassword":"PASSWORD",
  "settings":
  {
    "tier":"TIER",
    "ipConfiguration":
      {
        "privateNetwork":"NETWORK"
      },
    "entraidConfig":
    {
      "tenantId": "TENANT_ID",
      "applicationId": "APPLICATION_ID"
    }
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di una richiesta JSON, consulta Impostazioni.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il nome del progetto in cui si troverà l'istanza che vuoi creare.
  • INSTANCE_ID: l'ID dell'istanza che vuoi creare.
  • EDITION: la versione dell'istanza che vuoi utilizzare, ad esempio SQLSERVER_2022_STANDARD.
  • REGION: la regione in cui vuoi che risieda l'istanza, ad esempio us-central1.
  • PASSWORD: la password dell'istanza.
  • TIER: il livello dell'istanza o il tipo di macchina che vuoi utilizzare, ad esempio db-custom-2-3840.
  • NETWORK: il nome della rete che vuoi utilizzare.
  • TENANT_ID: l'ID tenant di Microsoft Entra.
  • APPLICATION_ID: l'ID applicazione o client.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "databaseVersion":"EDITION",
  "name":"INSTANCE_ID",
  "region":"REGION",
  "rootPassword":"PASSWORD",
  "settings":
  {
    "tier":"TIER",
    "ipConfiguration":
      {
        "privateNetwork":"NETWORK"
      },
    "entraidConfig":
    {
      "tenantId": "TENANT_ID",
      "applicationId": "APPLICATION_ID"
    }
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Gestisci l'autenticazione Microsoft Entra ID su un'istanza esistente

Puoi attivare, modificare o disattivare la configurazione di Microsoft Entra ID su un'istanza esistente in qualsiasi momento.

Per modificare la configurazione dell'istanza, devi applicare una patch all'istanza con i nuovi valori o i valori eliminati dell'ID tenant e dell'ID applicazione (client).

Questa procedura non prevede l'unione o la disunione di un dominio.

Puoi aggiornare i valori dell'ID tenant e dell'ID applicazione senza attivare o disattivare l'integrazione con Microsoft Entra ID.

gcloud

gcloud sql instances patch INSTANCE_NAME \
    --entra-id-tenant-id="NEW_TENANT_ID" \
    --entra-id-application-id="NEW_APPLICATION_ID"

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza che vuoi modificare.
  • NEW_TENANT_ID: il nuovo ID tenant di Microsoft Entra. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
  • NEW_APPLICATION_ID: il nuovo ID applicazione o client. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.

Un esempio potrebbe essere il seguente:

gcloud sql instances patch my-existing-instance \
    --entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
    --entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd

REST v1

Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di una richiesta JSON, consulta Impostazioni.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID del progetto in cui si trova l'istanza che vuoi modificare.
  • INSTANCE_ID: l'ID dell'istanza che vuoi modificare.
  • TENANT_ID: l'ID tenant di Microsoft Entra. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
  • APPLICATION_ID: l'ID applicazione o client. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "settings":
  {
    "entraidConfig":
    {
      "tenantId": "NEW_TENANT_ID",
      "applicationId": "NEW_APPLICATION_ID"
    }
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di una richiesta JSON, consulta Impostazioni.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID del progetto in cui si trova l'istanza che vuoi modificare.
  • INSTANCE_ID: l'ID dell'istanza che vuoi modificare.
  • TENANT_ID: l'ID tenant di Microsoft Entra. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
  • APPLICATION_ID: l'ID applicazione o client. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "settings":
  {
    "entraidConfig":
    {
      "tenantId": "NEW_TENANT_ID",
      "applicationId": "NEW_APPLICATION_ID"
    }
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Aggiungi il certificato all'applicazione

Affinché Microsoft Entra ID possa autenticare l'istanza Cloud SQL per SQL Server, devi caricare il certificato pubblico dell'istanza Cloud SQL per SQL Server nella registrazione dell'app Microsoft Entra ID.

  1. Dopo aver attivato l'autenticazione Microsoft Entra ID nell'istanza, crea un certificato specifico per l'istanza per Microsoft Entra ID.

    gcloud

    gcloud sql ssl entraid-certs create --instance=INSTANCE_NAME
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza per cui vuoi creare un certificato.

    REST v1

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-01T19:13:21.834Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    REST v1beta4

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-01T19:13:21.834Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    
  2. Recupera i dettagli dell'istanza per ottenere i dettagli del certificato appena creato:

    gcloud

    gcloud sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza associata al certificato appena creato.

    REST v1

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.

    Questo comando stampa un certificato che puoi salvare in un file e poi caricare nel portale di Azure.

    Devi rimuovere tutti i caratteri di nuova riga incorporati dal file e separare manualmente ogni nuova riga. In caso contrario, il caricamento del file non andrà a buon fine.

    Ad esempio, potresti ricevere una stringa di testo simile alla seguente:

    Line1\Line2\Line3
    

    Devi separare manualmente ogni riga, in modo simile al seguente:

    Line1
    Line2
    Line3
    

    In alternativa, se non vuoi eseguire questa attività manualmente, utilizza il seguente comando:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto in cui si trova l'istanza.
    • INSTANCE_NAME: il nome dell'istanza associata al certificato che hai appena creato.

    REST v1beta4

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.

    Questo comando stampa un certificato che puoi salvare in un file e poi caricare nel portale di Azure.

    Devi rimuovere tutti i caratteri di nuova riga incorporati dal file e separare manualmente ogni nuova riga. In caso contrario, il caricamento del file non andrà a buon fine.

    Ad esempio, potresti ricevere una stringa di testo simile alla seguente:

    Line1\Line2\Line3
    

    Devi separare manualmente ogni riga, in modo simile al seguente:

    Line1
    Line2
    Line3
    

    In alternativa, se non vuoi eseguire questa attività manualmente, utilizza il seguente comando:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto in cui si trova l'istanza.
    • INSTANCE_NAME: il nome dell'istanza associata al certificato appena creato.
  3. Aggiungi il certificato al portale di Azure.

    1. Vai alla sezione Registrazione app nel portale di Azure.
    2. Apri Certificates & secrets (Certificati e secret).
    3. Seleziona Carica certificato. Sfoglia per trovare il file del certificato recuperato dall'istanza e aggiungilo.
    4. Fai clic su OK.

Ruota il certificato Microsoft Entra ID

Devi ruotare il certificato Microsoft Entra ID prima della scadenza. Ti consigliamo di avviare questa procedura almeno una settimana prima della data di scadenza prevista:

  1. Segui i passaggi descritti in Aggiungi il certificato all'applicazione per creare un nuovo certificato non attivo nell'istanza Cloud SQL per SQL Server e poi caricalo in Microsoft Entra ID utilizzando il portale Azure. Questa operazione non influisce sul certificato attivo corrente.

  2. Attiva il nuovo certificato nell'istanza Cloud SQL per SQL Server, in modo che Cloud SQL per SQL Server inizi a utilizzarlo per tutte le nuove autenticazioni.

    gcloud

    gcloud sql ssl entraid-certs rotate --instance=INSTANCE_NAME
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza associata al certificato di cui vuoi eseguire la rotazione.

    REST v1

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.

    REST v1beta4

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.

  3. Ora l'istanza utilizza il nuovo certificato.

    Puoi rimuovere in sicurezza il vecchio certificato dalla registrazione dell'app Microsoft Entra ID e dall'istanza Cloud SQL per SQL Server. Per saperne di più, consulta Aggiungi e gestisci le credenziali dell'applicazione in Microsoft Entra ID.

Esegui il rollback del certificato Microsoft Entra ID

Se riscontri problemi dopo la rotazione a un nuovo certificato, puoi eseguire il rollback al certificato precedente.

Per eseguire un rollback, il certificato precedente deve essere ancora valido e deve essere ancora considerato attendibile dalla registrazione dell'app Microsoft Entra ID.

I seguenti comandi riattivano immediatamente il certificato precedente specificato nell'istanza Cloud SQL per SQL Server.

gcloud

gcloud sql ssl entraid-certs rollback --instance=INSTANCE_NAME

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza associata al certificato di cui vuoi eseguire il rollback.

REST v1

Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, consulta Impostazioni.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID del progetto in cui si trova l'istanza
  • INSTANCE_ID: l'ID dell'istanza per cui vuoi eseguire il rollback del certificato.
  • CERTIFICATE_NAME: il nome del nuovo certificato che vuoi utilizzare per sostituire quello precedente, ad esempio sha1Fingerprint.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate

Corpo JSON della richiesta:

{
  {
  "RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di una richiesta JSON, consulta Impostazioni.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID del progetto in cui si trova l'istanza
  • INSTANCE_ID: l'ID dell'istanza per cui vuoi eseguire il rollback del certificato.
  • CERTIFICATE_NAME: il nome del nuovo certificato che vuoi utilizzare per sostituire quello precedente, ad esempio sha1Fingerprint.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate

Corpo JSON della richiesta:

{
  {
  "RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Crea l'accesso iniziale a Microsoft Entra ID

Dopo aver attivato l'autenticazione Microsoft Entra ID nell'istanza, devi creare i tuoi accessi Microsoft Entra ID.

  1. Crea il primo accesso Microsoft Entra ID.

    Questo accesso iniziale, che rappresenta un utente o un gruppo Microsoft Entra ID, non può essere creato utilizzando T-SQL. Devi crearlo utilizzando gcloud CLI o l'API Cloud SQL Admin:

    gcloud

    gcloud sql users create USER_NAME --instance=INSTANCE_NAME --type=ENTRAID_USER
    

    Sostituisci quanto segue:

    • USER_NAME: il nome dell'utente Cloud SQL per SQL Server che vuoi creare.
    • INSTANCE_NAME: il nome dell'istanza per cui vuoi creare gli accessi Microsoft Entra ID.
    • ENTRAID_USER: il nome utente di Microsoft Entra ID.

    Un esempio potrebbe essere il seguente:

    gcloud sql users create myentraiduser@mytenant.com --instance=my-entraid-instance --type=ENTRAID_USER
    

    REST v1

    Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di una richiesta JSON, consulta Impostazioni.

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza
    • INSTANCE_ID: l'ID dell'istanza per cui vuoi eseguire l'aggiornamento.
    • USER_NAME: il nome dell'utente Cloud SQL per SQL Server che vuoi creare.
    • ENTRAID_USER: il nome utente di Microsoft Entra ID.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

    Corpo JSON della richiesta:

    {
      "name": "USER_NAME"
      "type": "ENTRAID_USER"
    }
    

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-01T19:13:21.834Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    REST v1beta4

    Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di una richiesta JSON, consulta Impostazioni.

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza
    • INSTANCE_ID: l'ID dell'istanza per cui vuoi eseguire l'aggiornamento.
    • USER_NAME: il nome dell'utente Cloud SQL per SQL Server che vuoi creare.
    • ENTRAID_USER: il nome utente di Microsoft Entra ID.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

    Corpo JSON della richiesta:

    {
      "name": "USER_NAME"
      "type": "ENTRAID_USER"
    }
    

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-01T19:13:21.834Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    Una volta creato l'accesso iniziale a Microsoft Entra ID, puoi connetterti al database con quell'utente.

  2. Crea accessi Microsoft Entra ID successivi.

    Puoi creare e gestire altri accessi Microsoft Entra ID come indicato nel passaggio precedente.

    In alternativa, se preferisci utilizzare un altro strumento come SQL Server Management Studio (SSMS), devi prima concedere all'accesso iniziale l'autorizzazione per gestire altri accessi:

    GRANT ALTER ANY LOGIN TO [ENTRA_ID_USER] AS CustomerDbRootRole
    

    Sostituisci ENTRAID_USER con il nome utente di Microsoft Entra ID.

    Una volta concesse le autorizzazioni, questo accesso può creare e gestire altri accessi Microsoft Entra ID utilizzando i comandi T-SQL standard. Un comando di esempio potrebbe essere simile al seguente:

    CREATE LOGIN [<<ENTRA_ID_USER>>] FROM EXTERNAL PROVIDER
    

    Sostituisci ENTRAID_USER con il nome utente di Microsoft Entra ID.

    Per creare utenti in base agli accessi Microsoft Entra ID o per concedere autorizzazioni, utilizza i comandi T-SQL standard.

    Per ulteriori informazioni, incluso come creare un accesso utilizzando la sintassi corretta, consulta Configura l'autenticazione Microsoft Entra per SQL Server con la registrazione dell'app.

Best practice

Per isolare le autorizzazioni e definire meglio i limiti di sicurezza, ti consigliamo vivamente di creare una registrazione dell'applicazione Microsoft Entra ID univoca per ogni istanza Cloud SQL per SQL Server. La revoca delle credenziali dell'applicazione non influirà su altre istanze non correlate.

Per saperne di più, consulta Come registrare un'applicazione in Microsoft Entra ID.

Risoluzione dei problemi

Le sezioni seguenti consentono di risolvere i problemi che potresti riscontrare durante la gestione dell'integrazione di Microsoft Entra ID.

Problemi di connettività di rete con istanze con IP privato

Durante la configurazione dell'integrazione, potresti riscontrare alcuni dei seguenti problemi:

  • Operazioni lente per creare accessi Microsoft Entra ID
  • Impossibile creare gli accessi Microsoft Entra ID
  • Impossibile connettersi all'istanza utilizzando l'autenticazione Microsoft Entra ID

Per risolvere questi problemi, esegui il seguente test di connettività:

  1. All'interno dello stesso progetto Google Cloud e VPC e nella stessa regione dell'istanza Cloud SQL per SQL Server, crea una VM di test configurata solo con un IP privato.

  2. Connettiti alla VM appena creata utilizzando il protocollo RDP (Remote Desktop Protocol) o il protocollo SSH (Secure Shell). Quindi, esegui questi comandi per testare la raggiungibilità. Questi passaggi possono essere applicati sia alle VM basate su Linux che a quelle basate su Windows:

    curl -4iv login.microsoftonline.com
    curl -4iv graph.microsoft.com
    curl -4iv ocsp.digicert.com
    

Se non riesci a raggiungere nessuno di questi endpoint, a causa di timeout o errori di connessione rifiutata, controlla la configurazione di rete per quanto segue:

  • Per Private Service Connect, assicurati che Cloud NAT sia configurato correttamente per consentire l'accesso a internet in uscita.
  • Per l'accesso privato ai servizi, verifica la configurazione delle route personalizzate e dei bastion host.
  • Controlla le regole firewall VPC per assicurarti che il traffico in uscita verso questi domini non sia bloccato.

Messaggi di errore comuni

Durante l'autenticazione di Microsoft Entra ID, potresti riscontrare il seguente errore di accesso:

Login failed for user ""

Per risolvere il problema, assicurati che esista un accesso SQL Server per questo utente Microsoft Entra ID.

Migrazione da Microsoft Active Directory

Nei seguenti scenari, puoi attivare l'autenticazione Microsoft Entra ID senza disattivare l'autenticazione Microsoft Active Directory esistente:

Logging

Per i report su errori e avvisi di base, ad esempio se Microsoft Entra ID è abilitato, utilizza il log sqlserver.err standard. Per informazioni più dettagliate sul monitoraggio e sulla risoluzione dei problemi, utilizza il log entraid.log, che offre informazioni come:

  • Fornisce lo stato della connettività per ogni endpoint richiesto.
  • Segnala i dettagli relativi alle autorizzazioni API mancanti.
  • Indica il numero di giorni rimanenti prima della scadenza del certificato client.
  • Fornisce errori interni specifici, ad esempio errori di acquisizione dei token, che potrebbero aiutarti a individuare la causa di un problema.

Le voci di log vengono aggiornate su base giornaliera o ogni volta che cambia uno stato.

Repliche di lettura

  • Se aggiungi una replica di lettura a un'istanza principale in cui è abilitato Microsoft Entra ID, la replica di lettura viene configurata automaticamente per utilizzare Microsoft Entra ID.
  • Se l'istanza principale ha Microsoft Entra ID abilitato e ripristini un backup in quell'istanza, la replica di lettura associata viene configurata automaticamente per utilizzare Microsoft Entra, poiché l'identità non cambia.
  • Le modifiche all'ID tenant, all'ID applicazione o ai certificati dell'istanza principale vengono propagate automaticamente alle repliche di lettura associate all'istanza.

Pool di lettura gestiti

  • Le modifiche all'ID tenant, all'ID applicazione o ai certificati dell'istanza principale vengono propagate automaticamente ai pool di lettura gestiti associati all'istanza.

Istanze clonate e ripristino in un'altra istanza

L'integrazione di Microsoft Entra ID non viene configurata automaticamente nella nuova istanza nei seguenti scenari:

  • Un clone dell'istanza principale.
  • Un backup ripristinato in un'istanza che non è quella principale.

In questi casi, devi attivare manualmente Microsoft Entra ID sulla nuova istanza e poi ricaricare il certificato nell'applicazione Microsoft Entra ID. Questo requisito è una misura di sicurezza per impedire a più istanze non correlate di utilizzare la stessa identità dell'applicazione.

Limitazioni

  • L'autenticazione Microsoft Entra ID è supportata solo su SQL Server 2022 o versioni successive; non è disponibile su SQL Server 2017 o SQL Server 2019.
  • Se cloni un'istanza o ripristini un backup in un'altra istanza, l'integrazione di Microsoft Entra ID non viene configurata automaticamente nella nuova istanza.
  • Per abilitare l'autenticazione Microsoft Entra ID su un'istanza regionale con un IP pubblico e l'accesso privato ai servizi, l'istanza deve essere configurata per l'utilizzo con una route di accesso privato ai servizi da una VM bastion.
  • Per abilitare l'autenticazione Microsoft Entra ID su un'istanza regionale che utilizza Private Service Connect e l'accesso privato ai servizi, l'istanza deve essere configurata per l'utilizzo con una route di accesso privato ai servizi da una VM bastion.

Passaggi successivi