userdirectory.test

描述

object userdirectory.test(array userDirectory)

此方法允许测试用户目录连接设置。

此方法还允许测试哪些配置数据与用户目录设置匹配以进行用户配置 (例如,将为用户分配什么用户角色、用户组、用户媒介)。 对于此类测试,应针对已将 provision_status 设置为启用的 用户目录 发送 API 请求。

此方法仅适用于 超级管理员 用户类型。

参数

(object) 用户目录属性。

由于 userdirectory.get API 不返回 bind_password 字段,应提供 userdirectoryid 和/或 bind_password
除了 用户目录,该方法还接受以下参数。

参数 数据类型 描述
test_username string 要在用户目录中测试的用户名。
test_password string 与用户名关联的密码,用于在用户目录中测试。

返回值

(bool) 成功时返回 true。

示例

测试现有用户的用户目录

测试用户目录 "3" 中的 "user1"。

执行请求:

{
           "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
       }

响应:

{
           "jsonrpc": "2.0",
           "result": true,
           "id": 1
       }
测试用户目录中的不存在用户

测试用户目录 "3" 中不存在的 "user2"。

执行请求:

{
           "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
       }

响应:

{
           "jsonrpc": "2.0",
           "error": {
               "code": -32500,
               "message": "Application error.",
               "data": "Incorrect user name or password or account is temporarily blocked."
           },
           "id": 1
       }
用户配置的测试用户目录

测试用户目录"3",查看哪些配置数据与"user3"用户配置的用户目录设置相匹配 (例如,用户角色、用户组、用户媒介将会分配给该用户)。

执行请求:

{
           "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
       }

响应:

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

来源

CUserDirectory::test() 在 ui/include/classes/api/services/CUserDirectory.php 中。