共用方式為


設定 SAML 應用程式以從外部存放區接收含有宣告的權杖

本文說明如何設定 SAML 應用程式,從自訂宣告提供者接收有外部宣告的權杖。

必要條件

設定 SAML 應用程式以接收有外部宣告的權杖之前,請先遵循下列各節:

設定接收擴充權杖的 SAML 應用程式

個別應用程式管理員或擁有者,可以使用自訂宣告提供者來擴充現有應用程式或新應用程式的權杖。 這些應用程式可以使用 JWT 或 SAML 格式的權杖。

下列是註冊 XRayClaims 應用程式示範的步驟,以便測試它是否可以接收有擴充宣告的權杖。

新增新的 SAML 應用程式

提示

本文中的步驟可能會根據您開始的入口網站而稍有不同。

在您的租用戶中新增非資源庫 SAML 應用程式:

  1. 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心

  2. 瀏覽至 [身分識別]>[應用程式]>[企業應用程式]

  3. 選取 [新增應用程式] 然後建立您自己的應用程式

  4. 新增應用程式名稱。 例如,AzureADClaimsXRay。 選取 [整合您在資源庫中找不到的其他任何應用程式 (非資源庫)] 選項,然後選取 [建立]

以 SAML 設定單一登入

為應用程式設定單一登入:

  1. 在 [概觀] 頁面中,依序選取 [設定單一登入] 和 [SAML]。 在 [基本 SAML 組態] 中選取 [編輯]

  2. 選取 [新增識別碼],然後新增「urn:microsoft:adfs:claimsxray」作為識別碼。 如果組織中另一個應用程式已經使用該識別碼,您可以使用類似 urn:microsoft:adfs:claimsxray12 的替代方式

  3. 選取 [回覆 URL],並將 https://adfshelp.microsoft.com/ClaimsXray/TokenResponse 新增為回覆 URL。

  4. 選取 [儲存]。

設定宣告

自訂宣告提供者 API 傳回的屬性,不會自動包含在 Microsoft Entra ID 傳回的權杖。 您必須將應用程式設定為,參考自訂宣告提供者傳回的屬性,並在權杖中以宣告的方式傳回它們。

  1. 在該新應用程式的 [企業應用程式] 組態頁面,移至 [單一登入] 窗格。

  2. 在 [屬性和宣告] 區段的 [編輯] 選取

  3. 展開 [進階設定] 區段。

  4. 在 [自訂宣告提供者] 的[設定] 選取。

  5. 在 [自訂宣告提供者] 下拉式清單中,選取您先前註冊的自訂驗證擴充。 選取 [儲存]。

  6. 選取 [新增宣告] 以新增宣告。

  7. 提供您想要發行之宣告的名稱,例如「DoB」。 選擇性設定命名空間 URI。

  8. 針對 [來源] 選取 [屬性],然後從 [來源屬性] 下拉式清單中挑選自訂宣告提供者提供的屬性。 顯示的屬性是您自訂宣告提供者組態中自訂宣告提供者所定義的「可供使用」屬性。 自訂宣告提供者所提供的屬性前面會加上 customclaimsprovider。 例如,customclaimsprovider.DateOfBirthcustomclaimsprovider.CustomRoles。 這些宣告可以是單一或多重值,取決於您的 API 回應。

  9. 選取 [儲存],將宣告新增至 SAML 權杖組態。

  10. 關閉 [管理宣告] 及 [屬性與宣告] 視窗。

將使用者或群組指派給應用程式

測試使用者登入之前,您必須先將使用者或使用者群組指派給應用程式。 如果未指派,登入時會傳回 AADSTS50105 - The signed in user is not assigned to a role for the application 錯誤。

  1. 在應用程式 [概觀] 頁面中,選取 [開始使用] 下方的 [指派使用者和群組]

  2. 在 [使用者和群組] 頁面上,選取 [新增使用者/群組]

  3. 搜尋並選取要登入應用程式的使用者。 選取 [指派] 按鈕。

測試應用程式

測試權杖正在針對登入應用程式的使用者擴充:

  1. 在應用程式概觀頁面的左側導覽列中,選取 [單一登入]

  2. 向下捲動並在 [以 {app name}] 測試單一登入] 下方選取 [測試]

  3. 選取 [測試登入] 並登入。 登入結束時,您應該會看到權杖回應宣告 X 光工具。 如果您設定要出現在權杖中的宣告應該全部列出,如果它們具有非 Null 值,包括任何使用自訂宣告提供者做為來源的宣告。

顯示來自外部來源之宣告的螢幕擷取畫面。

下一步

對自訂宣告提供者 API 進行疑難排解

檢視 Azure Functions 範例應用程式的驗證事件觸發程序