

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

# FHIR 上 SMART 的 HealthLake 身分驗證要求
<a name="reference-smart-on-fhir-authentication"></a>

若要存取啟用 FHIR 之 HealthLake 資料存放區上的 SMART 中的 FHIR 資源，用戶端應用程式必須由 OAuth 2.0 相容授權伺服器授權，並在 FHIR REST API 請求中呈現 OAuth Bearer 權杖。若要尋找授權伺服器的端點，請透過`Well-Known`統一資源識別符在 FHIR 探索文件上使用 HealthLake SMART。若要進一步了解此程序，請參閱[在 FHIR 探索文件上擷取 SMART](reference-smart-on-fhir-discovery-document.md)。

在 FHIR HealthLake 資料存放區上建立 SMART 時，您必須在`CreateFHIRDatastore`請求的 `metadata`元素中定義授權伺服器的端點和字符端點。若要進一步了解如何定義 `metadata`元素，請參閱 [建立 HealthLake 資料存放區](managing-data-stores-create.md)。

使用授權伺服器端點，用戶端應用程式將使用授權服務驗證使用者。一旦授權和驗證，授權服務會產生 JSON Web Token (JWT)，並傳遞給用戶端應用程式。此字符包含允許用戶端應用程式使用的 FHIR 資源範圍，進而限制使用者可存取的資料。或者，如果提供了啟動範圍，則回應將包含這些詳細資訊。若要進一步了解 HealthLake 支援的 FHIR 範圍上的 SMART，請參閱 [HealthLake 支援的 FHIR OAuth 2.0 範圍上的 SMART](reference-smart-on-fhir-oauth-scopes.md)。

使用授權伺服器授予的 JWT，用戶端應用程式會對啟用 FHIR 的 HealthLake 資料存放區上的 SMART 進行 FHIR REST API 呼叫。若要驗證和解碼 JWT，您需要建立 Lambda 函數。HealthLake 會在收到 FHIR REST API 請求時代表您叫用此 Lambda 函數。若要查看入門 Lambda 函數範例，請參閱 [使用 驗證字符 AWS Lambda](reference-smart-on-fhir-token-validation.md)。

## 在啟用 FHIR 的 HealthLake 資料存放區上建立 SMART 所需的授權伺服器元素
<a name="datastore-auth-server"></a>

在`CreateFHIRDatastore`請求中，您需要提供授權端點和字符端點，做為 `IdentityProviderConfiguration` 物件中 `metadata`元素的一部分。授權端點和字符端點都是必要的。若要查看如何在`CreateFHIRDatastore`請求中指定範例，請參閱 [建立 HealthLake 資料存放區](managing-data-stores-create.md)。

## 在啟用 FHIR 的 HealthLake 資料存放區上完成 SMART 上的 FHIR REST API 請求所需的宣告
<a name="server-response"></a>

您的 AWS Lambda 函數必須包含下列宣告，才能在啟用 FHIR 的 HealthLake 資料存放區上成為 SMART 上的有效 FHIR REST API 請求。
+ `nbf`：[（非之前） 宣告](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5) — "nbf" （非之前） 宣告會識別不得接受 JWT 處理的時間。處理 "nbf" 宣告時，目前日期/時間必須晚於或等於 "nbf" 宣告中列出的不早於日期/時間。我們提供的 Lambda 函數範例`iat`會從伺服器回應轉換為 `nbf`。
+ `exp`：[（過期時間） 宣告](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4) —「過期」（過期時間） 宣告會識別 JWT 當天或之後不得接受處理的過期時間。
+ `isAuthorized`：布林值設定為 `True`。指出請求已在授權伺服器上獲得授權。
+ `aud`：[（對象） 宣告](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3) — "aud" （對象） 宣告可識別 JWT 的收件人。這必須是啟用 FHIR 的 HealthLake 資料存放區端點上的 SMART。
+ `scope`：這必須至少是一個 FHIR 資源相關範圍。此範圍在您的授權伺服器上定義。若要進一步了解 HealthLake 接受的 FHIR 資源相關範圍，請參閱 [HealthLake 的 FHIR 資源範圍上的 SMART](reference-smart-on-fhir-oauth-scopes.md#smart-on-fhir-scopes-rest)。