一位同事建议我们使用多个主机用于身份验证
基于LDAP的网站,以防一个主机当前关闭。现在我知道你可以这样做PHP ldap_connect多个主机在一个蜂群无法访问的情况下
$LDAP_SERVERS = "10.101.01.1 10.100.10.2";
$ldap = ldap_connect($LDAP_SERVERS);
但是我使用的是配置文件:
return [
'domain_controller' => ['10.101.01.1', '10.100.10.2'],
'base_dn' => 'OU=foo,DC=example,DC=local',
'ssl' => false,
...
];
而作为同事建议我的连接是通过
$protocol = $this->ssl ? $this::PROTOCOL_SSL : $this::PROTOCOL;
$port = $this->ssl ? $this::PORT_SSL : $this::PORT;
return $this->connection = ldap_connect($protocol . $hostname, $port);
完成我们的LDAP主机将来可能会通过SSL运行,我怎样才能让这多个主机为此工作?在它上面只与主机名一起工作,但那是因为它不是基于ssl的。鉴于SSL你需要ldaps://协议和端口号,对吧? 因此它不会只用主机工作,我不知道,如果你可以做简单的连接看起来像
ldap_connect('ldaps://' . '10.101.01.1 10.100.10.2', 123);
(假定的两台服务器运行基于SSL的LDAP相同的端口)的东西
编辑:得到它通过使用ldap_connect('ldaps://hostnameone ldaps://hostnametwo, 636');
作为reddit的用户的工作说:“通知他们仍然用空格隔开,并应在出场顺序受审..”
如果您使用URI,您可以省略端口号,因为它不会被使用 – heiglandreas