

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# FHIR 기반 SMART 지원 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)}
  ```