Usare endpoint privati per Servizio Azure SignalR

È possibile usare endpoint privati per i Servizio Azure SignalR per consentire ai client in una rete virtuale di accedere in modo sicuro ai dati tramite un collegamento privato. L'endpoint privato utilizza un indirizzo IP dallo spazio di indirizzi della VNet per il servizio Azure SignalR. Il traffico di rete tra i client nella rete virtuale e Servizio Azure SignalR attraversa un collegamento privato nella rete backbone Microsoft, eliminando l'esposizione dalla rete Internet pubblica.

L'uso di endpoint privati per il Servizio Azure SignalR consente di:

  • Proteggere il Servizio Azure SignalR usando il controllo di accesso di rete per bloccare tutte le connessioni nell'endpoint pubblico per Servizio Azure SignalR.
  • Aumentare la sicurezza per la rete virtuale (VNet) consentendo di bloccare l'esfiltrazione dei dati dalla rete virtuale.
  • Connettersi in modo sicuro ai Servizi Azure SignalR da reti locali che si connettono alla VNet tramite VPN o ExpressRoute con peering privato.

Questo articolo illustra come usare gli endpoint privati per il Servizio Azure SignalR.

Panoramica dei concetti

Panoramica degli endpoint privati per Servizio Azure SignalR

Un endpoint privato è un'interfaccia di rete speciale per un servizio di Azure nella rete virtuale (VNet). Quando si crea un endpoint privato per il Servizio Azure SignalR, fornisce connettività sicura tra i client nella rete virtuale e il servizio. All'endpoint privato viene assegnato un indirizzo IP dall'intervallo di indirizzi IP della rete virtuale. La connessione tra l'endpoint privato e Servizio Azure SignalR usa un collegamento privato sicuro.

Le applicazioni nella rete virtuale possono connettersi a Servizio Azure SignalR tramite l'endpoint privato senza problemi, usando gli stessi meccanismi di autorizzazione e stringa di connessione usati altrimenti. Gli endpoint privati possono essere usati con tutti i protocolli supportati dalla Servizio Azure SignalR, inclusa l'API REST.

Quando si crea un endpoint privato per un Servizio Azure SignalR nella rete virtuale, viene inviata una richiesta di consenso per l'approvazione al proprietario del Servizio Azure SignalR. Se l'utente che richiede la creazione dell'endpoint privato è anche proprietario del Servizio Azure SignalR, questa richiesta di consenso viene approvata automaticamente.

I proprietari di Servizio Azure SignalR possono gestire le richieste di consenso e gli endpoint privati tramite la scheda Endpoint privati di Servizio Azure SignalR nel portale di Azure.

Suggerimento

Se si vuole limitare l'accesso al Servizio Azure SignalR solo tramite l'endpoint privato, configurare il Controllo di accesso di rete per negare o controllare l'accesso tramite l'endpoint pubblico.

Connessione agli endpoint privati

I client in una rete virtuale che usano l'endpoint privato devono usare lo stesso stringa di connessione per il Servizio Azure SignalR, come i client che si connettono all'endpoint pubblico. Ci si basa sulla risoluzione DNS per instradare automaticamente le connessioni dalla rete virtuale a Servizio Azure SignalR tramite un collegamento privato.

Importante

Usare la stessa stringa di connessione per connettersi ad Servizio Azure SignalR tramite endpoint privati, come si farebbe normalmente. Non connettersi al servizio Azure SignalR tramite l'URL del sottodominio privatelink.

Per impostazione predefinita, viene creata una zona DNS privata collegata alla rete virtuale con gli aggiornamenti necessari per gli endpoint privati. Tuttavia, se si usa il proprio server DNS, potrebbe essere necessario apportare altre modifiche alla configurazione DNS. La sezione Modifiche DNS per gli endpoint privati descrive gli aggiornamenti necessari per gli endpoint privati.

Modifiche al DNS per gli endpoint privati

Quando si crea un endpoint privato, il record di risorse CNAME DNS per il Servizio Azure SignalR viene aggiornato a un alias in un sottodominio con il prefisso privatelink. Per impostazione predefinita, viene anche creata una zona DNS privata, corrispondente al sottodominio privatelink, con i record di risorse A del DNS per gli endpoint privati.

Quando il nome di dominio del servizio Azure SignalR viene risolto dall'esterno della VNet con l'endpoint privato, viene risolto nell'endpoint pubblico del servizio Azure SignalR. Quando viene risolto dalla VNet che ospita l'endpoint privato, il nome di dominio si risolve nell'indirizzo IP dell'endpoint privato.

Nell'esempio illustrato, i record di risorse DNS per il Servizio Azure SignalR 'foobar', se risolti dall'esterno della rete virtuale che ospita l'endpoint privato, saranno:

Nome Tipo Valore
foobar.service.signalr.net CNAME foobar.privatelink.service.signalr.net
foobar.privatelink.service.signalr.net A <Servizio Azure SignalR indirizzo IP pubblico>

Come accennato in precedenza, è possibile negare o controllare l'accesso per i client esterni alla rete virtuale tramite l'endpoint pubblico usando il controllo di accesso alla rete.

I record di risorse DNS per "foobar", se risolti da un client nella rete virtuale che ospita l'endpoint privato, saranno:

Nome Tipo Valore
foobar.service.signalr.net CNAME foobar.privatelink.service.signalr.net
foobar.privatelink.service.signalr.net A 10.1.1.5

Questo approccio consente l'accesso a Servizio Azure SignalR usando la stessa stringa di connessione per i client nella rete virtuale che ospita gli endpoint privati e i client all'esterno della rete virtuale.

Se utilizzi un server DNS personalizzato nella tua rete, i client devono essere in grado di risolvere l'FQDN dell'endpoint del servizio Azure SignalR nell'indirizzo IP dell'endpoint privato. È necessario configurare il server DNS per delegare il sottodominio di collegamento privato alla zona DNS privata per la rete virtuale, o configurare i record A per foobar.privatelink.service.signalr.net con l'indirizzo IP dell'endpoint privato.

Suggerimento

Quando si usa un server DNS personalizzato o on-premises, è necessario configurare il server DNS in modo che risolva il nome del servizio Azure SignalR nel sottodominio privatelink all'indirizzo IP dell'endpoint privato. A tale scopo, è possibile delegare il privatelink sottodominio alla zona DNS privata della rete virtuale o configurare la zona DNS nel server DNS e aggiungere i record DNS A.

Il nome della zona DNS consigliato per gli endpoint privati per Servizio Azure SignalR è: privatelink.service.signalr.net.

Per altre informazioni sulla configurazione di un server DNS personalizzato per supportare gli endpoint privati, vedere gli articoli seguenti:

Creare un endpoint privato

Creare un endpoint privato insieme a un nuovo Servizio Azure SignalR nel portale di Azure

  1. Quando si crea un nuovo Servizio Azure SignalR, selezionare scheda Rete. Scegliere Endpoint privato come metodo di connettività.

  2. Selezionare Aggiungi. Inserire la sottoscrizione, il gruppo di risorse, la località e il nome per il nuovo endpoint privato. Scegliere una rete virtuale e una subnet.

  3. Selezionare Rivedi e crea.

Creare un endpoint privato per un Servizio Azure SignalR esistente nella portale di Azure

  1. Passare al Servizio Azure SignalR.

  2. Selezionare il menu delle impostazioni denominato Connessioni endpoint privato.

  3. Selezionare il pulsante + Endpoint privato nella parte superiore.

  4. Immettere sottoscrizione, gruppo di risorse, nome della risorsa e area per il nuovo endpoint privato.

  5. Scegliere la risorsa Servizio Azure SignalR di destinazione.

  6. Scegliere la rete virtuale di destinazione

  7. Selezionare Rivedi e crea.

Creare un endpoint privato con l'interfaccia della riga di comando di Azure

  1. Accedere all'interfaccia della riga di comando di Azure
    az login
    
  2. Impostare la sottoscrizione di Azure
    az account set --subscription {AZURE SUBSCRIPTION ID}
    
  3. Creare un nuovo gruppo di risorse
    az group create -n {RG} -l {AZURE REGION}
    
  4. Registrare Microsoft.SignalRService come provider
    az provider register -n Microsoft.SignalRService
    
  5. Creare un nuovo Servizio Azure SignalR
    az signalr create --name {NAME} --resource-group {RG} --location {AZURE REGION} --sku Standard_S1
    
  6. Creare un Rete virtuale
    az network vnet create --resource-group {RG} --name {vNet NAME} --location {AZURE REGION}
    
  7. Aggiungere una subnet
    az network vnet subnet create --resource-group {RG} --vnet-name {vNet NAME} --name {subnet NAME} --address-prefixes {addressPrefix}
    
  8. Disabilitare i criteri di Rete virtuale
    az network vnet subnet update --name {subnet NAME} --resource-group {RG} --vnet-name {vNet NAME} --disable-private-endpoint-network-policies true
    
  9. Aggiungere una zona DNS privato
    az network private-dns zone create --resource-group {RG} --name privatelink.service.signalr.net
    
  10. Collega la zona DNS privata alla rete virtuale
    az network private-dns link vnet create --resource-group {RG} --virtual-network {vNet NAME} --zone-name privatelink.service.signalr.net --name {dnsZoneLinkName} --registration-enabled true
    
  11. Creare un endpoint privato (approvazione automatica)
    az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.SignalRService/SignalR/{NAME}" --group-ids signalr --connection-name {Private Link Connection Name} --location {AZURE REGION}
    
  12. Creare un endpoint privato (richiesta manuale di approvazione)
    az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.SignalRService/SignalR/{NAME}" --group-ids signalr --connection-name {Private Link Connection Name} --location {AZURE REGION} --manual-request
    
  13. Mostra stato connessione
    az network private-endpoint show --resource-group {RG} --name {Private Endpoint Name}
    

Endpoint privati con replica geografica

Servizio Azure SignalR viene esposto a un endpoint privato nel suo complesso. Non si crea un endpoint privato che punta a una replica specifica. Invece, è sufficiente un endpoint privato sulla risorsa padre: instrada automaticamente il traffico a una replica integra, proprio come nella rete pubblica, in base alle metriche di integrità e prestazioni.

Il diagramma seguente illustra il flusso del traffico da un client in una rete virtuale a una replica tramite un singolo endpoint privato:

            ┌──────────────────────────────────┐
            │  Client in VNet                  │
            └────────────────┬─────────────────┘
                             │
                             ▼
            ┌──────────────────────────────────┐
            │  Private endpoint                │
            │  (private IP in your subnet)     │
            └────────────────┬─────────────────┘
                             │
                             ▼
            ┌──────────────────────────────────┐
            │  Closest healthy replica         │
            └──────────────────────────────────┘

Esempio. Si supponga che la macchina virtuale client si trova in East US, la risorsa Servizio Azure SignalR primaria si trova in West US e una replica si trova in East US. Quando il client si connette a Servizio Azure SignalR tramite l'endpoint privato, la replica East US viene selezionata per ottenere prestazioni migliori nel routing.

Failover

Se la replica attualmente in uso per gestire il traffico diventa indisponibile, l'infrastruttura di rete di Azure indirizza automaticamente il nuovo traffico a un'altra replica integra e funzionante. L'endpoint privato viene sempre risolto nello stesso indirizzo IP privato all'interno della rete virtuale, quindi non è necessaria alcuna modifica sul lato client. Il completamento del failover può richiedere alcuni minuti .

Per attivare e convalidare manualmente il failover, arrestare la replica connessa, attendere alcuni minuti e ricollegarsi tramite un client di test. Il client deve atterrare su una replica diversa.

Prezzi

Per informazioni dettagliate sui prezzi, vedere Prezzi di Collegamento privato di Azure.

Problemi noti

Tenere presenti i problemi noti seguenti relativi agli endpoint privati per Servizio Azure SignalR

Livello gratuito

Non è possibile creare alcun endpoint privato per Servizio Azure SignalR di livello gratuito.

Vincoli di accesso per i client in reti virtuali con endpoint privati

I client nelle reti virtuali con endpoint privati esistenti devono affrontare vincoli quando accedono ad altre istanze di Servizio Azure SignalR con endpoint privati. Ad esempio:

  • Quando la rete virtuale N1 ha un endpoint privato per un'istanza di Servizio Azure SignalR S1
    • Se Servizio Azure SignalR S2 ha un endpoint privato in una rete virtuale N2, i client nella rete virtuale N1 devono accedere anche Servizio Azure SignalR S2 usando un endpoint privato.
    • Se Servizio Azure SignalR S2 non dispone di endpoint privati, i client nella rete virtuale N1 possono accedere Servizio Azure SignalR in tale account senza un endpoint privato.

Questo vincolo è il risultato delle modifiche DNS apportate quando Servizio Azure SignalR S2 crea un endpoint privato.

Passaggi successivi