Share via


設定多個服務識別提供者

除了 Microsoft Entra ID 之外,不論已經存在還是新建立的服務,您都可以為 FHIR 服務設定最多兩個額外的識別提供者。

識別提供者必要條件

身分識別提供者必須支援 OpenID Connect (OIDC),而且必須能夠使用 fhirUser 宣告、azpappid 宣告,以及具有 SMART on FHIR v1 範圍scp 宣告發出 JSON Web 權杖 (JWT)。

使用 Azure Resource Manager (ARM) 啟用其他識別提供者

smartIdentityProviders 元素新增至 FHIR 服務 authenticationConfiguration,以啟用其他識別提供者。 smartIdentityProviders 項目是選擇性的。 如果您省略它,FHIR 服務會使用 Microsoft Entra ID 來驗證要求。

Element 型別 說明
smartIdentityProviders 陣列 包含最多兩個識別提供者組態的陣列。 這是選擇性的項目。
authority string 識別提供者權杖授權單位。
應用程式 \(英文\) 陣列 識別提供者資源應用程式組態的陣列。
clientId string 識別提供者資源應用程式 (用戶端) 識別碼。
audience string 用於驗證存取權杖 aud 宣告。
allowedDataActions 陣列 允許識別提供者資源應用程式執行的權限陣列。
{
  "properties": {
    "authenticationConfiguration": {
      "authority": "string",
      "audience": "string",
      "smartProxyEnabled": "bool",
      "smartIdentityProviders": [
        {
          "authority": "string",
          "applications": [
            {
              "clientId": "string",
              "audience": "string",
              "allowedDataActions": "array"
            }
          ]
        }
      ]
    }
  }
}

設定 smartIdentityProviders 陣列

如果您不需要 Microsoft Entra ID 以外的任何識別提供者,請將 smartIdentityProviders 陣列設定為 null,或在佈建要求中予以省略。 否則,在陣列中包含至少一個有效的識別提供者組態物件。 您可以設定最多兩個額外的識別提供者。

指定 authority

您必須為您所設定的每個識別提供者指定 authority 字串。 authority 字串是對識別提供者發出存取權杖的權杖授權單位。 如果 authority 字串無效或不正確,FHIR 服務會拒絕具有 401 Unauthorized 錯誤碼的要求。

在提出佈建要求之前,請先檢查 openid-connect 組態端點,以驗證 authority 字串。 將 /.well-known/openid-configuration 附加至 authority 字串結尾,並將其貼到瀏覽器中。 您應會看到預期的組態。 如果不是這樣,則字串有問題。

範例:

https://yourIdentityProvider.com/authority/v2.0/.well-known/openid-configuration

設定 applications 陣列

您必須在 applications 陣列中至少包含一個應用程式組態和最多兩個應用程式組態。 每個應用程式組態都有值可驗證存取權杖宣告,以及可定義應用程式存取 FHIR 資源之權限的陣列。

使用 clientId 字串識別應用程式

識別提供者會使用名為 clientId 字串 (或應用程式識別碼) 的唯一識別碼來定義應用程式。 FHIR 服務會根據 clientId 字串檢查 authorized party (azp) 或 application id (appid) 宣告,以驗證存取權杖。 如果 clientId 字串和權杖宣告不完全相符,則 FHIR 服務會拒絕具有 401 Unauthorized 錯誤碼的要求。

使用 audience 字串驗證存取權杖

存取權杖中的 aud 宣告會識別權杖的預定接收者。 audience 字串是接收者的唯一識別碼。 FHIR 服務會根據 aud 宣告檢查 audience 字串,以驗證存取權杖。 如果 audience 字串和 aud 宣告不完全相符,則 FHIR 服務會拒絕具有 401 Unauthorized 錯誤碼的要求。

使用 allowedDataActions 陣列指定權限

allowedDataActions 陣列中至少包含一個權限字串。 您可以包含任何有效的權限字串,但避免重複項目。

有效的權限字串 說明
讀取 允許資源 GET 要求。

下一步

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

針對識別提供者組態進行疑難排解

注意

FHIR® 是 HL7 的註冊商標,可與 HL7 的權限搭配使用。