首页 > 资讯 > Azure Health Data Services 中的驗證和授權

Azure Health Data Services 中的驗證和授權

Azure 健康資料服務是一個使用 Microsoft Entra ID 的安全受控服務集合,該全球身分識別提供者支援 OAuth 2.0。

若要讓 Azure Health Data Services 存取 Azure 資源,例如記憶體帳戶和事件中樞,您必須啟用系統受控識別,並將適當的許可權授與受控識別。 如需詳細資訊,請參閱 Azure 受控識別。

用戶端應用程式會在 Microsoft Entra 識別符中註冊,而且可用來存取 Azure Health Data Services。 用戶資料存取控制是在實作商業規則的應用程式或服務中完成的。

Azure Health Data Services 的已驗證使用者和用戶端應用程式必須指派給適當的應用程式角色。

Azure Health Data Services 中的 FHIR® 服務會提供下列角色:

FHIR 數據讀取器:讀取和搜尋 FHIR 數據。 FHIR 數據寫入器:讀取、寫入和軟刪除 FHIR 數據。 FHIR 數據匯出者:讀取和匯出($export 操作符)數據。 FHIR 資料匯入工具:讀取和匯入 ($import 運算子) 資料。 FHIR 資料貢獻者:執行所有資料層面的操作。 FHIR 資料轉換器:使用轉換器執行資料轉換。 FHIR SMART 使用者:允許使用者根據 SMART IG V1.0.0規格來讀取和寫入 FHIR 數據。

Azure Health Data Services 中的 DICOM® 服務提供下列角色:

DICOM 資料擁有者:讀取、寫入和刪除 DICOM 數據。 DICOM 數據讀取:讀取 DICOM 數據。

已驗證的使用者和用戶端應用程式,取得適當的應用程式角色後,即可使用 Microsoft Entra ID 發出的有效存取權杖存取 Azure 健康資料服務,並執行應用程式角色定義的特定作業。

對於 FHIR 服務,存取令牌是服務或資源特有的。 對於 DICOM 服務,存取令牌會授與資源 dicom.healthcareapis.azure.com ,而不是特定服務。

有兩種常見的方法來取得存取令牌,詳述Microsoft Entra 檔 :授權碼流程 和 客戶端認證流程。

以下是如何使用 授權碼流程取得 Azure Health Data Services 的存取令牌:

用戶端會將要求傳送至 Microsoft Entra 授權端點。 Microsoft Entra ID 會將用戶端重新導向至登入頁面,讓使用者使用適當的認證進行驗證(例如:使用者名稱和密碼,或雙因素驗證)。 成功驗證時,授權碼會傳回給用戶端。 Microsoft僅允許將此授權碼傳回用戶端應用程式註冊中所設定的已註冊回復 URL。

用戶端應用程式會在 Microsoft Entra 令牌端點交換存取令牌的授權碼。 當用戶端應用程式要求令牌時,應用程式可能必須提供客戶端密碼(您可以在應用程式註冊期間新增)。

例如,用戶端向 Azure Health Data Services 提出要求, GET 要求搜尋 FHIR 服務中的所有患者。 要求會在 HTTP 要求標頭中包含存取權杖,例如 Authorization: Bearer xxx。

Azure 健康資料服務會驗證權杖是否包含適當的宣告 (權杖中的屬性)。 如果有效,它會完成要求,並將數據傳回給用戶端。

在客戶端認證流程,許可權會直接授與應用程式本身。 當應用程式向資源呈現令牌時,資源會強制應用程式本身具有執行動作的授權,因為沒有任何使用者參與驗證。 因此,這與授權碼流程不同,方式如下:

使用者或用戶端不需要以互動方式登入。 不需要授權碼。 存取令牌是直接透過應用程式許可權取得。

存取令牌是一個已簽署的 Base64 編碼屬性集合(宣告),可傳遞有關客戶端身分識別、角色及授予使用者或客戶端的許可權之信息。

Azure Health Data Services 通常需要 JSON Web 令牌。 它包含三個部分:

頁首 承載 (宣告) 簽章,如下圖所示。 如需詳細資訊,請參閱 Azure 存取令牌。

顯示 Web 令牌簽章的螢幕快照

使用在線工具,例如 https://jwt.ms 檢視令牌內容。 例如,您可以檢視索賠詳細資訊。

索賠類型 注意事項 aud https://xxx.fhir.azurehealthcareapis.com 識別權杖的預定接收者。 在 id_tokens 中,對象是在 Azure 入口網站中指派給應用程式的應用程式識別碼。 您的應用程式應該驗證此值,如果值不相符,則拒絕令牌。 iss https://sts.windows.net/{tenantid}/ 識別建構並傳回權杖的安全性權杖服務 (STS),以及對使用者進行驗證的 Microsoft Entra 租用戶。 如果權杖是由 v2.0 端點發出的,則該 URI 會以 /v2.0 結尾。 指出使用者為來自 Microsoft 帳戶之取用者使用者的 GUID 為 9188040d-6c67-4c5b-b112-36a304b66dad。 您的應用程式應使用宣告中的 GUID 部分來限制能夠登入應用程式的租戶群,如適用。 iat (時間戳) 「Issued At」表示此令牌的認證是在何時進行的。 nbf (時間戳) 「nbf」(not before) 宣告會識別在此時間之前不得接受 JWT 進行處理。 exp (時間戳) 「exp」(expiration time) 宣告會識別到期時間,在該時間或之後不得接受 JWT 進行處理。 資源可能會在此時間之前拒絕權杖,例如當需要變更驗證或偵測到權杖撤銷時。 aio E2ZgYxxx Microsoft Entra ID 用來記錄權杖重複使用資料的內部宣告。 應該予以忽略。 appid e97e1b8c-xxx 使用權杖之用戶端的應用程式識別碼。 應用程式可以代表自身或代表使用者執行。 應用程式識別碼通常代表應用程式物件,但也可以代表 Microsoft Entra ID 中的服務主體物件。 appidacr 1 指出客戶端的驗證方式。 針對公用用戶端,值為 0。 如果使用用戶端識別碼和客戶端密碼,則值為 1。 如果客戶端憑證用於驗證,則值為 2。 idp https://sts.windows.net/{tenantid}/ 記錄對權杖主體進行驗證的識別提供者。 除非使用者帳戶不在與簽發者相同的租用戶中 (例如來賓),否則此值與 Issuer 宣告的值相同。 如果未出現此宣告,表示可以改用 iss 的值。 若在組織內容中使用個人帳戶 (例如邀請至 Microsoft Entra 租用戶的個人帳戶),idp 宣告可能為「live.com」或包含 Microsoft 帳戶租用戶 9188040d-6c67-4c5b-b112-36a304b66dad 的 STS URI。 oid 例如,tenantid(租戶識別碼) Microsoft身分識別系統中物件的不可變標識符,在此案例中為用戶帳戶。 此識別碼可在不同應用程式中唯一識別使用者——兩個不同的應用程式登入相同的使用者時,會在 oid 聲明中收到相同的值。 Microsoft Graph 會傳回此標識碼作為指定用戶帳戶的 ID 屬性。 由於 oid 可讓多個應用程式關聯使用者,因此需要 profile 範圍才能接收此宣告。 注意:如果單一使用者存在於多個租使用者中,則使用者在每個租使用者中包含不同的物件識別碼,即使使用者以相同的認證登入每個帳戶,也會被視為不同的帳戶。 rh 0.ARoxxx Azure 用來重新驗證權杖的內部宣告。 應該忽略它。 sub 例如,tenantid(租戶識別碼) 權杖所宣告資訊的主體,例如應用程式的使用者。 這個值是不可變的,無法重新指派或重複使用。 主體是一個配對識別碼 - 它對於特定應用程式識別碼是唯一的。 因此,如果單一使用者使用兩個不同的用戶端標識元登入兩個不同的應用程式,則這些應用程式會收到兩個不同的主旨宣告值。 根據架構和隱私權需求,您可能不希望此結果。 tid 例如,tenantid(租戶識別碼) 用於識別用戶所屬 Microsoft Entra 租戶的 GUID。 針對公司與學校帳戶,GUID 是使用者所屬組織的不可變租戶識別碼。 針對個人帳戶,值為 9188040d-6c67-4c5b-b112-36a304b66dad。 需要 profile 範圍才能接收此宣告。 uti bY5glsxxx Azure 用來重新驗證權杖的內部宣告。 應該忽略它。 ver 1 表示令牌的版本。

存取令牌預設為有效的一小時。 您可以在令牌過期之前,先取得新的令牌,或使用刷新令牌進行更新。

若要取得存取令牌,您可以在 Visual Studio Code、PowerShell、CLI、curl 和 Microsoft Entra 驗證連結庫中使用 REST 用戶端延伸模組等工具。

當您建立 Azure Health Data Services 的新服務時,您的數據預設會使用 Microsoft管理的密鑰 來加密。

當資料持續儲存在資料存放區時,FHIR 服務會提供待用資料加密。 DICOM 服務提供靜止資料的加密,當影像數據,包括內嵌元數據,被保存於數據存放區時。 在 FHIR 服務中擷取並保存元數據時,它會自動加密。

使用 Azure 入口網站 部署 Azure Health Data Services 工作區

使用 Azure Active Directory B2C 將 FHIR 服務的存取權授與

注意

FHIR® 是 HL7 的註冊商標,可經 HL7 許可使用。

DICOM® 是國家電氣製造商協會對於其與醫療資訊數位通訊相關的標準出版物的註冊商標。

相关知识

Azure Health Data Services 入门
The future is on FHIR for SAS and Microsoft Azure
Public Health and Social Services
Consumer Health Data Privacy Policy
Swisscom Health verlagert Patienten
安全使用指南|如何挑選高品質純正精油?8個有機驗證精油品牌
Azure AI Language の Text Analytics for health とは?
黑巧克力新魔力 能提高免疫力和認知能力?
Sharing Your Garmin Connect Data With Apple Health
Health Data Science 正式创刊!

网址: Azure Health Data Services 中的驗證和授權 https://m.trfsz.com/newsview1911813.html