Partilhar via


Resolver problemas de configuração do fornecedor de identidade para o serviço FHIR

A API versão 2023-12-01 do serviço FHIR® nos Serviços de Dados de Saúde do Azure dá suporte a dois provedores de identidade, além da ID do Microsoft Entra. Para fornecer acesso com escopo aos usuários, configure os dois provedores de identidade preenchendo a smartIdentityProviders authenticationConfiguration seção do objeto.

Mensagens de erro

Aqui estão as mensagens de erro que ocorrem se os provedores de identidade SMART do serviço FHIR falharem, com ações recomendadas a serem tomadas para resolver o problema.

Erro Motivo Fix
O número máximo de fornecedores de identidade SMART é 2. O número de fornecedores de identidade configurados é superior a dois. Reduza o número de fornecedores de identidade para dois ou menos.
Um ou mais valores de autoridade do fornecedor de identidade SMART são nulos, vazios ou inválidos. O elemento authority da configuração do fornecedor de identidade deve ser uma URL totalmente qualificada. Certifique-se de que todos os valores authority são URL totalmente qualificados.
Todas as autoridades do fornecedor de identidade SMART têm de ser únicas. Os elementos authority das duas configurações do fornecedor de identidade são idênticos. Certifique-se de que todos os valores authority são URL totalmente qualificados e únicos.
O número máximo de aplicações do fornecedor de identidade SMART é 2. O número de aplicações do fornecedor de identidade numa configuração de fornecedor de identidade é mais de dois. Reduza o número de aplicações do fornecedor de identidade para um ou dois por fornecedor de identidade.
Uma ou mais aplicações SMART são nulas. O elemento applications para um ou mais fornecedores de identidade é nulo ou não contém aplicações. Verifique se todas as configurações do fornecedor de identidade têm pelo menos uma aplicação configurada.
Uma ou mais aplicações allowedDataActions SMART contêm elementos duplicados. A matriz allowedDataActions numa ou mais configurações de aplicação contém valores duplicados. Remova quaisquer valores duplicados nas matrizes allowedDataActions.
Um ou mais valores de aplicação allowedDataActions SMART são inválidos. O único valor aceitável na matriz allowedDataActions é Read. Remova quaisquer valores que não estejam em conformidade das matrizes allowedDataActions.
Um ou mais valores de aplicativo allowedDataActions SMART são nulos ou vazios. A allowedDataActions matriz em uma ou mais configurações de aplicativo é nula ou vazia. O único valor aceitável na matriz allowedDataActions é Read.
Um ou mais valores de aplicação audience SMART são inválidos, nulos ou estão vazios. A cadeia audience numa ou mais configurações de aplicação é nula, está vazia ou malformada. Verifique se a cadeia audience não é nula nem está vazia e se o valor é um tipo de cadeia.
Todos os IDs de cliente da aplicação do fornecedor de identidade SMART têm de ser exclusivas. O valor clientId numa ou mais configurações de aplicação é o mesmo valor que outro valor clientId. Certifique-se de que todos os valores clientId são exclusivos (inclusive nas configurações do fornecedor de identidade).
Um ou mais valores de ID de cliente da aplicação SMART são inválidos, nulos ou estão vazios. A cadeia clientId numa ou mais configurações de aplicação é nula, está vazia ou malformada. Verifique se a cadeia clientId não é nula nem está vazia e se o valor é um tipo de cadeia.
Uma falha de autorização com a API FHIR dos Serviços de Dados de Saúde do Azure usando o provedor de identidade de terceiros. A função de usuário FHIR SMART causará esse problema ao adicionar uma camada de autenticação. Certifique-se de que a função de utilizador FHIR SMART não está atribuída.

Erros de pedido de API FHIR

Quando utiliza um token emitido por um fornecedor de identidade SMART para fazer pedidos para o serviço FHIR, pode encontrar dois códigos de erro comuns: 401 Unauthorized ou 403 Forbidden. Para iniciar a resolução de problemas, verifique a configuração do elemento smartIdentityProviders, especialmente se o serviço FHIR for novo.

Siga estas etapas para verificar a configuração correta do elemento smartIdentityProviders.

  1. Verifique se o elemento smartIdentityProviders está configurado corretamente.

  2. Verifique se a cadeia authority está correta. Verifique se a cadeia authority é a autoridade de token para o fornecedor de identidade que emitiu o token de acesso.

  3. Verifique se a cadeia authority é uma autoridade de token válida. Faça um pedido para a configuração openID connect. Anexe /.well-known/openid-configuration no final da cadeia aubrowser navigatesthority e cole-a no browser. Se o valor estiver correto, o browser navegará até ao openid-connect configuration. Se isso não acontecer, há um problema com a cadeia.

    Exemplo:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
    
  4. Verifique se a cadeia clientId está correta. Verifique se a cadeia clientId corresponde à ID de cliente (ou ID da aplicação) da aplicação de recurso definida no fornecedor de identidade.

  5. Verifique se o método de pedido é GET. O único tipo de solicitação suportado é GET, porque os allowedDataActions valores suportam apenas Read.

  6. Verifique as reclamações de JSON Web Token (JWT). Se o token de acesso estiver disponível, descodifique-o utilizando ferramentas online como jwt.ms. Depois que o token é descodificado, as reclamações podem ser inspecionadas quanto à sua correção.

    Captura de tela mostrando declarações de token da web jwt.

  7. Verifique o iss (reclamação do emissor). Certifique-se de que a reclamação iss corresponde exatamente ao valor issuer na sua configuração OpenID de fornecedores de identidade.

    Pegue no valor authority da configuração do fornecedor de identidade smartIdentityProvider, anexe-o com /.well-known/openid-configuration e cole-o no seu browser. Se o valor estiver correto, o browser navegará até à configuração do OpenID Connect.

    Exemplo:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
  8. Verifique o azp ou appid (parte autorizada ou reivindicação appid). A reclamação azp ou appid deve corresponder exatamente ao valor clientId fornecido na configuração do fornecedor de identidade smartIdentityProvider.

  9. Verifique o aud (reclamação de audiência). A reclamação aud tem de corresponder exatamente ao valor audience fornecido na configuração do fornecedor de identidade smartIdentityProvider.

  10. Verifique o scp (reclamação de âmbito). A reclamação scp é necessária. Se estiver em falta, o pedido falhará. O formato da reclamação scp tem de estar em conformidade com os Âmbitos SMART on FHIR v1. É importante notar que, atualmente, o serviço FHIR suporta apenas âmbitos de leitura. Uma variação aceitável de Âmbitos SMART on FHIR v1 substitui qualquer barra (/) por um ponto (.) e um asterisco (*) por all. Por exemplo, uma versão aceitável do âmbito patient/*.read SMART on FHIR é patient.all.read.

Nota

Apenas read escopos são suportados.

  1. Verifique o fhirUser ou extension_fhirUser (reclamação de utilizador FHIR). A reclamação fhirUser ou extension_fhirUser é necessária. Se estiver em falta, o pedido falhará. Esta reclamação vincula o utilizador no fornecedor de identidade a um recurso de utilizador no serviço FHIR. O valor tem de ser o URL totalmente qualificado de um recurso no serviço FHIR que representa o indivíduo para o qual o token de acesso é emitido. Por exemplo, o token de acesso emitido para um paciente que fez iniciou sessão deve ter uma reclamação fhirUser ou extension_fhirUser que tenha o URL totalmente qualificado de um recurso de paciente no serviço FHIR.

Esquema para configurar fornecedores de identidade

O elemento smartIdentityProviders é uma matriz JSON que contém um ou dois identity provider configurations. Um identity provider configuration consiste em

  • Um valor de cadeia authority que deve ser o URL totalmente qualificado da autoridade de token dos fornecedores de identidade.

  • Uma matriz applications que contém o recurso application configurations do fornecedor de identidade.

{
  "properties": {
    "authenticationConfiguration": {
      "authority": "string",
      "audience": "string",
      "smartProxyEnabled": "bool",
      "smartIdentityProviders": [
        {
          "authority": "string",
          "applications": [
            {
              "clientId": "string",
              "allowedDataActions": "array",
              "audience": "string"
            }
          ]
        }
      ]
    }
  }
}

O elemento applications é uma matriz JSON que contém um ou dois application configurations.

Os application configuration são constituídos por:

  • Um valor de cadeia clientId para a ID de cliente (também conhecida como ID da aplicação) da aplicação de recurso do fornecedor de identidade.

  • Uma cadeia audience utilizada para validar a reclamação aud em tokens de acesso.

  • Uma matriz de allowedDataActions. A matriz allowedDataActions só pode conter o valor da cadeia Read.

{
  "authority": "string",
  "applications": [
    {
      "clientId": "string",
      "allowedDataActions": "array",
      "audience": "string"
    }
  ]
}
{
  "clientId": "string",
  "allowedDataActions": "array",
  "audience": "string"
}

Próximos passos

Usar o Azure Ative Directory B2C para conceder acesso ao serviço FHIR

Configurar vários fornecedores de identidades

Nota

FHIR® é uma marca registada da HL7 e é utilizada com a permissão da HL7.