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.
En este artículo se describe cómo usar Azure Functions para crear un servicio de acceso de usuarios de confianza.
Important
El punto de conexión creado en este tutorial no es seguro. Asegúrese de leer los detalles de seguridad del artículo seguridad de Azure Functions . Debe agregar seguridad al punto de conexión para asegurarse de que los actores incorrectos no pueden aprovisionar tokens.
En este artículo se describe cómo:
- Configure una función.
- Generar tokens de acceso.
- Pruebe la función .
- Implemente y ejecute la función.
Descarga de código
Busque el código finalizado de este inicio rápido en GitHub.
Prerequisites
- Una cuenta de Azure con una suscripción activa. Si no tiene una suscripción de Azure, puede crear una cuenta de forma gratuita.
- Visual Studio Code en una de las plataformas admitidas.
-
Node.js, versiones de Active LTS y Maintenance LTS (se recomienda la versión 10.14.1). Use el comando
node --versionpara comprobar la versión. - La extensión de Azure Functions para Visual Studio Code.
- Recurso activo de Communication Services y una cadena de conexión. Para más información, consulte Inicio rápido: Creación y administración de recursos de Communication Services.
Overview
En este tutorial, creará una aplicación de funciones que actúa como servicio de aprovisionamiento de tokens de confianza. Puede usar este tutorial para arrancar su propio servicio de aprovisionamiento de tokens.
Este servicio es responsable de autenticar a los usuarios en Communication Services. Los usuarios de las aplicaciones de Communication Services requieren un token de acceso para participar en subprocesos de chat y llamadas VoIP. La función funciona como un intermediario de confianza entre el usuario y Communication Services. Puede aprovisionar tokens de acceso sin exponer la cadena de conexión de recursos a los usuarios.
Para obtener más información, consulte la documentación conceptual sobre la autenticación y la autorización y la arquitectura del servidor cliente.
Configuración de una función
En esta sección se describen los procedimientos para configurar una función.
Configuración de Azure Functions
Vamos a configurar primero la estructura básica de la función. Para obtener instrucciones paso a paso para la instalación, consulte Inicio rápido: Creación de una función de C# en Azure mediante Visual Studio Code.
La función requiere la siguiente configuración:
- Lenguaje: JavaScript
- Plantilla: desencadenador HTTP
- Nivel de autorización: anónimo (si prefiere un modelo de autorización diferente, puede cambiarlo más adelante).
- Nombre de la función: definido por el usuario
Después de seguir las instrucciones de Inicio rápido: Creación de una función de C# en Azure mediante Visual Studio Code con la configuración anterior, debe tener un proyecto en Visual Studio Code para la función con un index.js archivo que contenga la propia función. El código siguiente dentro del archivo debe 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
};
}
El siguiente paso es instalar bibliotecas de Communication Services.
Instalación de bibliotecas de Communication Services
Se usa la biblioteca Identity para generar tokens de acceso de usuario.
Use el npm install comando para instalar el SDK de identidad de Communication Services para JavaScript.
npm install @azure/communication-identity --save
La opción --save muestra la biblioteca como dependencia en el archivo package.json.
En la parte superior del index.js archivo, importe la interfaz para el CommunicationIdentityClient parámetro .
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Generación de tokens de acceso
Para que su función pueda generar tokens de acceso de usuario, primero debe usar la cadena de conexión de su recurso de Servicios de Comunicación.
Para obtener más información sobre cómo recuperar la cadena de conexión, consulte Inicio rápido: Creación y administración de recursos de Communication Services.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
A continuación, modifique la función original para generar tokens de acceso de usuario.
Para generar tokens de acceso de usuario, use el createUser método para crear un usuario. Una vez creado el usuario, use el getToken método para generar un token para ese usuario, que devuelve la función.
En este ejemplo, configurará el ámbito del token en voip. Puede que se necesiten otros ámbitos para su aplicación. Para más información sobre los ámbitos, consulte Creación y administración de tokens de acceso.
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 el parámetro Communication Services CommunicationUser existente, puede omitir el paso de creación y generar un token de acceso. Para obtener más información, consulte Creación y administración de tokens de acceso.
Prueba de la función
Ejecute la función localmente mediante F5. Esta acción inicializa la función localmente y hace que sea accesible a través de http://localhost:7071/api/FUNCTION_NAME. Para más información sobre cómo ejecutar localmente, consulte Inicio rápido: Creación de una función de C# en Azure mediante Visual Studio Code.
Abra la dirección URL en el explorador y verá un cuerpo de respuesta con el identificador de usuario de comunicación, el token y la expiración del token.
Implementación de la función en Azure
Para implementar la función, siga las instrucciones paso a paso de Inicio rápido: Creación de una función de C# en Azure mediante Visual Studio Code.
En resumen, necesita:
- Inicie sesión en Azure desde Visual Studio.
- Publicar el proyecto en la cuenta de Azure. Aquí debe elegir una suscripción existente.
- Cree un nuevo recurso de función mediante el asistente de Visual Studio o un recurso existente. Para un nuevo recurso, debe configurarlo en la región, el entorno de ejecución y el identificador único deseados.
- Espere a que finalice la implementación.
- Ejecute la función .
Ejecución de la función
Ejecute la función mediante la dirección URL http://<function-appn-ame>.azurewebsites.net/api/<function-name>.
Para buscar la dirección URL, haga clic con el botón derecho en la función en Visual Studio Code y copie la dirección URL de la función.
Para más información sobre cómo ejecutar la función, consulte Inicio rápido: Creación de una función de C# en Azure mediante Visual Studio Code.
Protección del punto de conexión
Como parte de la configuración de un servicio confiable para proporcionar tokens de acceso a los usuarios, debe tener en cuenta la seguridad de ese punto de conexión para asegurarse de que ningún agente malicioso pueda crear tokens sin autorización para el servicio. Azure Functions proporciona características de seguridad integradas que puede usar para proteger el punto de conexión mediante diferentes tipos de directivas de autenticación. Para más información, consulte Seguridad de Azure Functions.
Limpieza de recursos
Si desea limpiar y quitar una suscripción de Azure Communication Services, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él. Puede obtener más información sobre cómo limpiar los recursos de Communication Service y limpiar los recursos de Azure Functions.