Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Introducción
En este tutorial se proporcionan instrucciones detalladas sobre cómo configurar una función de Azure para recibir información relacionada con el usuario. Se recomienda encarecidamente configurar una función de Azure. Ayuda a evitar parámetros de aplicación de codificación rígida en la aplicación Contoso (como el identificador de usuario y el token de usuario). Esta información es muy confidencial. Lo más importante es actualizar los tokens de usuario periódicamente en el back-end. La codificación rígida del identificador de usuario y la combinación de tokens requiere editar el valor después de cada actualización.
Prerrequisitos
Antes de empezar, asegúrese de:
- Cree una cuenta de Azure con una suscripción activa. Para obtener más información, consulte Creación de una cuenta gratuita.
- Instale Visual Studio Code.
Configuración de funciones
- Instale la extensión azure Function en Visual Studio Code. Puede instalarlo desde el explorador del complemento de Visual Studio Code o siguiendo este vínculo.
- Configure una aplicación de funciones de Azure local siguiendo este vínculo. Es necesario crear una función local mediante la plantilla de desencadenador HTTP en JavaScript.
- Instale las bibliotecas de Azure Communication Services. Usaremos la biblioteca de identidades para generar tokens de acceso de usuario. Ejecute el comando npm install en el directorio local de la aplicación de funciones de Azure para instalar el SDK de identidad de Azure Communication Services para JavaScript.
npm install @azure/communication-identity --save
- Modifique el
index.jsarchivo para que tenga el siguiente aspecto:
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
}
};
}
Explicación del código anterior: la primera línea importa la interfaz para .CommunicationIdentityClient La cadena de conexión de la segunda línea se puede encontrar en el recurso de Azure Communication Services en Azure Portal.
ACSEndpoint es la dirección URL del recurso de Azure Communication Services que se creó.
- Abra la carpeta función local de Azure en Visual Studio Code.
index.jsAbra y ejecute la función local de Azure. Se creará e imprimirá un punto de conexión de Azure Function local en el terminal. El mensaje impreso tiene un aspecto similar al siguiente:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1
Abra el vínculo en un explorador. El resultado será similar a este ejemplo:
{
"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"
}
Implemente la función local en la nube. Puede encontrar más detalles en esta documentación.
Pruebe la función de Azure implementada. En primer lugar, busque la función de Azure en Azure Portal. A continuación, use el botón "Get Function URL" (Obtener dirección URL de la función) para obtener el punto de conexión de Azure Functions. El resultado que verá debería ser similar al que se mostró en el paso 5. El punto de conexión de Azure Functions se usará en la aplicación para inicializar los parámetros de la aplicación.
Implementar
UserTokenClient, que se utiliza para llamar al recurso Azure Function de destino y obtener el punto de conexión de Azure Communication Services, el Id. de usuario y el token de usuario del objeto JSON devuelto. Consulte la aplicación de ejemplo para su uso.
Guía de solución de problemas
- Si la extensión de Azure Functions no pudo implementar la función local en la nube de Azure, es probable que se deba a un error en la versión de Visual Studio Code y la extensión de Azure Functions que se está utilizando. Esta combinación de versiones se ha probado para funcionar: versión de Visual Studio Code
1.68.1y versión1.2.1de la extensión de Azure Functions. - El lugar para inicializar constantes de aplicación es complicado, pero importante. Verifique el inicio rápido de Android Chat. Más concretamente, la nota destacada de la sección "Configurar constantes de aplicación" y compárela con la aplicación de ejemplo de la versión que está consumiendo.
(Opcional) proteger el punto de conexión de Azure Functions
Para fines de demostración, en este ejemplo se usa un punto de conexión accesible públicamente de forma predeterminada para capturar un token de Azure Communication Services. En escenarios de producción, una opción es usar su propio punto de conexión protegido para aprovisionar sus propios tokens.
Con una configuración adicional, este ejemplo admite la conexión a un punto de conexión protegido de Microsoft Entra para que el registro de usuario sea necesario para que la aplicación capture un token de Azure Communication Services. El usuario tendrá que iniciar sesión con la cuenta microsoft para acceder a la aplicación. Esta configuración aumenta el nivel de seguridad mientras los usuarios necesitan iniciar sesión. Decida si se debe habilitar en función de los casos de uso.
Tenga en cuenta que actualmente no se admite el identificador de Entra de Microsoft en el código de ejemplo. Siga los vínculos siguientes para habilitarlo en la aplicación y la función de Azure:
Registre la aplicación en Microsoft Entra ID (mediante la configuración de la plataforma Android).
Configure la aplicación de App Service o Azure Functions para usar el registro de Microsoft Entra ID.