在 FHIR 上使用 SMART 入门 - AWS HealthLake

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

在 FHIR 上使用 SMART 入门

以下主题介绍如何开始使用 SMART on FHIR 授权。 AWS HealthLake它们包括必须在 AWS 账户中预置的资源、在 FHIR 上启用 SMART HealthLake 的数据存储的创建,以及一个 SMART on FHIR 客户端应用程序如何与授权服务器和数据存储交互的示例。 HealthLake

在 FHIR 上为 SMART 设置资源

以下步骤定义了如何处理 SMART on FHIR 请求 HealthLake 以及成功处理请求所需的资源。以下元素在工作流程中协同工作,以提出 SMART on FHIR 请求:

  • 最终用户:通常,患者或临床医生使用第三方 SMART on FHIR 应用程序访问数据存储中的HealthLake 数据。

  • SMART on FHIR 应用程序(称为客户端应用程序):想要访问在数据存储中HealthLake 找到的数据的应用程序。

  • 授权服务器:符合 OpenID Connect 标准的服务器,能够对用户进行身份验证并颁发访问令牌。

  • HealthLake 数据存储:支持 SMART on FHIR HealthLake 的数据存储,它使用 Lambda 函数来响应提供不记名令牌的 FHIR REST 请求。

要使这些元素协同工作,必须创建以下资源。

注意

我们建议在设置授权服务器、在其上定义必要的范围并创建处理令牌自省的 AWS Lambda 函数之后,在启用 FHIR HealthLake 的数据存储上创建 SMART。

1. 设置授权服务器端点

要使用 SMART on FHIR 框架,您需要设置一个第三方授权服务器,该服务器可以验证在数据存储上发出的 FHIR REST 请求。有关更多信息,请参阅 HealthLake FHIR 上的 SMART 的身份验证要求

2. 在授权服务器上定义范围以控制 HealthLake 数据存储访问级别

SMART on FHIR 框架使用 OAuth 作用域来确定经过身份验证的请求可以访问哪些 FHIR 资源以及访问的范围。定义作用域是一种针对最低权限进行设计的方法。有关更多信息,请参阅 支持的 FHIR OAuth 2.0 瞄准镜上的 SMART HealthLake

3. 设置一个能够执行令牌内省的 AWS Lambda 函数

客户端应用程序在启用 SMART on FHIR 的数据存储上发送的 FHIR REST 请求包含 JSON Web 令牌 (JWT)。有关更多信息,请参阅解码 JWT

4. 在启用 FHIR 时创建 SMART HealthLake 数据存储

要在 FHIR 上创建 SMART HealthLake 数据存储,您需要提供一个。IdentityProviderConfiguration有关更多信息,请参阅 创建 HealthLake 数据存储

FHIR 上的 SMART 的客户端应用程序工作流程

以下部分介绍如何在 SMART on FHIR 的上下文中启动客户端应用程序并在 HealthLake 数据存储上成功发出 FHIR REST 请求。

1. 使用客户端应用程序向众所周知的统一资源标识符GET发出请求

启用 SMART 的客户端应用程序必须GET请求查找 HealthLake 数据存储的授权端点。这是通过众所周知的统一资源标识符 (URI) 请求完成的。有关更多信息,请参阅 正在获取 SMART on FHIR 发现文档

2. 请求访问权限和范围

客户端应用程序使用授权服务器的授权端点,以便用户可以登录。此过程对用户进行身份验证。作用域用于定义客户端应用程序可以访问 HealthLake 数据存储中的哪些 FHIR 资源。有关更多信息,请参阅 支持的 FHIR OAuth 2.0 瞄准镜上的 SMART HealthLake

3. 访问令牌

现在,用户已通过身份验证,客户端应用程序将收到来自授权服务器的 JWT 访问令牌。此令牌是在客户端应用程序向发送 FHIR REST 请求时提供的。 HealthLake有关更多信息,请参阅 令牌验证

4. 在启用 HealthLake FHIR 的数据存储上在 SMART 上发出 FHIR REST API 请求

现在,客户端应用程序可以使用授权服务器提供的访问令牌向 HealthLake 数据存储端点发送 FHIR REST API 请求。有关更多信息,请参阅 在支持 Smart 的数据存储上发出 FHIR REST HealthLake API 请求

5. 验证 JWT 访问令牌

要验证在 FHIR REST 请求中发送的访问令牌,请使用 Lambda 函数。有关更多信息,请参阅 使用令牌验证 AWS Lambda