口述/孫培然·彙整/CIO編輯室

在現代醫療體系中,病歷資料的安全性與合規性是不可或缺的核心要素。SMART on FHIR 作為全球廣泛採用的標準,為醫療應用程式的開發與資料交換提供了高效的解決方案。如何在確保敏感病歷資料安全的同時,為使用者提供流暢且便捷的操作體驗,成為系統設計的一大挑戰。
[ 加入 CIO Taiwan 官方 LINE 與 Facebook ,與全球CIO同步獲取精華見解 ]
為了解決這項挑戰,SMART on FHIR 採用了基於 OAuth2 和 OpenID Connect 的安全授權架構,確保病歷資料的存取流程既符合安全規範,也能靈活應用於多元場景。本篇文章將深入探討 SMART on FHIR 的安全授權流程,實現安全且高效的病歷資料存取與管理。
四大角色的安全存取流程解析
在 SMART on FHIR 的安全存取流程中,主要參與的角色共有四個,分別是使用者(User)、用戶端(Client)、授權伺服器(Authorization Server)與 FHIR 伺服器(FHIR Server)。這些角色分工明確,各自負責不同的任務,並在整個流程中協作,確保病歷資料的安全性與使用效率。
使用者(User)
首先是使用者,實際登入應用程式並執行相關功能的人,通常包括醫護人員、病人或其他獲授權的操作人員。在多數情況下,使用者的參與是必要的,因為許多操作需要他們提供確認或輸入資料。然而,某些特殊情況下,例如自動化的資料同步,應用程式可以在背景模式下運行,此時使用者的直接參與可能不是必需的。
用戶端(Client)
其次是用戶端,它是使用者與系統交互的工具,負責執行使用者的需求。用戶端可能是行動應用程式、網頁系統或桌面軟體,其主要任務是透過標準化的 FHIR API 與伺服器通訊,提出病歷資料查詢、建立病歷或修改排程等請求。用戶端在整體流程中扮演了橋樑的角色,將使用者的需求轉化為具體的技術指令並傳遞給伺服器。
授權伺服器(Authorization Server)
在用戶端與伺服器的互動中,授權伺服器負責管理身份驗證與授權。它是一個相容於 OpenID Connect 的伺服器,當使用者登入用戶端後,授權伺服器會驗證其身份,並在成功通過驗證後頒發存取令牌(Access Token)。這個令牌(Token)是確保應用程式和使用者合法存取受保護資源的關鍵憑證。建置授權伺服器有很多的方式,針對醫療場景來說,可以選用符合醫療標準(如 HIPAA 或 HL7 FHIR)的商業軟體,提供穩定和完整的解決方案。
另類選擇則是開放原始碼(Open Source),如 Keycloak 和 MITREid Connect,這些工具支持 OpenID Connect 和 OAuth2 等安全協議,並具備高度靈活性和可擴展性,適合根據需求進行客製化部署。
FHIR 伺服器(FHIR Server)
最後,FHIR 伺服器作為資料的核心管理系統,負責存放並回應來自用戶端的資料請求。用戶端在發送請求時會附帶由授權伺服器頒發的存取令牌,FHIR 伺服器會檢查該令牌的合法性與授權範圍,然後決定是否回應請求。舉例說明,當用戶端查詢病人資料時,FHIR 伺服器會在確認授權後,將符合要求的資料以結構化的 FHIR 資源格式返回。這確保了資料傳輸的準確性與安全性。
OAuth 2.0 和 OIDC:安全存取與授權技術
在 SMART on FHIR 的授權過程中,核心技術是 OAuth 2.0 和 OpenID Connect(OIDC)。在現代網路應用中已被廣泛採用,即使使用者可能對其名稱並不熟悉,但在日常生活中經常使用,例如透過 Google、Facebook 或 GitHub 帳戶進行登入與授權。
OAuth 2.0 是一種通用的授權協定,它允許使用者在應用程式 A 中授權應用程式 B 存取其特定資源,而無需直接提供帳號密碼等敏感資訊。應用程式 B 透過授權協定獲取授權範圍(Scopes),僅能執行使用者允許的功能,確保資料交換的過程是安全且受控的。舉例來說,當使用者選擇用 Google 帳戶登入其他服務時,其實就是使用了 OAuth 2.0 來授權該服務讀取特定的資料,例如電子郵件地址或個人資料。
[ 推薦文章:即插即用的醫療資訊系統 ]
而 OIDC 則是在 OAuth 2.0 的基礎上進一步擴展,增加了身份管理的功能。OIDC 允許應用程式獲取使用者的身份相關資訊,例如姓名、電子郵件,甚至是用戶 ID。換句話說,OIDC 提供了一個標準化的方式讓應用程式能夠驗證使用者身份,並安全地存取相關資訊。這不僅讓應用程式能精確辨識使用者,也使身份驗證流程更靈活、可靠。
在 FHIR on SMART 應用中,透過整合 OAuth 2.0 和 OIDC 規範,實現了安全性與便利性的平衡。例如,醫療提供者能在不同的應用程式之間無縫切換,而無需每次都重新輸入密碼或重新授權。此外,使用者的授權作業由醫院資訊系統(HIS)進行管理,這意味著系統擁有者可以在 HIS 系統內針對不同使用者設定存取權限與等級,進一步提升安全性與使用效率。
具體來說,OAuth 2.0 的授權流程包括以下幾個步驟:
- 用戶端應用程式向資源擁有者(例如使用者)提出授權請求。
- 資源擁有者同意授權後,授權碼會被傳回給用戶端應用程式。
- 用戶端應用程式將授權碼發送至授權伺服器進行驗證。
- 驗證成功後,授權伺服器會頒發存取令牌(Access Token)。
- 用戶端應用程式使用存取令牌,向資源伺服器提出存取受保護資源(如病歷紀錄)的請求。
透過這個流程,SMART on FHIR 讓應用程式能夠安全地互相協作,同時提供高效的使用者體驗。無論是對於使用者身份的驗證,還是針對資源的存取授權,OAuth 2.0 和 OIDC 技術確保了整個過程的安全性與透明度。
[ 推薦閱讀:SMART on FHIR 的起源與進展 ]
總結來說,SMART on FHIR 的實現依賴於 OAuth 2.0 和 OIDC,提供了一個靈活、安全且便捷的授權機制。這讓使用者能夠無縫地在多個應用程式和系統間切換,並確保資料交換都在授權範圍內,進一步提升了病歷資料的安全性與使用效率。
SMART on FHIR 應用程式的操作流程
SMART on FHIR 應用程式的操作流程共分為七個步驟(如圖),旨在確保病歷資料的安全性、合規性與高效使用。以下以實際場景為例,逐步說明其工作過程。
- 第一步:啟動應用程式
使用者啟動應用程式,這是一個與 FHIR 伺服器互動的用戶端軟體,可以是桌面應用、網頁應用或行動裝置應用。例如,某一個應用程式可以顯示血糖或膽固醇等檢查的歷史結果,並以圖表形式直觀展示測試值的波動趨勢。使用者可以透過醫院資訊系統或入口網站的病人詳細資訊頁面點擊連結來啟動應用程式。這個連結會以特定規範的 URL 形式傳遞資料,告訴應用程式應從哪個 FHIR 伺服器獲取資料,進而觸發下一步驟。 - 第二步:向授權伺服器發送請求
應用程式啟動後,會向授權伺服器發送授權請求,表明希望取得存取資料的權限。這一步驟需要應用程式從 FHIR 伺服器的 SMART Discovery 文件中讀取必要資訊,例如授權端點(Authorization Endpoint)和令牌端點(Token Endpoint)。獲取這些關鍵端點後,應用程式會透過 OpenID Connect(OIDC)與授權伺服器進行身份驗證。授權伺服器可以採用通用的解決方案,例如 Google 或 Facebook,也可以是與 FHIR 相容的授權伺服器。經過驗證後,授權伺服器會頒發授權令牌(Token),進入下一步驟。 - 第三步:接收授權令牌
授權伺服器向應用程式發送授權令牌,其中包括 ID 令牌(ID Token)與刷新令牌(Refresh Token)。ID 令牌內嵌使用者的身份資訊,例如姓名、電子郵件地址,或指向使用者資源的 FHIR URL。刷新令牌則允許應用程式在存取令牌過期時重新請求新的令牌,無需使用者再次輸入帳號與密碼,從而提升使用便利性。 - 第四步:向資源伺服器發送資料請求
取得授權令牌後,應用程式可以向資源伺服器發送請求,用於存取或修改 FHIR 資源中的資料。這些請求可能包括查詢、新增、修改或刪除操作。在發送請求時,應用程式需附上授權令牌作為身份驗證憑證。 - 第五步:驗證授權令牌
資源伺服器接收到請求後,首先會驗證授權令牌的有效性,包括檢查令牌是否過期、是否合法,以及是否包含適當的授權範圍(Scopes)。這一步驟旨在確保資料訪問的安全性與合法性。 - 第六步:內部檢查(可選)
在授權令牌通過驗證後,資源伺服器可能進一步執行內部檢查,以確保請求內容符合既定政策或安全要求。這些檢查可能包括審核使用者角色的存取權限、資料範圍限制,或其他內部規範。若無特殊需求,此步驟可能略過。 - 第七步:提供資料回應
最後,資源伺服器確認請求合法後,回應應用程式,提供請求的資料(例如病人的實驗室檢測結果)或確認資料操作已成功完成。這一步驟確保應用程式能夠安全且高效地存取或操作所需資料,從而達成完整的授權流程。
這一流程設計讓 SMART on FHIR 的應用程式能夠在確保資料安全與合規的基礎上,提供流暢且高效的使用者體驗。透過這七個步驟,SMART on FHIR 的應用程式操作流程展現了結構化、標準化和安全性的完美結合。
[ 閱讀 孫培然 所有文章]
無論是身份驗證、授權還是資料交互,這一流程都以保護資料安全與提升效率為核心,不僅提升了醫療應用的整體品質,也為跨平台資料整合和互操作性奠定了堅實基礎。SMART on FHIR 的發展,讓醫療科技更智慧、更貼近臨床需求。
(本文授權非營利轉載,請註明出處:CIO Taiwan)