

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在啟用 FHIR 的 HealthLake 資料存放區上搭配 SMART 使用精細授權
<a name="reference-smart-on-fhir-fine-grained-authorization"></a>

僅[範圍](reference-smart-on-fhir-oauth-scopes.md#smart-on-fhir-scopes-rest)不會為您提供請求者有權在資料存放區中存取哪些資料的必要具體性。在啟用 FHIR 的 HealthLake 資料存放區上授予 SMART 存取權時，使用精細授權可實現更高層級的特異性。若要使用精細授權，請在`CreateFHIRDatastore`請求的 `IdentityProviderConfiguration` 參數`True`中將 設定為`FineGrainedAuthorizationEnabled`等於 。

如果您啟用精細授權，您的授權伺服器會傳回 中的`fhirUser`範圍`id_token`以及存取權杖。這允許用戶端應用程式擷取有關使用者的資訊。用戶端應用程式應將`fhirUser`宣告視為代表目前使用者的 FHIR 資源 URI。此值可以為 `Patient`、`Practitioner` 或 `RelatedPerson`。授權伺服器的回應也包含定義使用者可存取哪些資料`user/`的範圍。這會使用針對 FHIR 資源特定範圍相關範圍定義的語法：

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

以下是如何使用精細授權進一步指定資料存取相關 FHIR 資源類型的範例。
+ 當 `fhirUser`為 時`Practitioner`，精細授權會決定使用者可存取的患者集合。`fhirUser` 僅允許病患參考 `fhirUser` 做為一般從業人員的那些病患存取 。

  ```
  Patient.generalPractitioner : [{Reference(Practitioner)}]
  ```
+ 當 `fhirUser`是 `Patient`或 `RelatedPerson`且請求中參考的患者與 不同時`fhirUser`，精細授權會決定請求患者對 `fhirUser`的存取。在請求`Patient`的資源中指定關係時，允許存取。

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