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:
-
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.
-
El encabezado suele seguir el formato:.
Authorization: Bearer <token>
-
-
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:
-
iat(Emitido el): HealthImaging comprueba si el tiempo de emisión del token está dentro de los límites aceptables. -
exp(Hora de caducidad): HealthImaging verifica que el token no haya caducado. -
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.
-
-
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.
-
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.
-
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.
-
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
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