[comment]: # translation:outdated

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

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

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

`object userdirectory.test(array userDirectory)`

Questo metodo consente di testare le impostazioni di connessione della directory utenti.

::: noteclassic
Questo metodo consente anche di verificare quali dati configurati corrispondono alle impostazioni della directory utenti per il provisioning degli utenti
(ad esempio, quale ruolo utente, gruppi utenti e media utente verranno assegnati all'utente).
Per questo tipo di test, la richiesta API deve essere effettuata per una [directory utenti](/manual/api/reference/userdirectory/object#userdirectory) che abbia `provision_status` impostato su abilitato.
:::

::: noteclassic
Questo metodo è disponibile solo per il tipo di utente *Super admin*.
:::

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

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

`(object)` Proprietà della directory utenti.

Poiché l'API `userdirectory.get` non restituisce il campo `bind_password`, devono essere forniti `userdirectoryid` e/o `bind_password`.<br>
Oltre alle [proprietà standard della directory utenti](object#userdirectory), il metodo accetta i seguenti parametri.

|Parametro|[Type](/manual/api/reference_commentary#data-types)|Descrizione|
|--|--|------|
|test_username|string|Nome utente da testare nella directory utenti.|
|test_password|string|Password associata al nome utente da testare nella directory utenti.|

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

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

"(bool)" Restituisce vero in caso di successo.

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

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

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

[comment]: # ({0ec66727-9f73d089})
##### Test della directory utenti per un utente esistente

Testa la directory utenti "3" per "user1".

[Richiesta](/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
}
```

Risposta:

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

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

[comment]: # ({fa573532-a8a25347})
##### Test della directory utenti per un utente inesistente

Test della directory utenti "3" per l'utente inesistente "user2".

[Richiesta](/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
}
```

Risposta:

```json
{
    "jsonrpc": "2.0",
    "error": {
        "code": -32500,
        "message": "Errore dell'applicazione.",
        "data": "Nome utente o password non corretti oppure account temporaneamente bloccato."
    },
    "id": 1
}
```

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

[comment]: # ({79a981ca-54c18b14})
##### Test della directory utenti per il provisioning degli utenti

Testa la user directory "3" per verificare quali dati configurati corrispondono alle impostazioni della directory utenti per il provisioning di "user3"
(ad esempio, quale ruolo utente, gruppi utenti e supporti utente verranno assegnati all'utente).

[Richiesta](/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
}
```

Risposta:

```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})
### Fonte

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

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