Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Introdução
Este tutorial fornece diretrizes 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. Ele ajuda a evitar a codificação fixa de parâmetros de aplicativo no aplicativo Contoso (como ID de usuário e token de usuário). Essas informações são altamente confidenciais. Mais importante, atualizamos tokens de usuário periodicamente no back-end. O hard-coding da combinação de ID do usuário e token requer a edição do valor após cada atualização.
Pré-requisitos
Antes de começar, certifique-se de:
- Criar uma conta do Azure com uma assinatura ativa. Para obter detalhes, confira Criar uma conta gratuitamente.
- Instale o Visual Studio Code.
Configurando funções
- Instale a extensão do Azure Function no Visual Studio Code. Você pode instalá-lo no navegador de plug-in do Visual Studio Code ou seguindo este link
- Configure um aplicativo local do Azure Function seguindo este link. Precisamos criar uma função local usando o modelo de gatilho HTTP em JavaScript.
- Instale bibliotecas dos Serviços de Comunicação do Azure. Usaremos a biblioteca de identidades para gerar tokens de acesso do usuário. Execute o comando de instalação do npm 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
- Modifique o
index.jsarquivo 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 no recurso dos Serviços de Comunicação do Azure no portal do Azure. A URL ACSEndpoint é do recurso dos Serviços de Comunicação do Azure que foi criado.
- Abra a pasta local do Azure Function no Visual Studio Code. Abra o
index.jse execute a função local do Azure. Um ponto de extremidade local de Função do Azure será criado e impresso 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"
}
Implante a função local na nuvem. Mais detalhes podem ser encontrados nesta documentação.
Teste a Função do Azure implantada. Primeiro, localize o Azure Function no portal do Azure. Em seguida, use o botão "Obter URL da Função" para obter o ponto de extremidade de Função do Azure. O resultado que você vê deve ser semelhante ao que foi mostrado na etapa 5. O endpoint do Azure Functions será usado no aplicativo para inicializar os parâmetros do aplicativo.
Implemente
UserTokenClient, que é usado para chamar o recurso Função do Azure de destino e obter o ponto de extremidade dos Serviços de Comunicação do Azure, a ID do usuário e o token do usuário do objeto JSON retornado. Consulte o aplicativo de exemplo para uso.
Guia de Solução de Problemas
- Se a extensão do Azure Functions falhou ao implementar a função local na nuvem do Azure, provavelmente é devido à versão do Visual Studio Code e à extensão do Azure Functions sendo usadas com um bug. Esta combinação de versão foi testada para funcionar: versão
1.68.1do Visual Studio Code e versão1.2.1de extensão do Azure Function. - O local para inicializar constantes de aplicativo é complicado, mas importante. Verifique duas vezes o início rápido do chat do Android. Mais especificamente, a nota de destaque na seção "Configurar constantes do aplicativo" e a comparação com o aplicativo de exemplo da versão que você está consumindo.
(Opcional) proteger o endpoint da Função do Azure
Para fins de demonstração, esse exemplo usa um ponto de extremidade publicamente acessível por padrão para buscar 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 a configuração extra, este exemplo dá suporte à conexão com um ponto de extremidade protegido do Microsoft Entra para que o log do usuário seja necessário para que o aplicativo busque um token dos Serviços de Comunicação do Azure. O usuário será obrigado a entrar com a conta da Microsoft para acessar o aplicativo. Essa configuração aumenta o nível de segurança enquanto os usuários são obrigados a fazer logon. Decida se deseja habilitá-lo com base nos casos de uso.
Observe que atualmente não há suporte para a ID do Microsoft Entra no código de exemplo. Siga os links abaixo para habilitá-lo em seu aplicativo e no Azure Function:
Registre seu aplicativo na ID do Microsoft Entra (usando as configurações da plataforma Android).
Configure o seu App Service ou o aplicativo Azure Functions para usar o login do Microsoft Entra ID.