As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Verificação personalizada de tokens com autorizadores Lambda
HealthImaging implementa o suporte do OIDC por meio de uma arquitetura que usa autorizadores Lambda, permitindo que os clientes implementem sua própria lógica de verificação de token. Esse design oferece controle flexível sobre como os tokens são validados e como as decisões de acesso são aplicadas, acomodando um cenário diversificado de provedores de identidade compatíveis com OIDC (IdPs) e vários métodos de verificação de tokens.
Fluxo de autenticação
Veja como a autenticação funciona em alto nível:
-
O cliente chama a DICOMweb API: seu aplicativo se autentica com o provedor de identidade OIDC escolhido e recebe um token de ID assinado (JWT). Para cada solicitação DICOMweb HTTP, o cliente deve incluir o token de acesso OIDC no cabeçalho de autorização (normalmente um token de portador). Antes que a solicitação chegue aos seus dados, HealthImaging extrai esse token da solicitação recebida e chama um autorizador Lambda que você configura.
-
O cabeçalho normalmente segue o formato:
Authorization: Bearer <token>.
-
-
Verificação inicial: HealthImaging verifica as reivindicações do token de acesso para rejeitar rapidamente quaisquer tokens obviamente inválidos ou expirados sem invocar a função Lambda desnecessariamente. HealthImaging executa uma verificação inicial de determinadas declarações padrão no token de acesso antes de invocar o autorizador Lambda:
-
iat(Emitido em): HealthImaging verifica se o tempo de emissão do token está dentro dos limites aceitáveis. -
exp(Tempo de expiração): HealthImaging verifica se o token não expirou. -
nbf(Não antes da hora): Se presente, HealthImaging garante que o token não esteja sendo usado antes do horário de início válido.
-
-
HealthImaging invoca um autorizador do Lambda: se a verificação inicial da solicitação for aprovada, HealthImaging delegará a verificação adicional do token à função autorizadora do Lambda configurada pelo cliente. HealthImaging passa o token extraído e outras informações relevantes da solicitação para a função Lambda. A função Lambda verifica a assinatura e as declarações do token.
-
Verifique com um provedor de identidade: o Lambda contém um código personalizado que verifica a assinatura do token de ID, realiza uma verificação mais abrangente do token (por exemplo, emissor, público, declarações personalizadas) e valida essas declarações em relação ao IdP quando necessário.
-
O autorizador retorna uma política de acesso: após a verificação bem-sucedida, a função Lambda determina as permissões apropriadas para o uso autenticado. Em seguida, o autorizador do Lambda retorna o nome do recurso da Amazon (ARN) de uma função do IAM que representa o conjunto de permissões a serem concedidas.
-
Execução da solicitação: se a função assumida do IAM tiver as permissões necessárias, HealthImaging continue com a devolução do DICOMWeb recurso solicitado. Se as permissões forem insuficientes, HealthImaging nega a solicitação e retorna um erro de resposta de erro apropriado (ou seja, 403 Forbidden).
nota
A função lambda do autorizador não é gerenciada pelo serviço da AWS HealthImaging . Ele é executado em sua AWS conta. Os clientes são cobrados pela invocação da função e pelo tempo de execução separadamente de suas HealthImaging cobranças.
Visão geral da arquitetura
Fluxo de trabalho de autenticação OIDC com o autorizador Lambda
Pré-requisitos
Requisitos de token de acesso
HealthImaging exige que o token de acesso esteja no formato JSON Web Token (JWT). Muitos provedores de identidade (IDPs) oferecem esse formato de token nativamente, enquanto outros permitem que você selecione ou configure o formulário do token de acesso. Certifique-se de que seu IDP escolhido possa emitir tokens JWT antes de prosseguir com a integração.
- Formato do token
-
O token de acesso deve estar no formato JWT (JSON Web Token)
- Declarações necessárias
-
exp(Tempo de expiração)-
Reivindicação obrigatória que especifica quando o token se torna inválido.
Deve ser posterior à hora atual em UTC
Representa quando o token se torna inválido
iat(Emitido em)-
Reivindicação obrigatória que especifica quando o token foi emitido.
Deve ser antes da hora atual em UTC
NÃO deve ser antes de 12 horas antes da hora atual em UTC
Isso efetivamente impõe uma vida útil máxima do token de 12 horas.
nbf(Não antes do tempo)-
Declaração opcional que especifica a primeira vez em que o token pode ser usado.
Se presente, será avaliado por HealthImaging
Especifica o tempo antes do qual o token não deve ser aceito
Requisitos de tempo de resposta do autorizador Lambda
HealthImaging impõe requisitos rígidos de tempo para as respostas do autorizador Lambda para garantir o desempenho ideal da API. Sua função Lambda deve retornar em 1 segundo.
Práticas recomendadas
Otimize a verificação de tokens
Armazene JWKS (JSON Web Key Sets) quando possível
Armazene tokens de acesso válidos em cache quando possível
Minimize as chamadas de rede para seu provedor de identidade
Implemente uma lógica eficiente de validação de tokens
Configuração Lambda
As funções baseadas em Python e Node.js normalmente inicializam mais rápido
Reduza a quantidade de bibliotecas externas a serem carregadas
Configure a alocação de memória adequada para garantir um desempenho consistente
Monitore os tempos de execução usando CloudWatch métricas
Ativação da autenticação OIDC
A autenticação OIDC só pode ser ativada ao criar um novo armazenamento de dados
A ativação do OIDC para armazenamentos de dados existentes não é suportada pela API
Para habilitar o OIDC em um armazenamento de dados existente, os clientes devem entrar em contato com o Support AWS