フィルター処理と属性マッピングのスコーピング - Microsoft Entra ID から Active Directory へ
既定の属性マッピングをビジネスのニーズに合わせてカスタマイズできます。 そのため、既存の属性マッピングを変更、削除したり、新規の属性マッピングを作成したりすることができます。
次のドキュメントでは、Microsoft Entra ID から Active Directory へのプロビジョニング用に Microsoft Entra Cloud Sync を使用して属性のスコーピングを行う方法について説明します。 AD から Microsoft Entra ID への属性マッピングの情報については、「属性マッピング - Active Directory から Microsoft Entra ID」を参照してください。
Microsoft Entra ID から Active Directory への構成のスキーマ
現在、AD スキーマは検出できず、マッピングのセットは固定されています。 次の表は、Microsoft Entra ID から Active Directory の構成への既定のマッピングとスキーマを示しています。
ターゲット属性 | ソース属性 | マッピングの種類 | メモ |
---|---|---|---|
adminDescription | Append("Group_",[objectId]) | Expression | UI では更新不可 - 更新しないでください AD からクラウド同期へのフィルター処理に使用します UI には表示されません |
cn | Append(Append(Left(Trim([displayName]),51),"_"),Mid([objectId],25,12)) | 式 | |
description | Left(Trim([description]),448) | Expression | |
displayName | displayName | 直接 | |
isSecurityGroup | 正しい | 定数 | UI では更新不可 - 更新しないでください UI には表示されません |
member | メンバー | 直接 | UI では更新不可 - 更新しないでください UI には表示されません |
msDS-ExternalDirectoryObjectId | Append("Group_",[objectId]) | Expression | UI では更新不可 - 更新しないでください AD での結合 - 照合に使用します UI には表示されません |
ObjectGUID | UI では更新不可 - 更新しないでください 読み取り専用 - AD でのアンカー UI には表示されません |
||
parentDistinguishedName | OU=Users,DC=<構成開始時に選ばれたドメイン>,DC=com | 定数 | UI での既定値 |
UniversalScope | 正しい | 定数 | UI では更新不可 - 更新しないでください UI には表示されません |
上記のマッピングのすべてがポータルに表示されるわけではないことに注意してください。 属性マッピングの追加方法について詳しくは、属性マッピングに関する記事をご覧ください。
sAmAccountName カスタム マッピング
既定では、sAMAccount 属性は Microsoft Entra ID から Active Directory に同期されません。 このため、Active Directory で新しいグループが作成されると、そのグループにはランダムに生成された名前が付けられます。
sAMAccountName に独自の一意の値が必要な場合は、式を使用して sAMAccountName へのカスタム マッピングを作成できます。 たとえば、次のように指定できます: Join("_", [displayName], "Contoso_Group")
これにより、displayName 値が取得され、"Contoso_Group" が追加されます。 したがって、新しい sAMAccountName は Marketing_Contoso_Group のようになります
重要
sAMAccountName のカスタム属性マッピングを作成する場合は、Active Directory 内で一意であることを確認する必要があります。
フィルター対象コンテナーのスコーピング
既定のターゲット コンテナーは OU=User,DC=<構成の開始時に選択されたドメイン>、DC=comです。 これは、独自のカスタム コンテナーに変更できます。
Switch() 関数で属性マッピング式を使用して、複数のターゲット コンテナーを構成することもできます。 この式で、displayName の値が Marketing または Sales の場合は、対応する OU にグループが作成されます。 一致するものがない場合は、既定の OU にグループが作成されます。
Switch([displayName],"OU=Default,OU=container,DC=contoso,DC=com","Marketing","OU=Marketing,OU=container,DC=contoso,DC=com","Sales","OU=Sales,OU=container,DC=contoso,DC=com")
もう 1 つの例を以下に示します。 次の 3 つのグループがあり、次の displayName 属性値を持つとします。
- NA-Sales-Contoso
- SA-Sales-Contoso
- EU-Sales-Contoso
次の switch ステートメントを使用して、グループをフィルター処理およびプロビジョニングできます。
Switch(Left(Trim([displayName]), 2), "OU=Groups,DC=contoso,DC=com", "NA","OU=NorthAmerica,DC=contoso,DC=com", "SA","OU=SouthAmerica,DC=contoso,DC=com", "EU", "OU=Europe,DC=contoso,DC=com")
このステートメントでは、既定ですべてのグループが Active Directory の OU=Groups、DC=contoso、DC=com コンテナーにプロビジョニングされます。 ただし、グループが NA で始まる場合、グループは OU=NorthAmerica、DC=contoso、DC=com にプロビジョニングされます。 同様に、グループが SA で始まる場合、OU=SouthAmerica、DC=contoso、DC=com、EU の場合は OU=Europe、DC=contoso、DC=com となります。
詳細については、「Microsoft Entra ID の属性マッピング式記述リファレンス」を参照してください。
属性スコープのフィルター処理
属性ベースのスコープ フィルター処理がサポートされています。 特定の属性に基づいてグループのスコープを設定できます。 ただし、Microsoft Entra ID から Active Directory への構成の属性マッピング セクションは、従来の属性マッピング セクションと若干異なることに注意してください。
サポートされる句
スコープ フィルターは 1 つまたは複数の句で構成されます。 句は、各グループの属性を評価することによって、スコープ フィルターを通過できるグループを決定します。 たとえば、グループの "displayName" 属性が "Marketing" と一致することを要求する句がある場合、Marketing グループのみがプロビジョニングされます。
既定のセキュリティ グループ
既定のセキュリティ グループは、作成されるすべての句の先頭で適用され、"AND" ロジックを使います。 これには次の条件が含まれます。
- securityEnabled IS True AND
- dirSyncEnabled IS FALSE AND
- mailEnabled IS FALSE
既定のセキュリティ グループの指定は常に最初に適用され、1 つの句を使用するときは AND ロジックが使われます。 その場合、句は次に示すロジックに従います。
1 つの句は、1 つの属性値の 1 つの条件を定義します。 1 つのスコープ フィルターに複数の句が作成されている場合、"AND" ロジックでまとめて評価されます。 つまり、"AND" ロジックでは、ユーザーをプロビジョニングするには、すべての句の評価結果が "true" になる必要があります。
最後に、複数のスコープ フィルターを 1 つのグループに対して作成できます。 複数のスコープ フィルターがある場合は、"OR" ロジックでまとめて評価されます。 "OR" ロジックは、構成されているいずれかのスコープ フィルターのいずれかの句が "true" と評価される場合、そのグループがプロビジョニングされることを意味します。
サポートされている演算子
次の演算子がサポートされています。
Operator | 説明 |
---|---|
& | |
ENDS_WITH | |
EQUALS | 評価される属性が (大文字と小文字の区別を含めて) 入力文字列値と完全に一致する場合、句は "true" を返します。 |
GREATER_THAN | 評価される属性が値よりも大きい場合、句は "true" を返します。 スコープ フィルターに指定する値は整数である必要があり、ユーザーの属性は整数 [0,1,2,...] である必要があります。 |
GREATER_THAN_OR_EQUALS | 評価された属性が値以上の場合、句は "true" を返します。 スコープ フィルターに指定する値は整数である必要があり、ユーザーの属性は整数 [0,1,2,...] である必要があります。 |
INCLUDES | |
IS FALSE | 評価される属性にブール値 false が含まれる場合、句は "true" を返します。 |
IS_MEMBER_OF | |
NULL でない | 評価される属性が空でない場合、句は "true" を返します。 |
IS NULL | 評価される属性が空の場合、句は "true" を返します。 |
IS TRUE | 評価される属性にブール値 true が含まれる場合、句は "true" を返します。 |
!&L | |
NOT EQUALS | 評価される属性が (大文字と小文字の区別を含めて) 入力文字列値と一致しない場合、句は "true" を返します。 |
NOT REGEX MATCH | 評価される属性が正規表現パターンと一致しない場合、句は "true" を返します。 属性が null または空の場合、"false" が返されます。 |
PRESENT | |
REGEX MATCH | 評価される属性が正規表現パターンと一致する場合、句は "true" を返します。 例: ([1-9][0-9]) は、10 ~ 99 の任意の数値に一致します (大文字と小文字が区別されます)。 |
VALID CERT MATCH |
正規表現を使用したフィルター処理
より高度なフィルターでは、REGEX MATCH を使用できます。 これにより、属性の substring の文字列として、属性の検索が可能となります。 たとえば、複数のグループがあり、すべてのグループに次の記述があるとします。
Contoso-Sales-US Contoso-Marketing-US Contoso-Operations-US Contoso-LT-US
ここでは、Sales、Marketing、Operations グループのみを Active Directory にプロビジョニングします。 REGEX MATCH を使用すると、これを実現できます。
REGEX MATCH description (?:^|\W)Sales|Marketing|Operations(?:$|\W)
この REGEX MATCH では、指定した単語の記述すべてを検索し、それらのグループのみをプロビジョニングします。
属性ベースのフィルターを作成する
属性ベースのフィルターを作成するには、次の手順のようにします。
- [属性フィルターの追加] をクリックします
- [名前] ボックスで、フィルターの名前を指定します
- [ターゲット属性] のドロップダウンから、ターゲット属性を選びます
- [演算子] で、演算子を選びます。
- [値] で、値を指定します。
- [保存] をクリックします。
詳細については、「Microsoft Entra ID の属性マッピング式記述リファレンス」を参照してください。