本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
FHIR 上 SMART 的 HealthLake 身分驗證要求
若要存取啟用 FHIR 之 HealthLake 資料存放區上的 SMART 中的 FHIR 資源,用戶端應用程式必須由 OAuth 2.0 相容授權伺服器授權,並在 FHIR REST API 請求中呈現 OAuth Bearer 權杖。若要尋找授權伺服器的端點,請透過Well-Known統一資源識別符在 FHIR 探索文件上使用 HealthLake SMART。若要進一步了解此程序,請參閱在 FHIR 探索文件上擷取 SMART。
在 FHIR HealthLake 資料存放區上建立 SMART 時,您必須在CreateFHIRDatastore請求的 metadata元素中定義授權伺服器的端點和字符端點。若要進一步了解如何定義 metadata元素,請參閱 建立 HealthLake 資料存放區。
使用授權伺服器端點,用戶端應用程式將使用授權服務來驗證使用者。一旦授權和驗證,授權服務會產生 JSON Web Token (JWT),並傳遞給用戶端應用程式。此字符包含允許用戶端應用程式使用的 FHIR 資源範圍,進而限制使用者可存取的資料。或者,如果提供了啟動範圍,則回應將包含這些詳細資訊。若要進一步了解 HealthLake 支援的 FHIR 範圍上的 SMART,請參閱 HealthLake 支援的 FHIR OAuth 2.0 範圍上的 SMART。
使用授權伺服器授予的 JWT,用戶端應用程式會對啟用 FHIR 的 HealthLake 資料存放區上的 SMART 進行 FHIR REST API 呼叫。若要驗證和解碼 JWT,您需要建立 Lambda 函數。HealthLake 會在收到 FHIR REST API 請求時代表您叫用此 Lambda 函數。若要查看入門 Lambda 函數範例,請參閱 使用 驗證權杖 AWS Lambda。
在啟用 FHIR 的 HealthLake 資料存放區上建立 SMART 所需的授權伺服器元素
在CreateFHIRDatastore請求中,您需要提供授權端點和字符端點,做為 IdentityProviderConfiguration 物件中 metadata元素的一部分。授權端點和字符端點都是必要的。若要查看在CreateFHIRDatastore請求中如何指定的範例,請參閱 建立 HealthLake 資料存放區。
在啟用 FHIR 的 HealthLake 資料存放區上完成 SMART 上的 FHIR REST API 請求所需的宣告
您的 AWS Lambda 函數必須包含下列宣告,才能在啟用 FHIR 的 HealthLake 資料存放區上成為有效的 FHIR REST API 請求。
-
nbf:(非之前) 宣告— "nbf" (非之前) 宣告會識別不得接受 JWT 處理的時間。處理 "nbf" 宣告時,目前日期/時間必須晚於或等於 "nbf" 宣告中列出的不早於日期/時間。我們提供的 Lambda 函數範例 iat會從伺服器回應轉換為nbf。 -
exp:(過期時間) 宣告—「過期時間」(過期時間) 宣告會識別 JWT 當天或之後不得接受處理的過期時間。 -
isAuthorized:布林值設定為True。表示請求已在授權伺服器上獲得授權。 -
aud:(對象) 宣告— "aud" (對象) 宣告可識別 JWT 的收件人。這必須是啟用 FHIR 的 HealthLake 資料存放區端點上的 SMART。 -
scope:這必須至少是一個 FHIR 資源相關範圍。此範圍在您的授權伺服器上定義。若要進一步了解 HealthLake 接受的 FHIR 資源相關範圍,請參閱 HealthLake 的 FHIR 資源範圍上的 SMART。