

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SMART on FHIR 対応 HealthLake データストアでのきめ細かな認可の使用
<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`等しく設定します。

きめ細かな認可を有効にした場合、認可サーバーはアクセストークン`id_token`とともに で`fhirUser`スコープを返します。これにより、クライアントアプリケーションでユーザーに関する情報を取得できます。クライアントアプリケーションは、`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)}
  ```