

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 支持的 FHIR OAuth 2.0 瞄准镜上的 SMART HealthLake
<a name="reference-smart-on-fhir-oauth-scopes"></a>

HealthLake 使用 OAuth 2.0 作为授权协议。在授权服务器上使用此协议可以定义客户端应用程序有权访问的 FHIR 资源 HealthLake 的数据存储权限（创建、读取、更新、删除和搜索）。

SMART on FHIR 框架定义了一组可以向授权服务器请求的范围。例如，仅允许患者查看实验室结果或查看其联系方式的客户端应用程序应仅被*授权*申请`read`示波器。

**注意**  
HealthLake 为 FHIR V1 和 V2 上的 SMART 提供支持，如下所述。创建数据存储时，FH [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html#HealthLake-Type-IdentityProviderConfiguration-AuthorizationStrategy](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html#HealthLake-Type-IdentityProviderConfiguration-AuthorizationStrategy)IR 上的 SMART 设置为以下三个值之一：  
`SMART_ON_FHIR_V1`— Support 在 FHIR V1 上仅支持 SMART，其中包括`read`（读取/搜索）和`write`（）权限。create/update/delete
`SMART_ON_FHIR`— Support 在 FHIR V1 和 V2 上同时支持 SMART，其中包括`create`、、`read``update``delete`、和权限。`search`
`AWS_AUTH`— 默认 AWS HealthLake 授权策略；与 FHIR 上的 SMART 无关。

## 独立发布范围
<a name="smart-on-fhir-scopes-launch"></a>

HealthLake 支持独立启动模式范围`launch/patient`。

在独立启动模式下，客户端应用程序请求访问患者的临床数据，因为客户端应用程序不知道用户和患者。因此，客户端应用程序的授权请求明确要求返回患者范围。成功进行身份验证后，授权服务器会发出包含所请求的启动患者范围的访问令牌。所需的患者环境与访问令牌一起在授权服务器的响应中提供。


**支持的启动模式范围**  

| Scope | 说明 | 
| --- | --- | 
| `launch/patient` |  OAuth 2.0 授权请求中的一个参数，要求在授权响应中返回患者数据。 | 

## SMART 对 FHIR 的资源范围适用于 HealthLake
<a name="smart-on-fhir-scopes-rest"></a>

HealthLake 在 FHIR 资源范围上定义了三个级别的 SMART。
+ `patient`范围允许访问有关单个患者的特定数据。
+ `user`作用域授予对用户可以访问的特定数据的访问权限。
+ `system`作用域授予对在 HealthLake 数据存储中找到的所有 FHIR 资源的访问权限。

以下各节列出了在 FHIR V1 上使用 SMART 或在 FHIR V2 上使用 SMART 构建 FHIR 资源范围的语法。

**注意**  
SMART on FHIR 授权策略是在创建数据存储时设置的。有关更多信息，请参阅《AWS HealthLake API Reference》**中的 [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html#HealthLake-Type-IdentityProviderConfiguration-AuthorizationStrategy](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html#HealthLake-Type-IdentityProviderConfiguration-AuthorizationStrategy)。

### 支持 FHIR V1 瞄准镜的 SMART HealthLake
<a name="reference-smart-on-fhir-v1"></a>

在 FHIR V1 上使用 SMART 时，构建 FHIR 资源范围的通用语法如下。 HealthLake 要查看以下示例中的整个 URL 路径，请滚动到 “**复制**” 按钮。

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


**SMART on FHIR v1 支持的授权范围**  

| 作用域语法 | 示例：作用域 | 结果 | 
| --- | --- | --- | 
| `patient/(fhir-resource \| '*').('read' \| 'write' \| '*')` | patient/AllergyIntolerance.\$1 | 患者客户端应用程序具有对所有记录的过敏症的实例级读/写访问权限。 | 
| `user/(fhir-resource \| '*').('read' \| 'write' \| '*')` | user/Observation.read | 用户客户端应用程序具有对所有记录的观察结果的实例级 read/write 访问权限。 | 
| system/('read' \$1 'write' \$1 \$1) | system/\$1.\$1 | 系统客户端应用程序 read/write 可以访问所有 FHIR 资源数据。 | 

### 支持 FHIR V2 瞄准镜的 SMART HealthLake
<a name="reference-smart-on-fhir-v2"></a>

在 FHIR V2 上使用 SMART 时，构建 FHIR 资源范围的通用语法如下。 HealthLake 要查看以下示例中的整个 URL 路径，请滚动到 “**复制**” 按钮。

```
('patient' | 'user' | 'system') '/' (fhir-resource | '*') '.' ('c' | 'r' | 'u' | 'd' | 's')
```

**注意**  
要在 FHIR V2 上使用 SMART，必须[https://hl7.org/fhir/smart-app-launch/STU2/conformance.html#permissions](https://hl7.org/fhir/smart-app-launch/STU2/conformance.html#permissions)将值传递到元数据`capabilities`字符串中，该字符串是[https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html)数据类型的成员。  
HealthLake 支持精细作用域。有关更多信息，请参阅《*FHIR 美国核心实施*指南》中[支持的粒度范围](https://hl7.org/fhir/us/core/scopes.html#the-following-granular-scopes-shall-be-supported)。


**SMART on FHIR V2 支持的授权范围**  

| 作用域语法 | 示例 V1 作用域 | 结果 | 
| --- | --- | --- | 
| `patient/Observation.rs` | user/Observation.read | 允许读取和搜索当前患者的Observation资源。 | 
| `system/*.cruds` | system/\$1.\$1 | 系统客户端应用程序create/read/update/delete/search可以完全访问所有 FHIR 资源数据。 | 