# カスタムLDAPフィルター

ブリッジでは標準のLDAPクエリ言語がご使用になれます。構文については、[こちらのページ](https://learn.microsoft.com/ja-jp/archive/technet-wiki/5392.active-directory-ldap-syntax-filters)をご参照ください。

### カスタムノード <a href="#custom-nodes" id="custom-nodes"></a>

ノードフィルターを使用すると、どのOU (組織単位) を検出したり除外したりするかを定義できます。LDAPクエリによって、オブジェクトが属するOUがドメインツリー内で検出される場合のみ、ノードフィルター内にオブジェクト (OU、セキュリティグループ、ユーザー) が検出されます。

Domain Controllers (デフォルト設定)、Finance、Marketingを除くすべてのOUを Keeper管理コンソールでノードとして構成する場合、LDAPクエリは以下のようになります。

```
(&    
  (objectclass=orgnaizationalunit)        
  (!name=Domain Contollers)
  (!name=Finance)
  (!name=Marketing)   
)
```

この例では、FinanceまたはMarketingのOU内にユーザー、セキュリティグループ、その他のOUが存在する場合でも、クエリでは検出できませんのでご留意ください。

#### コンテナとOU <a href="#container-vs-ou" id="container-vs-ou"></a>

LDAPクエリ文を構成する際のもう 1 つの重要な要素として、組織によっては目標を達成するためにOUにユーザーを配置しない場合があります。その場合、ユーザーはコンテナ (通常は「ユーザーコンテナ」と呼ばれます) に配置されます。Microsoftではこれをベストプラクティスとして推奨していませんが、このように構成されている組織が多く存在します。このような場合、組織はコンテナをOUに変換することを検討するべきですが、それが難しい場合は、ノードフィルターにOUではなくコンテナを検出するための文を含める必要があります。

以下の例では、フィルター&#x306F;**「WestCoast」**&#x3068;いうOU&#x3068;**「Users」**&#x3068;いうコンテナの両方を検出するように設定されています。

```
(&
    (|
       (objectclass=organizationalunit)
       (objectclass=container)
       (!name=Domain Contollers)
    )
    (|
       (name=WestCoast)
       (cn=Users)
    )
)
```

{% hint style="info" %}
ユーザーフィルターをコンテナと併せて構成する際には、ユーザーを検出するために追加の文を加える必要がある場合があります。その理由としては、Active Directoryでユーザーを作成すると、デフォルトではユーザーが「Domain Users」というグループに作成されるためです。このグループがユーザーの「デフォルトプライマリグループ」となります。プライマリグループは「memberOf」属性には存在せず、「primaryGroupID」属性に存在します。primaryGroupIDは識別名ではなく、プライマリグループの相対識別子 (RID) に過ぎません。このため、ユーザーを含むグループを使用して「memberOf」プロパティを検索してもユーザーは検出されません。したがって、以下の例のように、「User」フィルターにLDAPクエリ文を追加することが必要となる場合があります。
{% endhint %}

```
(&
   (objectCategory=person)
   (objectClass=user)
   (primaryGroupID=513)
)
```

### カスタムロール <a href="#custom-roles" id="custom-roles"></a>

Keeper組織内のユーザーに強制適用ポリシーを適用するには、ロールが必要となります。デフォルトではフィルターは空白となっています。Active Directoryのグループ名は組織固有のものであるため、デフォルトのフィルターはありません。そのため、Active Directory内のどのセキュリティグループをロールとして使用するかを決定する必要があります。\
\
すべてのセキュリティグループをロールとしてマッピングする場合、デフォルトのチームフィルターをコピーするとすべてのグループをロールとして簡単にエクスポートできます。しかし、この方法では、管理者は各グループをロールとチームの両方として管理する必要があります。多くのロールを維持するのは不要であるため、1つまたは少数のロールだけで十分かもしれません。

以下の例では、**「Local Admins」**&#x3068;**「Regional Admins」**&#x3092;除くすべてのセキュリティグループをロールとしてマッピングします。

```
(&
    (objectclass=group)
    (!CN=Local Admins)
    (!CN=Regional Admins)
    (|
     (grouptype=-2147483640)
        (grouptype=-2147483644)
        (grouptype=-2147483646)
    )
)
```

特定のセキュリティグループのみをロールとしてマッピングする例は以下の通りです。以下の例では、**「Local Admins」**&#x3068;「**Regional Admins」**&#x3092;OR (|) 演算子でグループ化しています。

```
(&
    (objectclass=group)
    (|
        (CN=Keeper Admins)
        (CN=Keeper Users)
    )
    (|
        (grouptype=-2147483640)
        (grouptype=-2147483644)
        (grouptype=-2147483646)
    )
)
```

ロールのフィルタリングでは、ユーザーが属するグループがエクスポートされない場合でも、ユーザーがエクスポートされる点が重要となります。ただし、そのユーザーはロールには割り当てられません。

### カスタムチームフィルター <a href="#custom-team-filters" id="custom-team-filters"></a>

Keeper組織内でフォルダやレコードを他のユーザーと共有するには、チームが必要となります。デフォルトでは、チームフィルターですべてのセキュリティグループがチームにマッピングされます。ロールフィルターとチームフィルターはセキュリティグループに基づいて動作しますが、一部のグループがロールとチームの両方としてマッピングされることがあります。たとえば、ある組織では「LA管理者」や「LAユーザー」がロールとしてマッピングされながら、すべてのセキュリティグループもチームとしてマッピングされる場合、「LA管理者」と「LAユーザー」はロールでありながらチームとしても扱われます。\
\
ロールはチームとしても機能するため、カスタムフィルタリングのロールの例もご参照ください。

### カスタムユーザーフィルター <a href="#custom-user-filters" id="custom-user-filters"></a>

ユーザーフィルターでは、Active Directory内のユーザーオブジェクトがマッピングされます。ユーザーがロールまたはチームとしてマッピングされたセキュリティグループのメンバーである場合、ブリッジはそのユーザーを招待し、Active Directoryのグループメンバーシップに基づいて、そのユーザーがメンバーであるロールとチームに割り当てます。\
\
以下は、特定のユーザーを除くActive Directory内のすべてのユーザーをマッピングする例となります。User52とUser58はコモンネーム (Common Name) によって除外されます。

```
(&
    (objectclass=user)
    (objectCategory=Person)
    (!cn=User52)
    (!cn=User58)
)
```

以下は、Active Directory内の特定のユーザーのみをマッピングする例となります。User52とUser58はコモンネーム (Common Name) によってのみ含まれます。

```
(&
    (objectclass=user)
    (objectCategory=Person)
    (|
        (cn=User52)
        (cn=User58)
    )
)
```

以下は、Active Directory内で特定のグループに属するすべてのユーザーをマッピングする例となります。**「RDP Users」**&#x3068;**「Console Users」**&#x306E;各グループのメンバーが含まれます。

```
(&
    (objectclass=user)
    (objectCategory=Person)
    (|
    (memberOf=CN=RDP Users,OU=Office Users,DC=keeper,DC=local)
    (memberOf=CN=Console Users,OU=Office Users,DC=keeper,DC=local)
    )
)
```

以下は、Active Directory内で特定のグループに属するユーザーを除くすべてのユーザーをマッピングする例となります。**「RDP Users」**&#x3068;**「Office Admins」**&#x306E;各グループのメンバーは除外されます。

```
(&
    (objectclass=user)
    (objectCategory=Person)
    (!memberOf=CN=RDP Users,OU=EDH Office Users,DC=keeper,DC=local)
    (!memberOf=CN=Office Admins,OU=EDH Office Users,DC=keeper,DC=local)
)
```

以下は、Active Directory内で特定のグループに属するユーザーと特定のグループの下にネストされたグループを除くすべてのユーザーをマッピングする例となります。Active Directory OID (:1.2.840.113556.1.4.1941:) を使用しているため、**「RDP Users」**&#x30B0;ループと「**Console Users」**&#x30B0;ループのメンバーに加えてこれら2つのグループのすべてのサブグループのメンバーが含まれます。

```
(&
    (objectclass=user)
    (objectCategory=Person)
    (|
    (memberOf:1.2.840.113556.1.4.1941:=CN=RDP Users,OU=Office Users,DC=keeper,DC=local)
    (memberOf:1.2.840.113556.1.4.1941:=CN=Console Users,OU=Office Users,DC=keeper,DC=local)
    )
)
```

特定のOUに属するユーザーのみをマッピングする、または特定のOUに属するユーザーをマッピングしないようにする場合については、ノードフィルターの項目をご参照ください。

### フィルター結果のプレビュー <a href="#preview-filter-results" id="preview-filter-results"></a>

フィルター編集ボックスの上にあるプレビューオプションを使用すると、定義されたフィルターの結果が表示されます。これにより、ノードフィルターによって定義されたツリー構造や、ツリー構造内で他のフィルター (ユーザー、ロール、チーム) によってエクスポートされるオブジェクトが確認できます。

![](/files/-Ll-Jo8K_RlfQvPuCKyl)

チームは、選択したツリーノードに関係なく常に表示されます。ロールとユーザーは、ツリー内の位置に基づいて表示されます。オブジェクトの合計数もツリー構造の下に表示されます。\
\
ノード、ロール、チーム、ユーザーを選択すると、選択したオブジェクトに関連付けられたActive Directoryプロパティが表示されます。この情報は、オブジェクトのフィルター処理に使用できるプロパティとプロパティ値を決定するのに役立ちます。

<figure><img src="/files/Wa07qpnB3UHb99KMdiRS" alt=""><figcaption></figcaption></figure>

### 変更を有効にする <a href="#publish-changes" id="publish-changes"></a>

設定が完了したら、**\[保存]**&#x3092;選択して現在の設定を保持します。すべての設定が完了したら、**\[Publish]** (更新) ボタンを使用して変更を反映させ、統合を発動します。

![](/files/-Ll-KsCw3-5eGw_Kktx4)

{% hint style="info" %}
フィルターを編集する際には、フィルターが意図したとおりに設定されていることを確認してから編集内容を反映させるようにしてください。

同期中にはブリッジログを表示して、重要なメッセージを確認するようにしてください。
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeper-bridge/jp/custom-role-filters.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
