スコープ フィルターを使用してプロビジョニングするユーザーまたはグループのスコープを設定する

Microsoft Entra プロビジョニング サービスでスコープ フィルターを使用して、属性ベースのルールを定義する方法について説明します。 ルールは、プロビジョニングされるユーザーまたはグループを決定するために使用されます。

スコープ フィルターの使用例

スコープ フィルターを使用して、自動ユーザー プロビジョニングをサポートするアプリケーション内のオブジェクトが、ビジネス要件を満たしていないのにプロビジョニングされてしまうことを防ぎます。 スコープ フィルターを使用すると、特定の値に一致する属性を持つユーザーを含めたり除外したりできます。 たとえば、営業チームが利用する SaaS アプリケーションに Microsoft Entra ID からユーザーをプロビジョニングするとき、"Sales" の "Department" 属性を持つユーザーのみがプロビジョニングの範囲に入るように指定できます。

スコープ フィルターは、プロビジョニング コネクタの種類によって異なる方法で使用できます。

  • Microsoft Entra ID から SaaS アプリケーションへの送信プロビジョニング。 Microsoft Entra ID がソース システムのとき、プロビジョニングの対象となるユーザーを決定する方法として最も一般的なものがユーザーとグループの割り当てです。 ユーザーとグループの割り当てはシングル サインオンの有効化にも利用され、1 つの方法でアクセスとプロビジョニングを管理できます。 スコープ フィルターを割り当てに加えて (任意で)、あるいは割り当ての代わりに利用し、属性値に基づいてユーザーを絞り込むことができます。

    ヒント

    プロビジョニングのスコープ内のユーザーとグループが多いほど、同期プロセスにかかる時間が長くなります。 割り当てられたユーザーとグループを同期するスコープを設定し、アプリに割り当てられているグループの数を制限し、グループのサイズを制限すると、スコープ内のすべてのユーザーを同期するのにかかる時間が短縮されます。

  • HCM アプリケーションから Microsoft Entra ID と Active Directory への内向きプロビジョニングWorkday などの HCM アプリケーションがソース システムのとき、スコープ フィルターは HCM アプリケーションから Active Directory または Microsoft Entra ID にプロビジョニングするユーザーを決定する主要な方法です。

既定では、Microsoft Entra プロビジョニング コネクタには属性ベースのスコープ フィルターは構成されていません。

Microsoft Entra ID がソース システムのとき、プロビジョニングの対象となるユーザーを決定する方法として最も一般的なものがユーザーとグループの割り当てです。 スコープ内のユーザー数を減らすとパフォーマンスが改善されます。また、すべてのユーザーとグループを同期するのではなく、割り当てられたユーザーとグループを同期することをお勧めします。

スコープ フィルターは、割り当てによるスコープに加えて、必要に応じて使用できます。 スコープ フィルターを利用すると、ユーザーに特定の値に一致する属性が与えられているとき、そのユーザーを Microsoft Entra プロビジョニング サービスに追加したり、除外したりできます。 たとえば、営業チームのユーザーをプロビジョニングする場合、"Sales" の "Department" 属性を持つユーザーのみをプロビジョニングのスコープに入れるように指定できます。

スコープ フィルターの構造

スコープ フィルターは 1 つまたは複数ので構成されます。 句は、各ユーザーの属性を評価することによって、スコープ フィルターを通過できるユーザーを決定します。 たとえば、ユーザーの "State" 属性が New York と等しいことを求める句が指定されていると、New York 在住のユーザーのみがアプリケーションにプロビジョニングされます。

1 つの句は、1 つの属性値の 1 つの条件を定義します。 1 つのスコープ フィルターに複数の句が作成されている場合、"AND" ロジックでまとめて評価されます。 つまり、"AND" ロジックでは、ユーザーをプロビジョニングするには、すべての句の評価結果が "true" になる必要があります。

最後に、複数のスコープ フィルターを 1 つのアプリケーションに対して作成できます。 複数のスコープ フィルターがある場合は、"OR" ロジックでまとめて評価されます。 つまり、"OR" ロジックでは、いずれかのスコープ フィルターのすべての句の評価結果が "true" であれば、そのユーザーがプロビジョニングされます。

Microsoft Entra プロビジョニング サービスによって処理される各ユーザーまたはグループは常に個別に各スコープ フィルターに対して評価されます。

例として、次のスコープ フィルターを検討します。

Scoping filter

このスコープ フィルターに従うと、ユーザーをプロビジョニングするには、そのユーザーは次の条件を満たす必要があります。

  • New York 在住である。
  • エンジニアリング部門で働いている。
  • 社員 ID の番号が 1,000,000 から 2,000,000 までに入る。
  • 役職が null でも空でもない。

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

スコープ フィルターは各 Microsoft Entra ユーザー プロビジョニング コネクタの属性マッピングで設定されます。 次の手順では、サポートされているアプリケーションの 1 つに自動プロビジョニングを既に設定しており、それにスコープ フィルターを追加するものと想定しています。

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

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

  1. 少なくとも アプリケーション管理者 の権限で Microsoft Entra 管理センター にサインインします。
  1. [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。

  2. 自動プロビジョニングを設定しているアプリケーションを選択します (例: "ServiceNow")。

  1. [ID]>[External Identities]>[テナント間同期]>[構成] の順に参照します

  2. 構成を選択します。

  1. [プロビジョニング] タブを選択します。
  1. [マッピング] セクションで、スコープ フィルターを構成するマッピングを選択します (例: [Microsoft Entra ユーザーを ServiceNow に同期する])。
  1. [マッピング] セクションで、スコープ フィルターを構成するマッピングを選択します (例: [Microsoft Entra ユーザーのプロビジョニング])。
  1. [ソース オブジェクト スコープ] メニューを選択します。

  2. [スコープ フィルターの追加] を選択します。

  3. 照合対象としてソースの [属性名][演算子][属性値] を選択し、句を定義します。 次の演算子がサポートされています。

    a. &。 評価された属性が入力文字列値に存在する場合、句は "true" を返します。

    b. !&。 評価された属性が入力文字列値に存在しない場合、句は "true" を返します。

    c. ENDS_WITH。 評価された属性が入力文字列値で終わる場合、句は "true" を返します。

    d. EQUALS。 評価される属性が (大文字と小文字の区別を含めて) 入力文字列値と完全に一致する場合、句は "true" を返します。

    e. Greater_Than。 評価される属性が値よりも大きい場合、句は "true" を返します。 スコープ フィルターに指定する値は整数である必要があり、ユーザーの属性は整数 [0,1,2,...] である必要があります。

    f. Greater_Than_OR_EQUALS。 評価された属性が値以上の場合、句は "true" を返します。 スコープ フィルターに指定する値は整数である必要があり、ユーザーの属性は整数 [0,1,2,...] である必要があります。

    g. Includes。 評価される属性に、こちらで説明されている文字列値が含まれる場合 (大文字と小文字を区別します)、句は "true" を返します。

    h. IS FALSE。 評価される属性にブール値 false が含まれる場合、句は "true" を返します。

    i. IS NOT NULL。 評価される属性が空でない場合、句は "true" を返します。

    j. IS NULL。 評価される属性が空の場合、句は "true" を返します。

    k. IS TRUE。 評価される属性にブール値 true が含まれる場合、句は "true" を返します。

    l. NOT EQUALS。 評価される属性が (大文字と小文字の区別を含めて) 入力文字列値と一致しない場合、句は "true" を返します。

    m. NOT REGEX MATCH。 評価される属性が正規表現パターンと一致しない場合、句は "true" を返します。 属性が null または空の場合、"false" が返されます。

    n. REGEX MATCH。 評価される属性が正規表現パターンと一致する場合、句は "true" を返します。 例: ([1-9][0-9]) は、10 から 99 の任意の数値に一致します (大文字と小文字が区別されます)。

重要

  • IsMemberOf フィルターは現在サポートされていません。
  • 現在、グループの members 属性はサポートされていません。
  • フィルター処理は複数値の属性ではサポートされていません。
  • 値が null または空の場合、スコープ フィルターは "false" を返します。
  1. 必要に応じて、手順 7 ~ 8 を繰り返してスコープ句を追加します。

  2. [スコープ フィルターのタイトル] で、スコープ フィルターの名前を追加します。

  3. [OK] を選択します。

  4. [スコープ フィルター] 画面でもう一度 [OK] を選択します。 必要に応じて、手順 6 ~ 11 を繰り返して別のスコープ フィルターを追加します。

  5. [属性マッピング] 画面で [保存] を選択します。

重要

新しいスコープ フィルターを保存すると、アプリケーションの完全同期が新たに開始されます。ソース システムのすべてのユーザーが新しいスコープ フィルターに対してもう一度評価されます。 アプリケーションのユーザーが以前はプロビジョニングの範囲に入っていたが、範囲から外れた場合、アプリケーションでそのアカウントが無効になるか、プロビジョニングが解除されます。 この既定の動作をオーバーライドするには、スコープ外に出るユーザー アカウントの削除のスキップに関する記事を参照してください。

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

ターゲット属性 演算子 説明
userPrincipalName REGEX MATCH .*\@domain.com ドメイン @domain.com を持つ userPrincipal のすべてのユーザーがプロビジョニングの範囲内になります。
userPrincipalName NOT REGEX MATCH .*\@domain.com ドメイン @domain.com を持つ userPrincipal のすべてのユーザーがプロビジョニングの範囲外になります。
department EQUALS sales 営業部門のすべてのユーザーは、プロビジョニングの範囲内です
workerID REGEX MATCH (1[0-9][0-9][0-9][0-9][0-9][0-9]) 1000000 と 2000000 の間の workerID を持つすべての従業員は、プロビジョニング範囲内です。