Utilizzare l'API Meet eCDN on-premise

Questa pagina spiega come utilizzare l'API Meet eCDN On-Premises per Google Meet Live Streaming.

La soluzione API descritta qui consente ai clienti di utilizzare l'insieme completo di funzionalità di Meet eCDN senza esporre a Google le informazioni sull'IP privato. Puoi definire un nuovo servizio web on-premise nella tua rete che trasmette un ID anziché le informazioni sull'indirizzo IP privato.

Panoramica di Meet eCDN

eCDN è integrato in Meet e si avvia automaticamente durante i live streaming dopo che un amministratore di Google Workspace lo ha configurato. Quando l'eCDN Meet è attiva, gli spettatori del live streaming all'interno di una rete locale possono condividere contenuti multimediali in live streaming con altre app peer della rete tramite la condivisione peer-to-peer (P2P). La maggior parte dei dispositivi riceve i contenuti multimediali in live streaming da app peer nelle vicinanze e non deve recuperarli dai server di Google. In questo modo si riduce la larghezza di banda totale utilizzata dagli spettatori. Per ulteriori informazioni sulla configurazione e sull'utilizzo di Meet eCDN, consulta Ospitare live streaming di grandi dimensioni.

eCDN richiede che gli spettatori di Meet Live Streaming siano ordinati in gruppi di peering. Un gruppo di peering è una raccolta di nodi autorizzati a condividere contenuti multimediali tra loro. Nei dispositivi di un gruppo di peering, questa operazione può essere autorizzata o bloccata. I dispositivi autorizzati possono connettersi solo ad altri dispositivi nello stesso gruppo di peering. Per ulteriori informazioni sui gruppi di peering, consulta Prima di iniziare a ospitare live streaming di grandi dimensioni.

Quando utilizzare l'API

eCDN può formare gruppi di peering utilizzando diversi criteri di peering: random, subnet o custom rules. Quest'ultimo condivide una tabella di intervalli di rete privata con il server di monitoraggio eCDN di Google per mappare gli indirizzi IP privati di ogni nodo peer a un gruppo di peering. Il criterio custom rules è la soluzione preferita ed è adatto alla maggior parte degli ambienti di produzione.

Tuttavia, il criterio custom rules richiede di condividere con Google ampie porzioni della struttura della rete privata. Inoltre, i singoli utenti espongono a Google i propri indirizzi IP privati rilevati localmente durante l'utilizzo di eCDN. Per alcune organizzazioni, le linee guida sulla sicurezza potrebbero non consentire la condivisione delle informazioni sull'IP privato.

Sviluppare con l'API Meet eCDN On-Premises

L'API Meet eCDN On-Premises fornisce una specifica del server web che puoi implementare e ospitare localmente nella rete della tua organizzazione. Puoi creare un servizio web personalizzato compatibile con l'API per eseguire tutte le attività che dipendono dalle informazioni sull'IP privato, in modo che queste non vengano condivise con Google.

L'API comprende i due passaggi fondamentali per la corrispondenza degli indirizzi IP privati che in genere vengono gestiti dal server di monitoraggio eCDN: mappare gli indirizzi IP privati a un gruppo di peering e scambiare i dati di offerta e risposta del protocollo SDP (Session Description Protocol) durante la segnalazione WebRTC.

Una volta completato il servizio web, devi configurare la Console di amministrazione in modo che utilizzi un criterio di peering On-premises service e includa l'URL del tuo servizio web personalizzato.

Requisiti

Se devi attivare uno di questi requisiti per la tua organizzazione, chiedi al tuo amministratore di Google Workspace:

  • Qualsiasi server web che utilizza HTTPS può implementare questa API.

  • Utilizza HTTPS per evitare errori di contenuti misti.

  • Accetta e restituisci dati JSON. Utilizza qualsiasi codifica dei contenuti supportata dal tuo browser.

  • Pubblica gli endpoint in un percorso /vn, dove n è la versione dell'API selezionata. Ad esempio, /v1/get-peering-group.

  • Gli spettatori di Meet Live Streaming possono scoprire l'URL del tuo servizio web tramite la Console di amministrazione Google. L'URL può essere impostato a livello globale, per unità organizzativa o per gruppo. Assicurati che gli spettatori possano connettersi all'istanza assegnata del servizio. Per ulteriori informazioni, consulta Configurare la Console di amministrazione.

  • Il servizio deve restituire una risposta entro due secondi. In caso contrario, il client eCDN si chiude e lo spettatore continua a guardare l'evento live come un utente normale, non eCDN, negandogli qualsiasi risparmio di larghezza di banda.

  • Il servizio deve impostare le seguenti intestazioni CORS (Cross-Origin Resource Sharing):

    • Access-Control-Allow-Origin: meet.google.com
    • Access-Control-Allow-Headers: GET, POST, OPTIONS
    • Access-Control-Allow-Credentials: true

Mappare gli indirizzi IP privati a un gruppo di peering

Il client eCDN effettua una chiamata ogni volta che tenta di riconnettersi al server di monitoraggio eCDN. Dopo che un dispositivo rileva un indirizzo IP privato, questo deve essere mappato al gruppo di peering appropriato. Devi inviare l'indirizzo IP privato a un server della tua rete e risolverlo manualmente in un gruppo di peering utilizzando il metodo get-peering-group(). Nella risposta viene restituito un ID gruppo di peering. Quando comunichi con Google, l'ID gruppo di peering risultante viene trasmesso al posto degli indirizzi IP privati.

Come vengono mappati gli indirizzi IP privati a un gruppo di peering.
Figura 1. Mappare gli indirizzi IP privati a un gruppo di peering.

Il seguente esempio di codice mostra come chiamare il metodo get-peering-group() insieme alla potenziale risposta di errore e al corpo della risposta previsto:

POST /v1/get-peering-group
Content-Type: application/json

Request body:
{
  "availableIPs": []{
    "format": "ipv4"|"ipv6",
    "address": "DETECTED_ADDRESS"
  }
}

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE"
}

Response body:
{
  "allowed": boolean,
  "result": string,
  "error": null
}

La seguente tabella mostra i formati di risposta previsti:

Stato HTTP Errore Consentito Risultato Reazione del client
200 null true Stringa non vuota Il client viene ordinato nel gruppo di peering specificato e procede alla connessione al server di monitoraggio eCDN.
200 null false Stringa non vuota Il client viene contrassegnato come bloccato dal gruppo di peering specificato, sarà visibile in strumento qualità Meet (MQT) e termina la sessione eCDN.
200 null Stringa vuota Il client termina la sessione eCDN.
200 Stringa non vuota Il client termina la sessione eCDN.
302 (Found) Il client segue il reindirizzamento al nuovo URL specificato nell'intestazione Location del corpo della risposta.
Qualsiasi altro codice di stato Il client termina la sessione eCDN.

Formato della risposta legacy

Il campo allowed non faceva parte del formato della risposta delle versioni precedenti. Al contrario, i valori riservati speciali per result determinavano se l'indirizzo IP di uno spettatore sarebbe stato bloccato dal peering:

Legacy response body:
{
  "result": string,
  "error": null,
}

La seguente tabella mostra i formati di risposta previsti se il campo allowed non è impostato nel messaggio di risposta:

Stato HTTP Errore Risultato Reazione del client
200 null Stringa non vuota Il client deve essere ordinato in un gruppo di peering e procede alla connessione al server di monitoraggio eCDN.
200 null NOT_FOUND Il client termina la sessione eCDN.
200 null BLOCKED Il client termina la sessione eCDN.
200 Stringa non vuota Il client termina la sessione eCDN.
302 (Found) Il client segue il reindirizzamento al nuovo URL specificato nell'intestazione Location del corpo della risposta.
Qualsiasi altro codice di stato Il client termina la sessione eCDN.

Scambio di dati di offerta e risposta SDP

Per avviare una connessione WebRTC, i dispositivi devono scambiarsi le offerte e le risposte SDP, inclusi i candidati ICE (Interactive Connectivity Establishment), che contengono informazioni sull'IP privato. Lo fanno nell'ambito del processo di segnalazione WebRTC.

I client devono criptare i propri candidati ICE all'interno della rete tramite l'API Meet eCDN On-Premises, utilizzando il metodo encrypt-sdp(). Il metodo utilizza una chiave che non viene mai esposta a Google. L'offerta SDP criptata viene quindi inviata al peer utilizzando il server di monitoraggio eCDN. Il peer client decripta quindi le informazioni ricevute all'interno della rete utilizzando il metodo decrypt-sdp(). Google inoltra quindi le offerte e le risposte tra i peer connessi.

Una volta stabilita la connessione utilizzando l'API Meet eCDN On-Premises, eCDN funziona normalmente. I peer instradano i contenuti multimediali attraverso la normale rete di peering e il traffico multimediale non passa attraverso l'API né la utilizza.

Come vengono criptati e decriptati i dati di offerta e risposta SDP.
Figura 2. Criptare e decriptare i dati di offerta e risposta SDP.

Il seguente esempio di codice mostra come chiamare il metodo encrypt-sdp() insieme alla potenziale risposta di errore e al corpo della risposta previsto:

POST /v1/encrypt-sdp
Content-Type: application/json

Request body:
{
  "data": "SDP_DATA"
},

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE"
}

Response body:
{
  "result": "ENCRYPTED_DATA_STRING",
  "error": null
}

Il seguente esempio di codice mostra come chiamare il metodo decrypt-sdp() insieme alla potenziale risposta di errore e al corpo della risposta previsto:

POST /v1/decrypt-sdp
Content-Type: application/json

Request body:
{
  "data": "ENCRYPTED_DATA_STRING"
},

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE"
}

Response body:
{
  "result": "SDP_DATA",
  "error": null
}

La seguente tabella mostra i formati di risposta previsti:

Stato HTTP Errore ID gruppo di peering Reazione del client
200 null Stringa non vuota Il client prevede che vengano utilizzati dati SDP codificati o decodificati correttamente.
200 Qualsiasi stringa non vuota null Il client termina la sessione eCDN.
302 (Found) Il client segue il reindirizzamento al nuovo URL specificato nell'intestazione Location del corpo della risposta.
Qualsiasi altro codice di stato Qualsiasi valore Qualsiasi valore Il client termina la sessione eCDN.

Configurare la Console di amministrazione

Per utilizzare l'API Meet eCDN On-Premises, devi configurare eCDN nella Console di amministrazione in modo da includere l'URL di un servizio web personalizzato.

Per impostare eCDN, crea un criterio di peering utilizzando On-premises service per abbinare manualmente le informazioni sull'IP ai gruppi di peering. Puoi anche includere un numero di porta se non utilizzi la porta 443 predefinita. L'URL deve corrispondere al seguente formato: WEB_SERVICE.example.com:8080, dove WEB_SERVICE è il nome del tuo servizio web.

Per ulteriori informazioni sull'impostazione di un criterio di peering, consulta Configurare il raggruppamento di rete.