Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve como usar as Azure Functions para construir um serviço de acesso seguro para utilizadores.
Important
O ponto de extremidade criado neste tutorial não é seguro. Certifique-se de ler sobre os detalhes de segurança no artigo Segurança das Funções do Azure. Precisam adicionar segurança ao terminal para garantir que agentes mal-intencionados não consigam fornecer tokens.
Este artigo descreve como:
- Configurar uma função.
- Gerar tokens de acesso.
- Teste a função.
- Implante e execute a função.
Transferir código
Encontre o código finalizado para este início rápido no GitHub.
Prerequisites
- Uma conta Azure com uma subscrição ativa. Se não tiver uma subscrição do Azure, pode criar uma conta gratuitamente.
- Visual Studio Code em uma das plataformas suportadas.
-
Node.js, versões Active LTS e Maintenance LTS (recomenda-se a 10.14.1). Use o
node --versioncomando para verificar sua versão. - A extensão do Azure Functions para Visual Studio Code.
- Um recurso ativo dos Serviços de Comunicação e respetiva cadeia de conexão. Para mais informações, consulte Início Rápido: Criar e gerir recursos dos Serviços de Comunicação.
Overview
Para este tutorial, você cria uma aplicação de função que serve como um serviço confiável de provisionamento de tokens. Pode usar este tutorial para iniciar o seu próprio serviço de provisionamento de tokens.
Este serviço é responsável por autenticar os utilizadores nos Serviços de Comunicação. Os usuários de seus aplicativos de Serviços de Comunicação precisam de um token de acesso para participar de threads de bate-papo e chamadas VoIP. A função funciona como um intermediário de confiança entre o utilizador e os Serviços de Comunicação. Pode fornecer tokens de acesso sem expor a string de conexão do seu recurso aos seus utilizadores.
Para mais informações, consulte a documentação conceptual de arquitetura cliente-servidor e autenticação e autorização.
Configurar uma função
Esta seção descreve os procedimentos para configurar uma função.
Configuração do Azure Functions
Primeiro, vamos configurar a estrutura básica da função. Para obter instruções passo a passo para a configuração, consulte Início Rápido: Criar uma função C# no Azure usando o Visual Studio Code.
A função requer a seguinte configuração:
- Idioma: JavaScript
- Modelo: HTTP Trigger
- Nivel de Autorização: Anónimo (se preferir um modelo de autorização diferente, pode alterá-lo mais tarde)
- Function Name: Definido pelo usuário
Depois de seguir as instruções em Início Rápido: Criar uma função C# no Azure usando o Visual Studio Code com a configuração mencionada, deverá ter um projeto no Visual Studio Code para a função com um ficheiro index.js que contém a própria função. O código a seguir dentro do arquivo deve ser:
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
const name = (req.query.name || (req.body && req.body.name));
const responseMessage = name
? "Hello, " + name + ". This HTTP triggered function executed successfully."
: "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
context.res = {
// status: 200, /* Defaults to 200 */
body: responseMessage
};
}
O próximo passo é instalar as bibliotecas dos Serviços de Comunicação.
Instalar bibliotecas de Serviços de Comunicação
Você usa a biblioteca Identity para gerar tokens de acesso de utilizador.
Utilize o comando npm install para instalar o SDK de Identidade dos Serviços de Comunicação para JavaScript.
npm install @azure/communication-identity --save
A opção --save lista a biblioteca como uma dependência no seu ficheiro package.json.
No topo do ficheiro index.js, importe a interface para o parâmetro CommunicationIdentityClient.
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Gerar tokens de acesso
Para permitir que a sua função gere tokens de acesso de utilizadores, primeiro precisa de usar a string de conexão para o seu recurso de Serviços de Comunicação.
Para mais informações sobre como recuperar a sua string de conexão, consulte Introdução rápida: Criar e gerir recursos dos Serviços de Comunicação.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
Em seguida, modifique a sua função original para gerar tokens de acesso de utilizador.
Para gerar tokens de acesso para usuários, use o método createUser para criar um usuário. Depois de o utilizador ser criado, utilize o método getToken para gerar um token para esse utilizador, que a função retorna.
Neste exemplo, configure o âmbito do token para voip. Outros escopos podem ser necessários para a sua aplicação. Para saber mais sobre os escopos, consulte Create and manage access tokens.
module.exports = async function (context, req) {
let tokenClient = new CommunicationIdentityClient(connectionString);
const user = await tokenClient.createUser();
const userToken = await tokenClient.getToken(user, ["voip"]);
context.res = {
body: userToken
};
}
Para o parâmetro existente dos Serviços de Comunicação CommunicationUser, pode ignorar o passo de criação e gerar um token de acesso. Para obter mais informações, consulte Criar e gerenciar tokens de acesso.
Testar a função
Execute a função localmente usando F5. Esta ação inicializa a função localmente e torna-a acessível através de http://localhost:7071/api/FUNCTION_NAME. Para mais informações sobre como executar localmente, consulte Quickstart: Create a C# function in Azure by using Visual Studio Code.
Abra o URL no(s) seu(s) navegador(es) e verá um corpo de resposta com o ID de Utilizador de Comunicação, o token e a data de expiração do token.
Implementar a função no Azure
Para implementar a sua função, siga as instruções passo a passo em Início Rápido: Criar uma função C# no Azure usando o Visual Studio Code.
Em resumo, você precisa:
- Entre no Azure a partir do Visual Studio.
- Publique o seu projeto na sua conta Azure. Aqui, precisa escolher uma subscrição existente.
- Crie um novo recurso de função utilizando o assistente do Visual Studio ou um recurso existente. Para um novo recurso, precisa configurá-lo para a região desejada, tempo de execução e identificador único.
- Aguarde a conclusão da implementação.
- Execute a função.
Execute a função
Execute a função utilizando o URL http://<function-appn-ame>.azurewebsites.net/api/<function-name>.
Para localizar a URL, clique com o botão direito do mouse na função no Visual Studio Code e copie a URL da função.
Para mais informações sobre como executar a sua função, consulte Quickstart: Create a C# function in Azure by using Visual Studio Code.
Proteja o terminal
Como parte da configuração de um serviço confiável para fornecer tokens de acesso aos usuários, é necessário considerar a segurança desse endpoint para garantir que nenhum ator malicioso possa criar tokens indevidamente para o seu serviço. O Azure Functions fornece funcionalidades de segurança integradas que pode usar para proteger o endpoint, utilizando diferentes tipos de políticas de autenticação. Para mais informações, consulte Azure Functions security.
Libertar recursos
Se quiser limpar e remover uma subscrição dos Serviços de Comunicação Azure, pode eliminar o recurso ou o grupo de recursos. Eliminar o grupo de recursos também apaga quaisquer outros recursos associados a ele. Pode saber mais sobre como limpar os recursos do Communication Service e limpar os recursos do Azure Functions.