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.
Este artigo descreve como usar o Azure Functions para criar um serviço de acesso de usuário confiável.
Important
O ponto de extremidade criado neste tutorial não é seguro. Leia os detalhes de segurança no artigo de segurança do Azure Functions . Você precisa adicionar segurança ao endpoint para garantir que agentes mal-intencionados não possam provisionar tokens.
Esse artigo descreve como:
- Configure uma função.
- Gerar tokens de acesso.
- Teste a função.
- Implante e execute a função.
Código de download
Encontre o código finalizado para este tutorial rápido no GitHub.
Prerequisites
- Uma conta do Azure com uma assinatura ativa. Se você não tiver uma assinatura do Azure, poderá criar gratuitamente uma conta.
- Visual Studio Code em uma das plataformas compatíveis.
-
Node.js, versões Active LTS e versões LTS de manutenção (10.14.1 recomendada). Use o comando
node --versionpara verificar sua versão. - A Extensão Azure Functions para Visual Studio Code.
- Um recurso e uma cadeia de conexão ativos dos Serviços de Comunicação. Para mais informações, confira Início Rápido: Criar e gerenciar recursos dos Serviços de Comunicação do Azure.
Overview
Para este tutorial, você criará um aplicativo de funções que serve como um serviço de provisionamento de token confiável. Você pode usar este tutorial para inicializar seu próprio serviço de provisionamento de token.
Esse serviço é responsável por autenticar usuários nos Serviços de Comunicação. Os usuários de seus aplicativos dos Serviços de Comunicação exigem um token de acesso para participar de threads de chat e chamadas VoIP. A função funciona como um intermediário confiável entre o usuário e os Serviços de Comunicação. Você pode provisionar tokens de acesso sem expor sua cadeia de conexão de recurso aos usuários.
Para obter mais informações, confira a documentação conceitual 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 para a função. Para obter instruções passo a passo sobre como configurar, 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:
- Linguagem: JavaScript
- Modelo: gatilho HTTP
- Nível de autorização: anônimo (se preferir um modelo de autorização diferente, você poderá alternar mais tarde)
- Nome da função: usuário definido
Depois de seguir as instruções no Início Rápido: Criar uma função C# no Azure usando o Visual Studio Code com a configuração anterior, você deverá ter um projeto no Visual Studio Code para a função com um index.js arquivo que contenha 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
};
}
A próxima etapa é instalar bibliotecas dos Serviços de Comunicação.
Instalar bibliotecas dos Serviços de Comunicação
Use a Identity biblioteca para gerar tokens de acesso do usuário.
Use o npm install comando 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 arquivo package.json.
Na parte superior do index.js arquivo, importe a interface para o CommunicationIdentityClient parâmetro.
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Gerar tokens de acesso
Para permitir que a sua função gere tokens de acesso de usuário, primeiro é necessário usar a cadeia de conexão do recurso Serviços de Comunicação.
Para obter mais informações sobre como recuperar sua cadeia de conexão, consulte Início Rápido: Criar e gerenciar recursos dos Serviços de Comunicação.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
Em seguida, modifique sua função original para gerar tokens de acesso do usuário.
Para gerar tokens de acesso do usuário, use o createUser método para criar um usuário. Depois que o usuário for criado, use o getToken método para gerar um token para esse usuário, que a função retorna.
Para este exemplo, você configura o escopo do token como voip. Outros escopos podem ser necessários para seu aplicativo. Para saber mais sobre escopos, consulte Criar e gerenciar tokens de acesso.
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 dos Serviços CommunicationUser de Comunicação existente, você pode ignorar a etapa de criação e gerar um token de acesso. Para saber mais, confira Criar e gerenciar token de acesso.
Testar a função
Execute a função localmente usando F5. Essa ação inicializa a função localmente e a torna acessível por meio de http://localhost:7071/api/FUNCTION_NAME. Para obter mais informações sobre como executar localmente, consulte Início Rápido: Criar uma função C# no Azure usando o Visual Studio Code.
Abra a URL no navegador e veja um corpo de resposta com a ID de usuário de comunicação, o token e a expiração do token.
Implantar a função no Azure
Para implantar sua função, siga as instruções passo a passo no Início Rápido: Criar uma função C# no Azure usando o Visual Studio Code.
Em resumo, você precisa:
- Entre no Azure por meio do Visual Studio.
- Publicar seu projeto em sua conta do Azure. Aqui você precisa escolher uma assinatura existente.
- Crie um novo recurso de função usando o assistente do Visual Studio ou um recurso existente. Para um novo recurso, você precisa configurá-lo para sua região desejada, runtime e identificador exclusivo.
- Aguarde até que a implantação seja finalizada.
- Execute a função.
Executar a função
Execute a função usando a 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 obter mais informações sobre como executar sua função, consulte Início Rápido: Criar uma função C# no Azure usando o Visual Studio Code.
Proteger o ponto de extremidade
Como parte da configuração de um serviço confiável para fornecer tokens de acesso para os usuários, você precisa levar em conta a segurança desse endpoint para garantir que nenhum agente malicioso possa criar tokens de forma aleatória para seu serviço. O Azure Functions fornece recursos de segurança internos que você pode usar para proteger o ponto de extremidade usando diferentes tipos de políticas de autenticação. Para obter mais informações, consulte a segurança do Azure Functions.
Limpar os recursos
Se desejar limpar e remover uma assinatura dos Serviços de Comunicação do Azure, você poderá excluir o recurso ou grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Você pode saber mais sobre como limpar os recursos do Serviço de Comunicação e limpar os recursos do Azure Functions.