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
}
响应:
测试用户目录 "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 中。