Solucionar problemas de configuração do provedor de identidade para o serviço FHIR
A versão 2023-12-01 da API do serviço FHIR® nos Serviços de Dados de Saúde do Azure dá suporte a dois provedores de identidade além do Microsoft Entra ID. Para fornecer acesso com escopo aos usuários, configure os dois provedores de identidade preenchendo a seção smartIdentityProviders
do objeto authenticationConfiguration
.
Mensagens de erro
Confira as mensagens de erro que ocorrem quando os provedores de identidade SMART do serviço FHIR falham, com ações recomendadas para resolver o problema.
Erro | Causa | Fix |
---|---|---|
O número máximo de provedores de identidade SMART é 2. | O número de provedores de identidade configurados é superior a dois. | Reduza o número de provedores de identidade para dois ou menos. |
Um ou mais valores de autoridade do provedor de identidade SMART são nulos, vazios ou inválidos. | O elemento authority da configuração do provedor de identidade deve ser uma URL totalmente qualificada. |
Certifique-se de que todos os valores de authority sejam URLs totalmente qualificadas. |
Todas as autoridades do provedor de identidade SMART devem ser exclusivas. | Os elementos authority das duas configurações do provedor de identidade são idênticos. |
Certifique-se de que todos os valores de authority sejam URLs exclusivas e totalmente qualificadas. |
O número máximo de aplicativos de provedores de identidade SMART é 2. | O número de aplicativos de provedores de identidade em uma configuração de provedor de identidade é superior a dois. | Reduza o número de aplicativos de provedores de identidade para um ou dois por provedor de identidade. |
Um ou mais aplicativos SMART são nulos. | O elemento applications para um ou mais provedores de identidade é nulo ou não contém nenhum aplicativo. |
Certifique-se de que todas as configurações de provedor de identidade tenham pelo menos um aplicativo configurado. |
Um ou mais aplicativos SMARTallowedDataActions contêm elementos duplicados. |
A matriz allowedDataActions em uma ou mais configurações de aplicativo contém valores duplicados. |
Remova todos os valores duplicados nas matrizes allowedDataActions . |
Um ou mais valores de allowedDataActions do aplicativo SMART são inválidos. |
O único valor aceitável na matriz allowedDataActions é Read . |
Remova todos os valores fora de conformidade das matrizes allowedDataActions . |
Um ou mais valores allowedDataActions do aplicativo SMART são nulos ou vazios. |
A matriz allowedDataActions 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 audience do aplicativo SMART são nulos, vazios ou inválidos. |
A cadeia de caracteres audience em uma ou mais configurações de aplicativo está nula, vazia, ou malformada. |
Certifique-se de que a cadeia de caracteres audience não esteja nula ou vazia e de que o valor seja um tipo de cadeia de caracteres. |
Todas as IDs de cliente de aplicativo do provedor de identidade SMART devem ser exclusivas. | O valor de clientId em uma ou mais configurações de aplicativo tem o mesmo valor que outro valor de clientId . |
Certifique-se de que todos os valores de clientId sejam exclusivos (incluindo as configurações de provedores de identidade). |
Um ou mais valores de ID do cliente do aplicativo SMART são nulos, vazios ou inválidos. | A cadeia de caracteres clientId em uma ou mais configurações de aplicativo está nula, vazia, ou malformada. |
Certifique-se de que a cadeia de caracteres clientId não esteja nula ou vazia e de que o valor seja um tipo de cadeia de caracteres. |
Uma falha de autorização com a API FHIR dos Serviços de Dados de Saúde do Azure usando um provedor de identidade de terceiros. | A função de usuário FHIR SMART causará esse problema à medida que adiciona uma camada de autenticação. | Certifique-se de que a função de usuário do FHIR SMART não esteja atribuída. |
Erros de solicitação da API do FHIR
Quando usar um token emitido por um provedor de identidade SMART para fazer solicitações ao serviço FHIR, você poderá se deparar com dois códigos de erro comuns: 401 Unauthorized
ou 403 Forbidden
. Para iniciar a solução de problemas, verifique a configuração do elemento smartIdentityProviders
, especialmente se o serviço FHIR for novo.
Siga essas etapas para verificar a configuração correta do elemento smartIdentityProviders
.
Verifique se o elemento
smartIdentityProviders
está configurado corretamente.Verifique se a cadeia de caracteres
authority
está correta. Certifique-se de que a cadeia de caracteresauthority
seja a autoridade de token para o provedor de identidade que emitiu o token de acesso.Verifique se a cadeia de caracteres
authority
é uma autoridade de token válida. Faça uma solicitação para a configuração do openid-connect. Acrescente/.well-known/openid-configuration
no final da cadeia de caracteres eaubrowser navigatesthority
cole-a no seu navegador. Se o valor estiver correto, o navegador navegará para aopenid-connect configuration
. Caso contrário, isso significa que há um problema com a cadeia de caracteres.Exemplo:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Verifique se a cadeia de caracteres
clientId
está correta. Certifique-se de que a cadeia de caracteresclientId
corresponda à ID do cliente (ou à ID do aplicativo) do aplicativo do recurso definido no provedor de identidade.Verifique se o método de solicitação é GET. O único tipo de solicitação com suporte é
GET
, porque os valoresallowedDataActions
só dão suporte aRead
.Verifique as declarações do token web JSON (JWT). Se o token de acesso estiver disponível, decodifique-o usando ferramentas online como a jwt.ms. Após o token ter sido decodificado, as declarações podem ser inspecionadas para verificar se estão corretas.
Verifique a iss (declaração do emissor). Verifique se a declaração
iss
corresponde exatamente ao valor deissuer
na configuração do OpenId dos seus provedores de identidade.Pegue o valor de
authority
da configuração desmartIdentityProvider
do provedor de identidade, acrescente-o à/.well-known/openid-configuration
e cole-a no navegador. Se o valor estiver correto, o navegador navegará para a configuração do openid-connect.Exemplo:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Verifique a azp ou appid (declaração da parte autorizada ou de appid). A declaração
azp
ouappid
deve corresponder exatamente ao valor declientId
fornecido na configuraçãosmartIdentityProvider
do provedor de identidade.Verifique a aud (declaração de audiência). A declaração
aud
deve corresponder exatamente aoaudience
valor fornecido na configuração dosmartIdentityProvider
provedor de identidade.Verifique a scp (declaração de escopo). A declaração
scp
é obrigatória. Se estiver ausente, a solicitação falhará. O formato da declaração scp deve estar em conformidade com o SMART nos Escopos v1 do FHIR. É importante observar que o serviço FHIR atualmente só dá suporte a escopos de Leitura. Uma variação aceitável de SMART nos Escopos v1 do FHIR substitui todas as barras (/) com um ponto (.) e asterisco (*) porall
. Por exemplo, uma versão aceitável do SMART no escopo depatient/*.read
do FHIR épatient.all.read
.
Observação
Apenas os escopos de read
têm suporte.
- Verifique o fhirUser ou a extension_fhirUser (declaração de usuário do FHIR). As declarações
fhirUser
ouextension_fhirUser
são obrigatórias. Se uma delas estiver ausente, a solicitação falhará. Essa declaração vincula o usuário no provedor de identidade a um recurso de usuário no serviço FHIR. O valor deve ser a URL totalmente qualificada de um recurso no serviço FHIR que representa a pessoa para a qual o token de acesso foi emitido. Por exemplo, o token de acesso emitido para um paciente que fez login deve ter uma declaração defhirUser
ouextension_fhirUser
que tenha a URL totalmente qualificada de um recurso de paciente no serviço FHIR.
Esquema para configurar provedores de identidade
O elemento smartIdentityProviders
é uma matriz JSON que contém uma ou duas identity provider configurations
. Um identity provider configuration
consiste em
Um valor de cadeia de caracteres
authority
que deve ser a URL totalmente qualificada da autoridade de token dos provedores de identidade.Uma matriz
applications
que contém o recursoapplication configurations
do provedor 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 uma ou duas application configurations
.
A application configuration
é formada por:
Um valor de cadeia de caracteres
clientId
para a ID do cliente (também conhecida como ID do aplicativo) do aplicativo do recurso do provedor de identidade.Uma cadeia de caracteres
audience
usada para validar a declaraçãoaud
em tokens de acesso.Uma matriz de
allowedDataActions
. A matrizallowedDataActions
só pode conter o valor de cadeia de caracteresRead
.
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
Próximas etapas
Usar o Azure Active Directory B2C para conceder acesso ao serviço FHIR
Configurar diversos provedores de identidade
Observação
FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.