Partilhar via


Integrar a função do Azure

Introdução

Este tutorial fornece orientações detalhadas sobre como configurar uma Função do Azure para receber informações relacionadas ao usuário. A configuração de uma Função do Azure é altamente recomendada. Isso ajuda a evitar a codificação fixa dos parâmetros da aplicação no aplicativo Contoso (como o ID do utilizador e o token do utilizador). Esta informação é altamente confidencial. Mais importante ainda, atualizamos os tokens de usuário periodicamente no back-end. A codificação rígida do ID do usuário e da combinação de token requer a edição do valor após cada atualização.

Pré-requisitos

Antes de começar, certifique-se de:

Configuração de funções

  1. Instale a extensão Azure Function no Visual Studio Code. Você pode instalá-lo a partir do navegador de plug-in do Visual Studio Code ou seguindo este link
  2. Configure um aplicativo local do Azure Function seguindo este link. Precisamos criar uma função local usando o modelo de gatilho HTTP em JavaScript.
  3. Instale as bibliotecas dos Serviços de Comunicação do Azure. Usaremos a biblioteca de Identidades para gerar Tokens de Acesso de Usuário. Execute o comando npm install no diretório local do aplicativo Azure Function para instalar o SDK de Identidade dos Serviços de Comunicação do Azure para JavaScript.
    npm install @azure/communication-identity --save
  1. Modifique o index.js arquivo para que ele se pareça com o código abaixo:
    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
            }
        };
    }

Explicação para o código acima: A primeira linha importa a interface para o CommunicationIdentityClient. A cadeia de conexão na segunda linha pode ser encontrada em seu recurso dos Serviços de Comunicação do Azure no portal do Azure. A ACSEndpoint é a URL do recurso dos Serviços de Comunicação do Azure que foi criado.

  1. Abra a pasta local da função do Azure no Visual Studio Code. Abra o index.js e execute a Função do Azure local. Um endpoint local da Função Azure será criado e apresentado no terminal. A mensagem impressa é semelhante a:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1

Abra o link em um navegador. O resultado será semelhante a este exemplo:

    {
      "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. Implante a função local na nuvem. Mais detalhes podem ser encontrados nesta documentação.

  2. Teste a Função do Azure implantada. Primeiro, localize sua Função do Azure no portal do Azure. Em seguida, use o botão "Obter URL da Função" para obter o endereço de endpoint da Função do Azure. O resultado que você vê deve ser semelhante ao que foi mostrado na etapa 5. O ponto de extremidade da Função Azure será utilizado na aplicação para inicializar os seus parâmetros.

  3. Implemente UserTokenClient, que é usado para chamar o recurso de Função do Azure de destino e obter o ponto de extremidade dos Serviços de Comunicação do Azure, a ID de utilizador e o token de utilizador do objeto JSON retornado. Consulte o aplicativo de exemplo para uso.

Guia de resolução de problemas

  1. Se a extensão da Função do Azure não conseguiu implantar a função local na nuvem do Azure, é provável que seja devido à versão do Visual Studio Code e da extensão da Função do Azure que está sendo usada ter um bug. Esta combinação de versão foi testada para funcionar: versão 1.68.1 do Visual Studio Code e versão 1.2.1da extensão Azure Function.
  2. O local para inicializar constantes de aplicativo é complicado, mas importante. Verifique novamente o início rápido do chat Android. Mais especificamente, observe a nota de realce na secção "Configurar constantes da aplicação" e compare-a com a aplicação de exemplo da versão que está a utilizar.

(Opcional) proteger o ponto de extremidade do Azure Function

Para fins de demonstração, este exemplo usa um endpoint acessível publicamente por padrão para obter um token dos Serviços de Comunicação do Azure. Para cenários de produção, uma opção é usar seu próprio endpoint seguro para provisionar seus próprios tokens.

Com configuração adicional, este exemplo suporta a ligação a um ponto de extremidade protegido pelo Microsoft Entra, para que seja necessário o registo do utilizador e o aplicativo obtenha um token dos Serviços de Comunicação do Azure. O utilizador terá de iniciar sessão com a conta Microsoft para aceder à aplicação. Esta configuração aumenta o nível de segurança enquanto os utilizadores têm de iniciar sessão. Decida se deseja habilitá-lo com base nos casos de uso.

Observe que atualmente não suportamos o Microsoft Entra ID no código de exemplo. Siga os links abaixo para habilitá-lo em seu aplicativo e no Azure Function:

Registe a sua aplicação em Microsoft Entra ID (utilizando as definições da plataforma Android).

Configure seu Serviço de Aplicativo ou aplicativo Azure Functions para usar o logon da ID do Microsoft Entra.