含範圍篩選器的屬性型應用程式佈建

本文的目標在於說明如何使用範圍篩選條件來定義以屬性為基礎的規則,以決定將哪些使用者佈建到應用程式。

範圍篩選器使用案例

範圍篩選條件可讓 Azure Active Directory (Azure AD) 佈建服務包含或排除有屬性符合特定值的任何使用者。 例如,將使用者從 Azure AD 佈建至銷售團隊所使用的 SaaS 應用程式時,您可以指定只有 "Sales" 之 "Department" 屬性的使用者應該位於佈建範圍中。

範圍篩選條件的使用方式取決於佈建連接器的類型:

  • 從 Azure AD 向外佈建到 SaaS 應用程式。 當 Azure AD 為來源系統時,使用者和群組指派是決定哪些使用者要納入佈建範圍內的最常用方法。 這些指派也用於啟用單一登入,並提供單一方法來管理存取與佈建。 根據屬性值,除了指派或取代之外,範圍篩選器可以選擇性地用於篩選使用者。

    提示

    您可以根據企業應用程式的指派,將 範圍 功能表中的佈建設定底下的設定,變更為 同步所有使用者與群組,以停用佈建。

  • 從 HCM 應用程式向內佈建到 Azure AD 和 Active Directory。 當 HCM 應用程式 (例如 Workday) 為來源系統時,範圍篩選條件是決定應該將哪些使用者從 HCM 應用程式佈建到 Active Directory 或 Azure AD 的主要方法。

根據預設,Azure AD 佈建連接器尚未設定任何屬性型範圍篩選器。

範圍篩選器建構

範圍篩選條件包含一個或多個「子句」。 子句會評估每個使用者的屬性,以決定哪些使用者可以通過範圍篩選條件。 例如,您可能有一個子句規定使用者的 "State" 屬性必須等於 "New York",因此只會將 New York 使用者佈建到應用程式。

單一子句可定義單一屬性值的單一條件。 如果在單一範圍篩選條件中建立多個子句,則會使用 "AND" 邏輯一起評估這些子句。 也就是說,所有子句都必須評估為 "true",才能佈建使用者。

最後,您可以針對單一應用程式建立多個範圍篩選條件。 如果有多個範圍篩選條件,則會使用 "OR" 邏輯一起評估這些篩選條件。 這表示,如果任何已設定之範圍篩選條件中的所有子句都評估為 "true",則會佈建使用者。

Azure AD 佈建服務所處理的每個使用者或群組,一律會根據每個範圍篩選條件來個別評估。

例如,假設有下列範圍篩選條件:

範圍篩選器

根據此範圍篩選條件,使用者必須滿足下列條件才能佈建:

  • 他們必須住在紐約。
  • 他們必須在工程部門上班。
  • 他們的公司員工識別碼必須介於 1,000,000 到 2,000,000 之間。
  • 他們的職稱不能是 Null 或空白。

建立範圍篩選條件

系統會針對每個 Azure AD 使用者佈建連接器,將範圍篩選器設定為屬性對應的一部分。 下列程序假設您已經針對其中一個支援的應用程式設定自動佈建,而現在要新增範圍篩選條件。

建立範圍篩選條件

  1. Azure 入口網站中,移至 [Azure Active Directory] > [企業應用程式] > [所有應用程式] 區段。

  2. 選取您已設定自動佈建的應用程式:例如,"ServiceNow"。

  3. 選取 [佈建] 索引標籤。

  4. 在 [對應] 區段中,選取您想要設定範圍篩選條件的對應:例如,[將 Azure Active Directory 使用者同步至 ServiceNow]。

  5. 選取 [來源物件範圍] 功能表。

  6. 選取 [新增範圍篩選器]。

  7. 依序選取要比對的來源 [屬性名稱]、[運算子] 和 [屬性值],來定義子句。 支援下列運算子:

    a. 等於。 如果評估的屬性完全符合輸入字串值 (區分大小寫),子句會傳回 "true"。

    b. 不等於。 如果評估的屬性不符合輸入字串值 (區分大小寫),子句會傳回 "true"。

    c. IS TRUE。 如果評估的屬性包含布林值 true,子句會傳回 "true"。

    d. IS FALSE。 如果評估的屬性包含布林值 false,子句會傳回 "true"。

    e. 為 Null。 如果評估的屬性是空的,子句會傳回 "true"。

    f. IS NOT NULL。 如果評估的屬性不是空的,子句會傳回 "true"。

    g. REGEX MATCH。 如果評估的屬性符合規則運算式模式,子句會傳回 "true"。 例如:([1-9][0-9]) 符合介於 10 到 99 之間的任何數字。

    h. NOT REGEX MATCH。 如果評估的屬性不符合規則運算式模式,子句會傳回 "true"。

    i. Greater_Than。 如果評估的屬性大於值,子句會傳回 "true"。 範圍篩選器上指定的值必須是整數,而且使用者的屬性必須是整數 [0,1,2,...]。

    j. Greater_Than_OR_EQUALS。 如果評估的屬性大於或等於值,子句會傳回 "true"。 範圍篩選器上指定的值必須是整數,而且使用者的屬性必須是整數 [0,1,2,...]。

    k. 包括。 如果評估的屬性包含字串值 (區分大小寫的) ,子句會傳回 "true" ,如下所述。

重要

  • 目前不支援 IsMemberOf 篩選。
  • 多重值屬性不支援 EQUALS 和 NOT EQUALS
  1. (選擇性) 重複步驟 7-8,新增更多範圍子句。

  2. 在 [範圍篩選器標題] 中,新增您範圍篩選器的名稱。

  3. 選取 [確定]。

  4. 在 [範圍篩選條件] 畫面上,再次選取 [確定]。 (選擇性) 重複步驟 6-11,新增另一個範圍篩選條件。

  5. 在 [屬性對應] 畫面上,選取 [儲存]。

重要

儲存新的範圍篩選器會為應用程式觸發新的完整同步處理,其中來源系統中的所有使用者都會根據新的範圍篩選器,再次進行估。 如果應用程式中的使用者先前在佈建範圍內,但已落在範圍外,則其帳戶在應用程式中會停用或解除佈建。 若要覆寫此預設行為,請參閱 跳過刪除超出範圍的使用者帳戶

常見的範圍篩選準則

目標屬性 運算子 描述
userPrincipalName REGEX 相符 .*@domain.com UserPrincipal 具有網域的所有使用者 @domain.com 都將在布建範圍內
userPrincipalName 非 REGEX 相符 .*@domain.com UserPrincipal 具有網域的所有使用者 @domain.com 都不在布建範圍內
department EQUALS sales 銷售部門的所有使用者都在布建範圍內
workerID REGEX 相符 (1[0-9][0-9][0-9][0-9][0-9][0-9]) 在1000000和2000000之間 workerIDs 的所有員工都在布建範圍內。