Condividi tramite


Risolvere i problemi di configurazione del provider di identità per il servizio FHIR

La versione API 2023-12-01 del servizio FHIR® in Servizi per i dati sanitari di Azure supporta due provider di identità oltre a Microsoft Entra ID. Per fornire un accesso con ambito agli utenti, configurare i due provider di identità popolando la sezione smartIdentityProviders dell'oggetto authenticationConfiguration.

Messaggi di errore

Seguono i messaggi di errore che vengono visualizzati se i provider di identità SMART del servizio FHIR non vanno a buon fine, con azioni consigliate da intraprendere per risolvere il problema.

Error Causa Fix
Il numero massimo di provider di identità SMART è 2. Il numero di provider di identità configurati è maggiore di due. Ridurre il numero di provider di identità a due o meno.
Uno o più valori dell'autorità del provider di identità SMART sono null, vuoti o non validi. L'elemento authority della configurazione del provider di identità deve essere un URL completo. Assicurarsi che tutti i valori authority siano URL completi.
Tutte le autorità del provider di identità SMART devono essere univoche. Gli elementi authority delle due configurazioni del provider di identità sono identici. Assicurarsi che tutti i valori authority siano URL univoci e completi.
Il numero massimo di applicazioni del provider di identità SMART è 2. Il numero di applicazioni del provider di identità in una configurazione del provider di identità è superiore a due. Ridurre il numero di applicazioni del provider di identità a uno o due per ogni provider di identità.
Una o più applicazioni SMART sono Null. L'elemento applications per uno o più provider di identità è Null o non contiene applicazioni. Verificare che tutte le configurazioni del provider di identità abbiano almeno un'applicazione configurata.
Una o più applicazioni allowedDataActions SMART contengono elementi duplicati. La matrice allowedDataActions in una o più configurazioni dell'applicazione contiene valori duplicati. Rimuovere tutti i valori duplicati nelle matrici allowedDataActions.
Uno o più valori dell'applicazione allowedDataActions SMART non sono validi. L'unico valore accettabile nella matrice allowedDataActions è Read. Rimuovere tutti i valori non conformi dalle matrici allowedDataActions.
Uno o più valori dell'applicazione SMARTallowedDataActions sono Null o vuoti. La matrice allowedDataActions in una o più configurazioni di applicazioni è Null o vuota. L'unico valore accettabile nella matrice allowedDataActions è Read.
Uno o più valori dell'applicazione audience SMART sono null, vuoti o non validi. La stringa audience in una o più configurazioni dell'applicazione è null, vuota o non valida. Verificare che la stringa audience non sia null o vuota e che il valore sia un tipo stringa.
Tutti gli ID client dell'applicazione del provider di identità SMART devono essere univoci. Il valore clientId in una o più configurazioni dell'applicazione è lo stesso valore di un altro valore clientId. Assicurarsi che tutti i valori clientId siano univoci (incluse le configurazioni dei provider di identità).
Uno o più valori id client applicazione SMART sono null, vuoti o non validi. La stringa clientId in una o più configurazioni dell'applicazione è null, vuota o non valida. Verificare che la stringa clientId non sia null o vuota e che il valore sia un tipo stringa.
Errore di autorizzazione con l'API FHIR di Servizi dati di Integrità di Azure usando un provider di identità di terze parti. Il ruolo utente SMART FHIR causerà questo problema man mano che aggiunge un livello di autenticazione. Assicurarsi che il ruolo utente FHIR SMART non sia assegnato.

Errori di richiesta dell'API FHIR

Quando si usa un token rilasciato da un provider di identità SMART per effettuare richieste al servizio FHIR, è possibile che si verifichino due codici di errore comuni: 401 Unauthorized o 403 Forbidden. Per avviare la risoluzione dei problemi, controllare la configurazione dell'elemento smartIdentityProviders, soprattutto se il servizio FHIR è nuovo.

Seguire questa procedura per verificare la configurazione corretta dell'elemento smartIdentityProviders.

  1. Verificare che l'elemento smartIdentityProviders sia configurato correttamente.

  2. Verificare che la stringa authority sia corretta. Assicurarsi che la stringa authority sia l'autorità di token per il provider di identità che ha emesso il token di accesso.

  3. Verificare che la stringa authority sia un'autorità di token valida. Effettuare una richiesta per la configurazione openid-connect. Aggiungere /.well-known/openid-configuration alla fine della stringa aubrowser navigatesthority e incollarlo nel browser. Se il valore è corretto, il browser passa a openid-connect configuration. In caso contrario, si è verificato un problema con la stringa.

    Esempio:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
    
  4. Verificare che la stringa clientId sia corretta. Verificare che la stringa clientId corrisponda all'ID client (o all'applicazione ID) dell'applicazione di risorsa definita nel provider di identità.

  5. Verificare che il metodo di richiesta sia GET. L'unico tipo di richiesta supportato è GET, perché i valori allowedDataActions supportano solo Read.

  6. Verificare le attestazioni del token Web JSON (JWT). Se il token di accesso è disponibile, decodificarlo usando strumenti online come jwt.ms. Dopo la decodifica del token, le attestazioni possono essere esaminate per verificare la correttezza.

    Screenshot che mostra le attestazioni nei token web jwt.

  7. Verificare l’iss (issuer claim). Assicurarsi che l'attestazione iss corrisponda esattamente al valore issuer nella configurazione OpenId dei provider di identità.

    Prendere il valore authority dalla configurazione del provider di identità smartIdentityProvider, aggiungerlo con /.well-known/openid-configuration e incollarlo nel browser. Se il valore è corretto, il browser passa alla configurazione openid-connect.

    Esempio:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
  8. Verificare azp o appid (parte autorizzata o attestazione appid). L'attestazione azp o appid deve corrispondere esattamente al valore clientId specificato nella configurazione del provider di identità smartIdentityProvider.

  9. Verificare l'aud (audience claim). L'attestazione aud deve corrispondere esattamente al valore audience specificato nella configurazione del provider di identità smartIdentityProvider.

  10. Verify the scp (scope claim). L’attestazione scp è obbligatoria. Se manca, la richiesta ha esito negativo. Il formato dell'attestazione scp deve essere conforme agli ambiti SMART on FHIR v1. È importante notare che il servizio FHIR attualmente supporta solo gli ambiti di lettura. Una variante accettabile di SMART on FHIR v1 Scopes sostituisce qualsiasi barra (/) con un punto (.) e un asterisco (*) con all. Ad esempio, una versione accettabile dell'ambito patient/*.read SMART on FHIR è patient.all.read.

Nota

Sono supportati solo read ambiti

  1. Verificare fhirUser o extension_fhirUser (attestazione utente FHIR).Verify the fhirUser or extension_fhirUser (FHIR user claim). L'attestazione fhirUser o extension_fhirUser è obbligatoria. Se manca, la richiesta ha esito negativo. Questa attestazione collega l'utente nel provider di identità con una risorsa utente nel servizio FHIR. Il valore deve essere l'URL completo di una risorsa nel servizio FHIR che rappresenta il singolo a cui viene rilasciato il token di accesso. Ad esempio, il token di accesso rilasciato a un paziente che ha eseguito l'accesso deve avere un'attestazione fhirUser o extension_fhirUser che ha l'URL completo di una risorsa paziente nel servizio FHIR.

Schema per la configurazione dei provider di identità

L'elemento smartIdentityProviders è una matrice JSON che contiene uno o due identity provider configurations. identity provider configuration consiste di

  • Un valore stringa authority che deve essere l'URL completo dell'autorità di token dei provider di identità.

  • Una matrice applications che contiene la risorsa del provider di identità application configurations.

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

L'elemento applications è una matrice JSON che contiene uno o due application configurations.

La application configuration è costituita dagli elementi seguenti:

  • Un valore stringa clientId per l'ID client (noto anche come ID applicazione) dell'applicazione delle risorse del provider di identità.

  • Una stringa audience usata per convalidare l'attestazione aud nei token di accesso.

  • Matrice di oggetti allowedDataActions. La matrice allowedDataActions può contenere solo il valore stringa Read.

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

Passaggi successivi

Usare Azure Active Directory B2C per concedere l'accesso al servizio FHIR

Configurare i provider di identità

Nota

FHIR® è un marchio registrato di HL7 ed è usato con l'autorizzazione di HL7.