Comprender el flujo de trabajo de autenticación personalizada - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Comprender el flujo de trabajo de autenticación personalizada

La autenticación personalizada le permite definir cómo autenticar y autorizar a los clientes mediante recursos de autorizador.  Cada autorizador contiene una referencia a una función de Lambda administrada por el cliente, una clave pública opcional para validar las credenciales del dispositivo e información de configuración adicional. El siguiente diagrama ilustra el flujo de trabajo de autorización para la autenticación personalizada en AWS IoT Core.

Flujo de trabajo de autorización personalizado para la autenticación personalizada en AWS IoT Core.

AWS IoT Core flujo de trabajo personalizado de autenticación y autorización

En la siguiente lista se explica cada paso del flujo de trabajo de autenticación y autorización personalizada.

  1. Un dispositivo se conecta al punto final de AWS IoT Core datos de un cliente mediante uno de los dispositivos compatiblesProtocolos de comunicación de dispositivos. El dispositivo pasa las credenciales a los campos de cabecera o a los parámetros de consulta de la solicitud (en el caso de los WebSockets protocolos HTTP Publish o MQTT), o en el campo de nombre de usuario y contraseña del mensaje MQTT CONNECT (en el caso de los protocolos MQTT y MQTT). WebSockets

  2. AWS IoT Core comprueba una de estas dos condiciones:

    • La solicitud entrante especifica un autorizador.

    • El punto final de AWS IoT Core datos que recibe la solicitud tiene un autorizador predeterminado configurado para ello.

    Si AWS IoT Core encuentra un autorizador de alguna de estas formas, AWS IoT Core activa la función Lambda asociada al autorizador.

  3. (Opcional) Si ha activado la firma por token, AWS IoT Core valida la firma de la solicitud mediante la clave pública almacenada en el autorizador antes de activar la función Lambda. Si se produce un error en la validación, AWS IoT Core detiene la solicitud sin invocar la función de Lambda. 

  4. La función de Lambda recibe las credenciales y los metadatos de conexión de la solicitud y toma una decisión de autenticación.

  5. La función Lambda devuelve los resultados de la decisión de autenticación y un documento de AWS IoT Core política que especifica qué acciones están permitidas en la conexión. La función Lambda también devuelve información que especifica la frecuencia con la que se AWS IoT Core revalidan las credenciales de la solicitud mediante la invocación de la función Lambda.

  6. AWS IoT Core evalúa la actividad de la conexión con la política que ha recibido de la función Lambda.

  7. Después de establecer la conexión e invocar inicialmente al autorizador personalizado de Lambda, la siguiente invocación se puede retrasar hasta cinco minutos en las conexiones inactivas sin ninguna operación de MQTT. A continuación, las invocaciones posteriores seguirán el intervalo de actualización de su autorizador de Lambda personalizado. Este enfoque puede evitar invocaciones excesivas que podrían superar el límite de simultaneidad de Lambda de su empresa. Cuenta de AWS

Consideraciones de escalado

Como una función de Lambda gestiona la autenticación y la autorización de su autorizador, está sujeta a los límites de precios y servicios de Lambda, como la tasa de ejecución simultánea. Para obtener más información, consulte Precios de Lambda. Puede administrar la carga de la función de Lambda ajustando los parámetros refreshAfterInSeconds y disconnectAfterInSeconds de la respuesta de la función de Lambda. Para obtener más información acerca del contenido de la respuesta de una función de Lambda, consulte Definición de la función de Lambda.

nota

Si deja habilitada la firma, puede evitar que clientes no reconocidos activen su Lambda de forma excesiva. Tenga esto en cuenta antes de deshabilitar el inicio de sesión en su autorizador.

nota

El límite de tiempo de espera de la función de Lambda para el autorizador personalizado es de 5 segundos.