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
.
Verifique se o elemento
smartIdentityProviders
está configurado corretamente.Verifique se a cadeia
authority
está correta. Verifique se a cadeiaauthority
é a autoridade de token para o fornecedor de identidade que emitiu o token de acesso.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 cadeiaaubrowser navigatesthority
e cole-a no browser. Se o valor estiver correto, o browser navegará até aoopenid-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
Verifique se a cadeia
clientId
está correta. Verifique se a cadeiaclientId
corresponde à ID de cliente (ou ID da aplicação) da aplicação de recurso definida no fornecedor de identidade.Verifique se o método de pedido é GET. O único tipo de solicitação suportado é
GET
, porque osallowedDataActions
valores suportam apenasRead
.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.
Verifique o iss (reclamação do emissor). Certifique-se de que a reclamação
iss
corresponde exatamente ao valorissuer
na sua configuração OpenID de fornecedores de identidade.Pegue no valor
authority
da configuração do fornecedor de identidadesmartIdentityProvider
, 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
Verifique o azp ou appid (parte autorizada ou reivindicação appid). A reclamação
azp
ouappid
deve corresponder exatamente ao valorclientId
fornecido na configuração do fornecedor de identidadesmartIdentityProvider
.Verifique o aud (reclamação de audiência). A reclamação
aud
tem de corresponder exatamente ao valoraudience
fornecido na configuração do fornecedor de identidadesmartIdentityProvider
.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 (*) porall
. Por exemplo, uma versão aceitável do âmbitopatient/*.read
SMART on FHIR épatient.all.read
.
Nota
Apenas read
escopos são suportados.
- Verifique o fhirUser ou extension_fhirUser (reclamação de utilizador FHIR). A reclamação
fhirUser
ouextension_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çãofhirUser
ouextension_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 recursoapplication 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çãoaud
em tokens de acesso.Uma matriz de
allowedDataActions
. A matrizallowedDataActions
só pode conter o valor da cadeiaRead
.
{
"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.