スコープ フィルターを使用した属性ベースのアプリケーション プロビジョニングAttribute-based application provisioning with scoping filters

この記事では、スコープ フィルターを使用して属性ベースのルールを定義する方法について説明します。このルールで、アプリケーションに対してプロビジョニングするユーザーを指定します。The objective of this article is to explain how to use scoping filters to define attribute-based rules that determine which users are provisioned to an application.

スコープ フィルターの使用例Scoping filter use cases

スコープ フィルターを利用すると、Azure Active Directory (Azure AD) プロビジョニング サービスで、ユーザーに特定の値に一致する属性が与えられているとき、そのユーザーを追加したり、除外したりできます。A scoping filter allows the Azure Active Directory (Azure AD) provisioning service to include or exclude any users who have an attribute that matches a specific value. たとえば、営業チームが利用する SaaS アプリケーションに Azure AD からユーザーをプロビジョニングするとき、"Sales" の "Department" 属性を持つユーザーのみがプロビジョニングの範囲に入るように指定できます。For example, when provisioning users from Azure AD to a SaaS application used by a sales team, you can specify that only users with a "Department" attribute of "Sales" should be in scope for provisioning.

スコープ フィルターは、プロビジョニング コネクタの種類によって異なる方法で使用できます。Scoping filters can be used differently depending on the type of provisioning connector:

  • Azure AD から SaaS アプリケーションへの外向きプロビジョニングOutbound provisioning from Azure AD to SaaS applications. Azure AD がソース システムのとき、プロビジョニングに含めるユーザーを決定する方法として最も一般的なものがユーザーとグループの割り当てです。When Azure AD is the source system, user and group assignments are the most common method for determining which users are in scope for provisioning. ユーザーとグループの割り当てはシングル サインオンの有効化にも利用され、1 つの方法でアクセスとプロビジョニングを管理できます。These assignments also are used for enabling single sign-on and provide a single method to manage access and provisioning. スコープ フィルターを割り当てに加えて (任意で)、あるいは割り当ての代わりに利用し、属性値に基づいてユーザーを絞り込むことができます。Scoping filters can be used optionally, in addition to assignments or instead of them, to filter users based on attribute values.

    ヒント

    エンタープライズ アプリケーションの割り当てに基づいてプロビジョニングを無効にできます。プロビジョニング設定の [スコープ][すべてのユーザーとグループを同期する] に設定します。You can disable provisioning based on assignments for an enterprise application by changing settings in the Scope menu under the provisioning settings to Sync all users and groups. このオプションと属性基準のスコープ フィルターを利用することで、グループ基準の割り当てよりパフォーマンスが速くなります。Using this option plus attribute-based scoping filters offers faster performance than using group-based assignments.

  • HCM アプリケーションから Azure AD と Active Directory への内向きプロビジョニングInbound provisioning from HCM applications to Azure AD and Active Directory. Workday などの HCM アプリケーションがソース システムのとき、HCM アプリケーションから Active Directory または Azure AD にプロビジョニングするユーザーを決定する主要な方法がスコープ フィルターです。When an HCM application such as Workday is the source system, scoping filters are the primary method for determining which users should be provisioned from the HCM application to Active Directory or Azure AD.

既定では、Azure AD プロビジョニング コネクタには属性基準のスコープ フィルターが設定されていません。By default, Azure AD provisioning connectors do not have any attribute-based scoping filters configured.

スコープ フィルターの構造Scoping filter construction

スコープ フィルターは 1 つまたは複数ので構成されます。A scoping filter consists of one or more clauses. 句は、各ユーザーの属性を評価することによって、スコープ フィルターを通過できるユーザーを決定します。Clauses determine which users are allowed to pass through the scoping filter by evaluating each user's attributes. たとえば、ユーザーの "State" 属性が New York と等しいことを求める句が指定されていると、New York 在住のユーザーのみがアプリケーションにプロビジョニングされます。For example, you might have one clause that requires that a user's "State" attribute equals "New York", so only New York users are provisioned into the application.

1 つの句は、1 つの属性値の 1 つの条件を定義します。A single clause defines a single condition for a single attribute value. 1 つのスコープ フィルターに複数の句が作成されている場合は、"AND" ロジックでまとめて評価されます。If multiple clauses are created in a single scoping filter, they're evaluated together by using "AND" logic. つまり、ユーザーをプロビジョニングするには、すべての句の評価結果が "true" になる必要があります。This means all clauses must evaluate to "true" in order for a user to be provisioned.

最後に、複数のスコープ フィルターを 1 つのアプリケーションに対して作成できます。Finally, multiple scoping filters can be created for a single application. 複数のスコープ フィルターがある場合は、"OR" ロジックでまとめて評価されます。If multiple scoping filters are present, they're evaluated together by using "OR" logic. つまり、いずれかのスコープ フィルターのすべての句の評価結果が "true" であれば、そのユーザーがプロビジョニングされます。This means that if all the clauses in any of the configured scoping filters evaluate to "true", the user is provisioned.

Azure AD プロビジョニング サービスによって処理されるユーザーまたはグループは常に個別に各スコープ フィルターに対して評価されます。Each user or group processed by the Azure AD provisioning service is always evaluated individually against each scoping filter.

例として、次のスコープ フィルターを検討します。As an example, consider the following scoping filter:

スコープ フィルター

このスコープ フィルターに従うと、ユーザーをプロビジョニングするには、そのユーザーは次の条件を満たす必要があります。According to this scoping filter, users must satisfy the following criteria to be provisioned:

  • New York 在住である。They must be in New York.
  • エンジニアリング部門で働いている。They must work in the Engineering department.
  • 社員 ID の番号が 1,000,000 から 2,000,000 までに入る。Their company employee ID must be between 1,000,000 and 2,000,000.
  • 役職が null でも空でもない。Their job title must not be null or empty.

スコープ フィルターを作成するCreate scoping filters

スコープ フィルターは各 Azure AD ユーザー プロビジョニング コネクタの属性マッピングで設定されます。Scoping filters are configured as part of the attribute mappings for each Azure AD user provisioning connector. 次の手順では、サポートされているアプリケーションの 1 つに自動プロビジョニングを既に設定しており、それにスコープ フィルターを追加するものと想定しています。The following procedure assumes that you already set up automatic provisioning for one of the supported applications and are adding a scoping filter to it.

スコープ フィルターを作成するCreate a scoping filter

  1. Azure ポータルで、 [Azure Active Directory] > [エンタープライズ アプリケーション] > [すべてのアプリケーション] セクションに移動します。In the Azure portal, go to the Azure Active Directory > Enterprise Applications > All applications section.

  2. 自動プロビジョニングを設定しているアプリケーションを選択します (例: "ServiceNow")。Select the application for which you have configured automatic provisioning: for example, "ServiceNow".

  3. [プロビジョニング] タブを選択します。Select the Provisioning tab.

  4. [マッピング] セクションで、スコープ フィルターを構成するマッピングを選択します (例: "Synchronize Azure Active Directory Users to ServiceNow")。In the Mappings section, select the mapping that you want to configure a scoping filter for: for example, "Synchronize Azure Active Directory Users to ServiceNow".

  5. [ソース オブジェクト スコープ] メニューを選択します。Select the Source object scope menu.

  6. [スコープ フィルターの追加] を選択します。Select Add scoping filter.

  7. 照合対象としてソースの [属性名][演算子][属性値] を選択し、句を定義します。Define a clause by selecting a source Attribute Name, an Operator, and an Attribute Value to match against. 次の演算子がサポートされています。The following operators are supported:

    a.a. EQUALSEQUALS. 評価される属性が (大文字と小文字の区別を含めて) 入力文字列値と完全に一致する場合、句は "true" を返します。Clause returns "true" if the evaluated attribute matches the input string value exactly (case sensitive).

    b.b. NOT EQUALSNOT EQUALS. 評価される属性が (大文字と小文字の区別を含めて) 入力文字列値と一致しない場合、句は "true" を返します。Clause returns "true" if the evaluated attribute doesn't match the input string value (case sensitive).

    c.c. IS TRUEIS TRUE. 評価される属性にブール値 true が含まれる場合、句は "true" を返します。Clause returns "true" if the evaluated attribute contains a Boolean value of true.

    d.d. IS FALSEIS FALSE. 評価される属性にブール値 false が含まれる場合、句は "true" を返します。Clause returns "true" if the evaluated attribute contains a Boolean value of false.

    e.e. IS NULLIS NULL. 評価される属性が空の場合、句は "true" を返します。Clause returns "true" if the evaluated attribute is empty.

    f.f. IS NOT NULLIS NOT NULL. 評価される属性が空でない場合、句は "true" を返します。Clause returns "true" if the evaluated attribute isn't empty.

    g.g. REGEX MATCHREGEX MATCH. 評価される属性が正規表現パターンと一致する場合、句は "true" を返します。Clause returns "true" if the evaluated attribute matches a regular expression pattern. 例: ([1-9][0-9]) は 10 から 99 までのあらゆる数字と一致します。For example: ([1-9][0-9]) matches any number between 10 and 99.

    h.h. NOT REGEX MATCHNOT REGEX MATCH. 評価される属性が正規表現パターンと一致しない場合、句は "true" を返します。Clause returns "true" if the evaluated attribute doesn't match a regular expression pattern.

  8. [新しいスコープ句の追加] を選択します。Select Add new scoping clause.

  9. 必要に応じて、手順 7 ~ 8 を繰り返してスコープ句を追加します。Optionally, repeat steps 7-8 to add more scoping clauses.

  10. [スコープ フィルターのタイトル] で、スコープ フィルターの名前を追加します。In Scoping Filter Title, add a name for your scoping filter.

  11. [OK] を選択します。Select OK.

  12. [スコープ フィルター] 画面でもう一度 [OK] を選択します。Select OK again on the Scoping Filters screen. 必要に応じて、手順 6 ~ 11 を繰り返して別のスコープ フィルターを追加します。Optionally, repeat steps 6-11 to add another scoping filter.

  13. [属性マッピング] 画面で [保存] を選択します。Select Save on the Attribute Mapping screen.

重要

新しいスコープ フィルターを保存すると、アプリケーションの完全同期が新たに開始されます。ソース システムのすべてのユーザーが新しいスコープ フィルターに対してもう一度評価されます。Saving a new scoping filter triggers a new full sync for the application, where all users in the source system are evaluated again against the new scoping filter. アプリケーションのユーザーが以前はプロビジョニングの範囲に入っていたが、範囲から外れた場合、アプリケーションでそのアカウントが無効になるか、プロビジョニングが解除されます。If a user in the application was previously in scope for provisioning, but falls out of scope, their account is disabled or deprovisioned in the application. この既定の動作をオーバーライドするには、スコープ外に出るユーザー アカウントの削除のスキップに関する記事を参照してください。To override this default behavior, refer to Skip deletion for user accounts that go out of scope.

一般的なスコープ フィルターCommon scoping filters

ターゲット属性Target Attribute OperatorOperator ValueValue 説明Description
userPrincipalNameuserPrincipalName REGEX MATCHREGEX MATCH .*@domain.com.*@domain.com ドメイン @domain.com が指定された userPrincipal を持つすべてのユーザーは、プロビジョニングの範囲内になりますAll users with userPrincipal that has the domain @domain.com will be in scope for provisioning
userPrincipalNameuserPrincipalName NOT REGEX MATCHNOT REGEX MATCH .*@domain.com.*@domain.com ドメイン @domain.com が指定された userPrincipal を持つすべてのユーザーは、プロビジョニングの範囲外になりますAll users with userPrincipal that has the domain @domain.com will be out of scope for provisioning
departmentdepartment EQUALSEQUALS 営業sales 営業部門のすべてのユーザーは、プロビジョニングの範囲内ですAll users from the sales department are in scope for provisioning
workerIDworkerID REGEX MATCHREGEX MATCH (1[0-9][0-9][0-9][0-9][0-9][0-9])(1[0-9][0-9][0-9][0-9][0-9][0-9]) 1000000 と 2000000 の間の workerID を持つすべての従業員は、プロビジョニング範囲内です。All employees with workerIDs between 1000000 and 2000000 are in scope for provisioning.