臺灣長期照顧實作指引(TW LTC IG)
1.1.0 - STU 1.1.0

臺灣長期照顧實作指引(TW LTC IG) - Local Development build (v1.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

2026 Track 0

賽道 0:OAuth2 存取認證

說明

為確保參測單位資料交換的安全性,各系統間必須先進行 OAuth2 存取認證,取得 Token 後,才能進行資料交換。

OAuth 為 FHIR R4 建議使用的標準認證機制。依 FHIR R4 規範指出,對於網路環境建議使用適當的身份驗證協定來驗證終端使用者的身份,當應用程式需要識別終端使用者時,建議使用 OAuth 來驗證與授權客戶端和使用者。OAuth 2.0 為 SMART on FHIR 的基礎認證機制,客戶端應用程式能夠在基於 FHIR 的資料系統中進行授權、身份驗證和整合。

本賽道採用 OAuth 2.0 認證機制,確保參測單位在進行資料交換時的安全性。參測單位需要先向大會申請並取得有效的 Token,才能存取其他賽道的測試資源。Token 具有一定的有效期限,過期後需重新申請。本賽道為共通前置賽道,參測單位必須先通過本賽道並取得 Token,才能參與其他業務賽道。

同時,本賽道訂定各賽道適用之共通資料交換規則如下:

  • 端點基底 [base] 為大會公告之 FHIR endpoint,各項資料交換均採用 FHIR R4 JSON 格式,並攜帶有效的 OAuth2 Bearer Token。
  • 資源查詢(GET search)與資源讀取(GET read)成功時,伺服器回傳 HTTP 200 OK。條件查詢之標準回應為 Bundle.type=searchset,此為合法之搜尋結果。單筆讀取之標準回應為單筆 Resource 物件。
  • 各賽道之單筆資源建立(POST create)成功時,伺服器回傳 HTTP 201 Created,參測單位可由 Location 標頭或回傳內容取得伺服器建立的實際資源 ID。
  • 資料內容須符合所選 Profile 的欄位結構、型別、代碼系統與單位規範,各情境指定之核對欄位亦應完整呈現。
  • 資源參照使用大會事前預載或交易當次建立之實際 ID,聚焦於單一資源內部欄位與參照識別碼之正確性。

檢核項目

  • 參測單位應向大會申請取得 OAuth2 Token(LTC-011)
  • 參測單位應以 Token 存取受保護資源並驗證缺少 Token 時之錯誤回應機制(LTC-012)

各系統角色於本賽道之作用

Keyword 名稱 說明
OAuth2 Client OAuth2 Client 負責向大會驗證主機取得 Access Token 後,即可向 LTC Repository 進行資料交換。
LTC_REPOSITORY LTC Repository 負責提供資料交換功能,包括長照共通資料的交換、儲存與管理,並具備驗證 Token 有效性與存取權限的能力。

通過條件

  • 參測單位必須通過情境 1 的所有要求項目,包含成功取得 Token 與通過受保護資源之存取驗證,才算通過本賽道。

情境 (Scenarios)

情境 ID 說明
SC1 授權與存取驗證

情境 1:授權與存取驗證

授權與存取驗證情境適用於所有參測系統。系統於進行資料交換前,必須先透過 OAuth2 取得 Token,才能進行後續資料交換。參加者具備 OAuth 2.0 RFC 6749 標準實作能力,在存取 FHIR 聯測主機前,先以 Authorization code flow 向大會授權主機依照指定的帳號密碼登入,取得 Access Token 後,即可使用 Token 存取 FHIR 聯測主機。

本情境授權流程步驟如下:

  1. 用戶端(Client)引導使用者至大會授權伺服器進行身分驗證。
  2. 使用者於授權頁面成功登入並同意授權。
  3. 大會授權伺服器發送授權碼(Authorization Code)至指定之重新導向 URI(Redirection URI)。
  4. 用戶端以授權碼向大會授權伺服器換取存取權杖(Access Token)。
  5. 用戶端於後續 FHIR API 請求中攜帶 Bearer Token,向 LTC Repository 存取受保護資源。

本情境各系統角色應具備以下核心功能:

資料儲存、管理功能(LTC_REPOSITORY 角色)

  • 具備驗證 OAuth2 Bearer Token 有效性之能力。
  • 對於攜帶有效 Token 且具備權限之請求,允許存取受保護之 FHIR 資源端點,並回傳 HTTP 200 OK 或 HTTP 201 Created。
  • 對於缺少 Token 或提供無效、過期 Token 之請求,拒絕存取並回傳 HTTP 401 Unauthorized。

授權與存取驗證功能(OAuth2 Client 角色)

LTC-011:取得 OAuth2 Token

  • 參測單位作為 Client,向大會授權服務發起 Authorization Code Flow 授權請求。
  • 大會提供 client 設定、redirect URI、scope 與測試帳號,Token 請求與回應遵循標準 OAuth2 協定格式。
  • 參測單位成功取得 Access Token,以供後續向 LTC Repository 存取受保護資源。

LTC-012:驗證 Token 與資料存取

  • 參測單位以取得之 Bearer Token 向大會指定且受保護之資源端點(例如 Patient/{id})發起 GET 請求。
  • 持有效且具備權限之 Token 時,必須能正常讀取受保護資源,伺服器回傳 HTTP 200 OK。
  • 同時必須驗證缺少 Token 之請求,確認伺服器正確拒絕存取並回傳 HTTP 401 Unauthorized。

交易 (Transactions)

交易 ID 說明 發送方 (From) 接收方 (To)
LTC-011 取得 OAuth2 Token 參測單位 (OAuth2 Client) 大會授權服務
LTC-012 驗證 Token 與資料存取 參測單位 (OAuth2 Client) 大會交換中心 (LTC_REPOSITORY)