Verificación de token personalizada con autorizadores Lambda - AWS HealthImaging

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.

Verificación de token personalizada con autorizadores Lambda

HealthImaging implementa el soporte de OIDC a través de una arquitectura que utiliza autorizadores Lambda, lo que permite a los clientes implementar su propia lógica de verificación de token. Este diseño le permite controlar de forma flexible cómo se validan los tokens y cómo se aplican las decisiones de acceso, y se adapta a un panorama diverso de proveedores de identidad compatibles con el OIDC () y a distintos métodos de verificación de los tokens. IdPs

Flujo de autenticación

Así es como funciona la autenticación a un alto nivel:

  1. El cliente llama a la DICOMweb API: tu aplicación se autentica con el proveedor de identidad OIDC que hayas elegido y recibe un token de identificación firmado (JWT). Para cada solicitud DICOMweb HTTP, el cliente debe incluir el token de acceso OIDC en el encabezado de autorización (normalmente, un token de portador). Antes de que la solicitud llegue a sus datos, HealthImaging extrae este token de la solicitud entrante y llama al autorizador Lambda que usted configure.

    1. El encabezado suele seguir el formato:. Authorization: Bearer <token>

  2. Verificación inicial: HealthImaging verifica las solicitudes de token de acceso para rechazar rápidamente cualquier token obviamente inválido o caducado sin invocar innecesariamente la función Lambda. HealthImaging realiza una verificación inicial de determinadas afirmaciones estándar en el token de acceso antes de invocar el autorizador Lambda:

    1. iat(Emitido el): HealthImaging comprueba si el tiempo de emisión del token está dentro de los límites aceptables.

    2. exp(Hora de caducidad): HealthImaging verifica que el token no haya caducado.

    3. nbf(No antes de la hora): si está presente, HealthImaging garantiza que el token no se esté utilizando antes de la hora de inicio válida.

  3. HealthImaging invoca un autorizador de Lambda: si se aprueba la verificación de la reclamación inicial HealthImaging , delega la verificación de token adicional a la función de autorización de Lambda configurada por el cliente. HealthImaging pasa el token extraído y otra información de solicitud relevante a la función Lambda. La función Lambda verifica la firma y las afirmaciones del token.

  4. Verificar con un proveedor de identidad: La Lambda contiene un código personalizado que comprueba la firma del token de ID, realiza una verificación del token más exhaustiva (por ejemplo, del emisor, la audiencia o las reclamaciones personalizadas) y valida esas reclamaciones contra el IdP cuando es necesario.

  5. El autorizador devuelve una política de acceso: tras una verificación correcta, la función Lambda determina los permisos adecuados para el uso autenticado. A continuación, el autorizador Lambda devuelve el nombre del recurso de Amazon (ARN) de una función de IAM que representa el conjunto de permisos que se van a conceder.

  6. Ejecución de la solicitud: si la función de IAM asumida tiene los permisos necesarios, HealthImaging procede a devolver el recurso solicitado. DICOMWeb Si los permisos son insuficientes, HealthImaging deniega la solicitud y devuelve el error de respuesta correspondiente (es decir, 403 Prohibido).

nota

El servicio AWS HealthImaging no administra la función lambda del autorizador. Se ejecuta en su cuenta. AWS A los clientes se les cobra por el tiempo de invocación y ejecución de la función por separado de sus HealthImaging cargos.

Información general de la arquitectura

Diagrama que muestra el flujo de trabajo: el cliente envía el token, el autorizador Lambda valida y procesa la solicitud HealthImaging

Flujo de trabajo de autenticación OIDC con autorizador Lambda

Requisitos previos

Requisitos del token de acceso

HealthImaging requiere que el token de acceso esté en formato JSON Web Token (JWT). Muchos proveedores de identidad (IDPs) ofrecen este formato de token de forma nativa, mientras que otros permiten seleccionar o configurar el formulario de token de acceso. Asegúrese de que el IDP que elija pueda emitir los tokens JWT antes de continuar con la integración.

Formato de token

El token de acceso debe estar en formato JWT (JSON Web Token)

Reclamaciones requeridas
exp(Hora de caducidad)

Declaración obligatoria que especifica cuándo deja de ser válido el token.

  • Debe ser posterior a la hora actual en UTC

  • Representa el momento en que el token deja de ser válido

iat(Emitido el)

Declaración obligatoria que especifica cuándo se emitió el token.

  • Debe ser anterior a la hora actual en UTC

  • NO debe ser anterior a 12 horas antes de la hora actual en UTC

  • De hecho, esto impone una vida útil máxima del token de 12 horas

nbf(No antes de tiempo)

Declaración opcional que especifica la primera vez que se puede usar el token.

  • Si está presente, será evaluado por HealthImaging

  • Especifica el tiempo antes del cual no se debe aceptar el token

Requisitos de tiempo de respuesta del autorizador Lambda

HealthImaging impone estrictos requisitos de temporización para las respuestas de los autorizadores Lambda a fin de garantizar un rendimiento óptimo de la API. La función Lambda debe volver en 1 segundo.

Prácticas recomendadas

Optimice la verificación del token

  • Guarde en caché los JWKS (conjuntos de claves web JSON) cuando sea posible

  • Siempre que sea posible, guarde en caché los tokens de acceso válidos

  • Minimice las llamadas de red a su proveedor de identidad

  • Implemente una lógica de validación de tokens eficiente

Configuración Lambda

  • Las funciones basadas en Python y Node.js normalmente se inicializan más rápido

  • Reduzca la cantidad de bibliotecas externas que se van a cargar

  • Configure la asignación de memoria adecuada para garantizar un rendimiento uniforme

  • Supervise los tiempos de ejecución mediante CloudWatch métricas

Habilitación de la autenticación OIDC

  • La autenticación OIDC solo se puede habilitar al crear un nuevo almacén de datos

  • La API no admite la activación de OIDC para los almacenes de datos existentes

  • Para habilitar OIDC en un almacén de datos existente, los clientes deben ponerse en contacto con Support AWS