[comment]: # ({caf91c6b-f9e8f670})
# userdirectory.test

[comment]: # ({/caf91c6b-f9e8f670})

[comment]: # ({99f1236b-b5ff62ed})
### 説明

`object userdirectory.test(array userDirectory)`

このメソッドは、ユーザーディレクトリの接続設定をテストします。

::: noteclassic
このメソッドは、ユーザープロビジョニングのユーザーディレクトリ設定と一致する設定データ（例：ユーザーに割り当てられるユーザーロール、ユーザーグループ、ユーザーメディア）をテストすることもできます。
このタイプのテストでは、`provision_status` が有効に設定されている [ユーザーディレクトリ](/manual/api/reference/userdirectory/object#userdirectory) に対して API リクエストを送信する必要があります。
:::

::: noteclassic
このメソッドは、*Super admin* ユーザータイプでのみ使用できます。
:::

[comment]: # ({/99f1236b-b5ff62ed})

[comment]: # ({72d24aee-d99c84a0})
### パラメータ

`(object)` ユーザーディレクトリのプロパティ。

`userdirectory.get` API は `bind_password` フィールドを返さないため、`userdirectoryid` および/または `bind_password` を指定する必要があります。<br>
このメソッドは、[標準のユーザーディレクトリプロパティ](object#userdirectory)に加えて、以下のパラメータを受け付けます。

|パラメータ|[型](/manual/api/reference_commentary#data-types)|説明|
|--|--|------|
|test_username|string|ユーザーディレクトリでテストするユーザー名。|
|test_password|string|ユーザーディレクトリでテストするユーザー名に対応するパスワード。|

[comment]: # ({/72d24aee-d99c84a0})

[comment]: # ({0a19e6a5-99a75467})
### 戻り値

`(bool)` 成功した場合はtrueを返します。

[comment]: # ({/0a19e6a5-99a75467})

[comment]: # ({b41637d2-47b9eb66})
### 例

[comment]: # ({/b41637d2-47b9eb66})

[comment]: # ({0ec66727-9f73d089})
##### 既存のユーザーのユーザーディレクトリのテスト

"user1"のユーザーディレクトリ"3"をテストします。

[リクエスト](/manual/api#performing-requests) :

```json
{
    "jsonrpc": "2.0",
    "method": "userdirectory.test",
    "params": {
        "userdirectoryid": "3",
        "host": "127.0.0.1",
        "port": "389",
        "base_dn": "ou=Users,dc=example,dc=org",
        "search_attribute": "uid",
        "bind_dn": "cn=ldap_search,dc=example,dc=org",
        "bind_password": "password",
        "test_username": "user1",
        "test_password": "password"
    },
    "id": 1
}
```

レスポンス :

```json
{
    "jsonrpc": "2.0",
    "result": true,
    "id": 1
}
```

[comment]: # ({/0ec66727-9f73d089})

[comment]: # ({fa573532-a8a25347})
##### 存在しないユーザーのユーザーディレクトリのテスト

存在しない"user2"でユーザーディレクトリ"3"のテストをします。

[リクエスト](/manual/api#performing-requests) :

```json
{
    "jsonrpc": "2.0",
    "method": "userdirectory.test",
    "params": {
        "userdirectoryid": "3",
        "host": "127.0.0.1",
        "port": "389",
        "base_dn": "ou=Users,dc=example,dc=org",
        "search_attribute": "uid",
        "bind_dn": "cn=ldap_search,dc=example,dc=org",
        "test_username": "user2",
        "test_password": "password"
    },
    "id": 1
}
```

レスポンス :

```json
{
    "jsonrpc": "2.0",
    "error": {
        "code": -32500,
        "message": "Application error.",
        "data": "Incorrect user name or password or account is temporarily blocked."
    },
    "id": 1
}
```

[comment]: # ({/fa573532-a8a25347})

[comment]: # ({79a981ca-54c18b14})
##### ユーザープロビジョニングのユーザーディレクトリのテスト

"user3"プロビジョニングのユーザーディレクトリ設定と一致する構成されたデータのユーザーディレクトリ"3"をテストします (例えば、何かユーザーの役割、ユーザーグループ、ユーザーメディアがユーザーに割り当てられます)。

[リクエスト](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "userdirectory.test",
    "params": {
        "userdirectoryid": "2",
        "host": "host.example.com",
        "port": "389",
        "base_dn": "DC=zbx,DC=local",
        "search_attribute": "sAMAccountName",
        "bind_dn": "CN=Admin,OU=Users,OU=Zabbix,DC=zbx,DC=local",
        "test_username": "user3",
        "test_password": "password"
    },
    "id": 1
}
```

レスポンス:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "username": "user3",
        "name": "John",
        "surname": "Doe",
        "medias": [],
        "usrgrps": [
            {
                "usrgrpid": "8"
            },
            {
                "usrgrpid": "7"
            }
        ],
        "roleid": "2",
        "userdirectoryid": "2"
    },
    "id": 1
}
```

[comment]: # ({/79a981ca-54c18b14})

[comment]: # ({e28d4bf9-0402a0f4})
### ソース

CUserDirectory::test() in *ui/include/classes/api/services/CUserDirectory.php*.

[comment]: # ({/e28d4bf9-0402a0f4})
