Share via


Integrare la funzione di Azure

Introduzione

Questa esercitazione fornisce indicazioni dettagliate su come configurare una funzione di Azure per ricevere informazioni correlate all'utente. La configurazione di una funzione di Azure è altamente consigliata. Consente di evitare parametri dell'applicazione hardcoded nell'app Contoso, ad esempio l'ID utente e il token utente. Queste informazioni sono estremamente riservate. Ancora più importante, i token utente vengono aggiornati periodicamente nel back-end. La codifica hardcoded della combinazione di ID utente e token richiede la modifica del valore dopo ogni aggiornamento.

Prerequisiti

Prima di iniziare, assicurarsi di:

  • Creare un account Azure con una sottoscrizione attiva. Per informazioni dettagliate vedere Creare un account gratuito.
  • Installare Visual Studio Code.

Configurazione delle funzioni

  1. Installare l'estensione Funzioni di Azure in Visual Studio Code. È possibile installarlo dal browser plug-in di Visual Studio Code o seguendo questo collegamento
  2. Configurare un'app per le funzioni di Azure locale seguendo questo collegamento. È necessario creare una funzione locale usando il modello di trigger HTTP in JavaScript.
  3. Installare Servizi di comunicazione di Azure librerie. Si userà la libreria di identità per generare token di accesso utente. Eseguire il comando npm install nella directory locale dell'app per le funzioni di Azure per installare il Servizi di comunicazione di Azure Identity SDK per JavaScript.
    npm install @azure/communication-identity --save
  1. Modificare il index.js file in modo che sia simile al codice seguente:
    const { CommunicationIdentityClient } = require('@azure/communication-identity');
    const connectionString = '<your_connection_string>'
    const acsEndpoint = "<your_ACS_endpoint>"
    
    module.exports = async function (context, req) {
        let tokenClient = new CommunicationIdentityClient(connectionString);
    
        const userIDHolder = await tokenClient.createUser();
        const userId = userIDHolder.communicationUserId
    
        const userToken = await (await tokenClient.getToken(userIDHolder, ["chat"])).token;
    
        context.res = {
            body: {
                acsEndpoint,
                userId,
                userToken
            }
        };
    }

Spiegazione del codice precedente: la prima riga importa l'interfaccia per .CommunicationIdentityClient Il stringa di connessione nella seconda riga è disponibile nella risorsa Servizi di comunicazione di Azure nella portale di Azure. ACSEndpoint è l'URL della risorsa Servizi di comunicazione di Azure creata.

  1. Aprire la cartella della funzione di Azure locale in Visual Studio Code. index.js Aprire ed eseguire la funzione di Azure locale. Nel terminale verrà creato e stampato un endpoint della funzione di Azure locale. Il messaggio stampato è simile al seguente:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1

Aprire il collegamento in un browser. Il risultato sarà simile a questo esempio:

    {
      "acsEndpoint": "<Azure Function endpoint>",
      "userId": "8:acs:a636364c-c565-435d-9818-95247f8a1471_00000014-f43f-b90f-9f3b-8e3a0d00c5d9",
      "userToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOmE2MzYzNjRjLWM1NjUtNDM1ZC05ODE4LTk1MjQ3ZjhhMTQ3MV8wMDAwMDAxNC1mNDNmLWI5MGYtOWYzYi04ZTNhMGQwMGM1ZDkiLCJzY3AiOjE3OTIsImNzaSI6IjE2Njc4NjI3NjIiLCJleHAiOjE2Njc5NDkxNjIsImFjc1Njb3BlIjoiY2hhdCIsInJlc291cmNlSWQiOiJhNjM2MzY0Yy1jNTY1LTQzNWQtOTgxOC05NTI0N2Y4YTE0NzEiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY3ODYyNzYyfQ.t-WpaUUmLJaD0V2vgn3M5EKdJUQ_JnR2jnBUZq3J0zMADTnFss6TNHMIQ-Zvsumwy14T1rpw-1FMjR-zz2icxo_mcTEM6hG77gHzEgMR4ClGuE1uRN7O4-326ql5MDixczFeIvIG8s9kAeJQl8N9YjulvRkGS_JZaqMs2T8Mu7qzdIOiXxxlmcl0HeplxLaW59ICF_M4VPgUYFb4PWMRqLXWjKyQ_WhiaDC3FvhpE_Bdb5U1eQXDw793V1_CRyx9jMuOB8Ao7DzqLBQEhgNN3A9jfEvIE3gdwafpBWlQEdw-Uuf2p1_xzvr0Akf3ziWUsVXb9pxNlQQCc19ztl3MIQ"
    }
  1. Distribuire la funzione locale nel cloud. Altri dettagli sono disponibili in questa documentazione.

  2. Testare la funzione di Azure distribuita. Per prima cosa, trovare la funzione di Azure nella portale di Azure. Usare quindi il pulsante "Recupera URL funzione" per ottenere l'endpoint della funzione di Azure. Il risultato visualizzato dovrebbe essere simile a quello mostrato nel passaggio 5. L'endpoint della funzione di Azure verrà usato nell'app per inizializzare i parametri dell'applicazione.

  3. Implementare UserTokenClient, usato per chiamare la risorsa funzione di Azure di destinazione e ottenere l'endpoint Servizi di comunicazione di Azure, l'ID utente e il token utente dall'oggetto JSON restituito. Fare riferimento all'app di esempio per l'utilizzo.

Guida alla risoluzione dei problemi

  1. Se l'estensione Funzione di Azure non è riuscita a distribuire la funzione locale nel cloud di Azure, è probabile che sia dovuta alla versione di Visual Studio Code e all'estensione Funzione di Azure usata con un bug. Questa combinazione di versione è stata testata per funzionare: versione 1.68.1 di Visual Studio Code e versione 1.2.1dell'estensione funzioni di Azure .
  2. La posizione in cui inizializzare le costanti dell'applicazione è difficile ma importante. Controllare la chat Di avvio rapido per Android. In particolare, la nota di evidenziazione nella sezione "Configurare le costanti dell'applicazione" e confrontare con l'app di esempio della versione che si sta utilizzando.

(Facoltativo) Proteggere l'endpoint della funzione di Azure

A scopo dimostrativo, questo esempio usa un endpoint accessibile pubblicamente per impostazione predefinita per recuperare un token Servizi di comunicazione di Azure. Per gli scenari di produzione, un'opzione consiste nell'usare un endpoint protetto per effettuare il provisioning di token personalizzati.

Con una configurazione aggiuntiva, questo esempio supporta la connessione a un endpoint protetto di Microsoft Entra in modo che il log utente sia necessario affinché l'app recuperi un token Servizi di comunicazione di Azure. L'utente dovrà accedere con l'account Microsoft per accedere all'app. Questa configurazione aumenta il livello di sicurezza mentre gli utenti devono accedere. Decidere se abilitarlo in base ai casi d'uso.

Si noti che attualmente non è supportato l'ID Microsoft Entra nel codice di esempio. Seguire i collegamenti seguenti per abilitarlo nell'app e nella funzione di Azure:

Registrare l'app in Microsoft Entra ID (usando le impostazioni della piattaforma Android).Register your app under Microsoft Entra ID (using Android platform settings).

Configurare l'servizio app o l'app Funzioni di Azure per l'uso dell'id di Accesso Microsoft.