我正在处理一个问题,其中我连接到用户提供的LDAP服务器,但有时主机名不适用于该服务器。我要么在n个时间都获得IP地址或主机名。
能够从给定的主机名中获取IP地址,但是我的/ etc / hosts中没有DNS映射可用于我从IP地址获取主机名
我找不到任何方法来避免在身份验证过程中使用主机名,而只能使用IP地址。想检查是否可行?
我可以告诉kerberos跳过主机名,仅使用IP地址进行身份验证吗?
我尝试了https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html#domain-realm中提供的大多数选项,但是没有什么帮助我跳过主机名检查。
context = LDAPConnectionPtr(new LDAPConnection(authSrv.getIP(), authSrv.getPort()));
context->saslInteractiveBind("GSSAPI", LDAP_SASL_INTERACTIVE, new Sasl());
以下是面临的错误
SASL/GSSAPI authentication started
Sasl::handleInteractions()
SASL Prompt: Please enter your authorization name
Caught LDAP Bind exception: Error -2: Local error
答案 0 :(得分:1)
您不能将IP地址与Kerberos一起使用,它必须是主机名。而且,除非有人永久使用脚本,否则您不会在脚本中进行交互式绑定。使用非交互式绑定(因此会看到错误)。
这在Python中非常有效:
url = 'ldap://ad.company.com'
directory = ldap.initialize(url)
directory.set_option(ldap.OPT_PROTOCOL_VERSION, ldap.VERSION3)