

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo di un'autorizzazione granulare con un data store abilitato SMART on FHIR HealthLake
<a name="reference-smart-on-fhir-fine-grained-authorization"></a>

[Gli ambiti](reference-smart-on-fhir-oauth-scopes.md#smart-on-fhir-scopes-rest) da soli non forniscono la specificità necessaria sui dati a cui un richiedente è autorizzato ad accedere in un data store. L'utilizzo di un'autorizzazione granulare consente un livello di specificità più elevato quando si concede l'accesso a un data store abilitato per SMART on FHIR. HealthLake Per utilizzare un'autorizzazione granulare, imposta `FineGrainedAuthorizationEnabled` uguale a nel parametro della richiesta. `True` `IdentityProviderConfiguration` `CreateFHIRDatastore`

Se hai abilitato l'autorizzazione granulare, il tuo server di autorizzazione restituisce un `fhirUser` ambito insieme al `id_token` token di accesso. Ciò consente di recuperare le informazioni sull'utente dall'applicazione client. L'applicazione client deve trattare il `fhirUser` claim come l'URI di una risorsa FHIR che rappresenta l'utente corrente. Questo valore può essere `Patient`, `Practitioner` o `RelatedPerson`. La risposta del server di autorizzazione include anche un `user/` ambito che definisce a quali dati l'utente può accedere. Questo utilizza la sintassi definita per gli ambiti relativi agli ambiti specifici delle risorse FHIR:

```
user/(fhir-resource | '*').('read' | 'write' | '*')
```

Di seguito sono riportati alcuni esempi di come l'autorizzazione granulare può essere utilizzata per specificare ulteriormente i tipi di risorse FHIR relativi all'accesso ai dati.
+ Quando `fhirUser` è un'autorizzazione `Practitioner` dettagliata determina l'insieme di pazienti a cui l'utente può accedere. L'accesso `fhirUser` è consentito solo ai pazienti per i quali il Paziente si rivolge a un medico `fhirUser` generico. 

  ```
  Patient.generalPractitioner : [{Reference(Practitioner)}]
  ```
+ Quando `fhirUser` è un `Patient` operatore `RelatedPerson` e il paziente a cui si fa riferimento nella richiesta è diverso dall'autorizzazione `fhirUser` dettagliata a cui il paziente richiesto può accedere. `fhirUser` L'accesso è consentito quando esiste una relazione specificata nella risorsa richiesta. `Patient`

  ```
  Patient.link.other : {Reference(Patient|RelatedPerson)}
  ```