我想手动login到ldap服务器。 使用Kerberos进行身份validation。 我在那里用用户名和密码登记。
kinit username@servername
它工作正常,并创build一个有效的TGT,我可以查看使用
klist
但是如何继续下去。 我如何使用TGT连接到ldap服务器?
我读过,在这里需要一个keytab文件。 但是我在/ etc /下没有生成krb5.keytab文件。
一如既往,“取决于”。 我假设你正在使用某种types的Linux。
对于一次性身份validation,只要您的ldap客户端支持GSSAPI,则可以使用GSSAPI机制。 所以一旦你成功了,并且你有一张票,那么你可以使用类似的东西(使用公开的freeipa demo( http://www.freeipa.org/page/Demo )):
$ kinit [email protected] $ kinit [email protected] Password for [email protected]: $ klist Ticket cache: KEYRING:persistent:1000:1000 Default principal: [email protected] Valid starting Expires Service principal 04/20/2016 18:30:56 04/21/2016 18:30:51 krbtgt/[email protected] renew until 04/27/2016 18:30:51 ]$ ldapsearch -LLL -Y GSSAPI -h ipa.demo1.freeipa.org -b cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org "(nsaccountlock=TRUE)" uid nsaccountlock SASL/GSSAPI authentication started SASL username: [email protected] SASL SSF: 56 SASL data security layer installed. [@lap0405 ~]$ klist Ticket cache: KEYRING:persistent:1000:1000 Default principal: [email protected] Valid starting Expires Service principal 04/20/2016 18:31:09 04/21/2016 18:30:51 ldap/[email protected] renew until 04/27/2016 18:30:51 04/20/2016 18:31:09 04/21/2016 18:30:51 ldap/ipa.demo1.freeipa.org@ renew until 04/27/2016 18:30:51 04/20/2016 18:30:56 04/21/2016 18:30:51 krbtgt/[email protected] renew until 04/27/2016 18:30:51
正如你看到的,我可以绑定使用Kerberos票,没有结果,因为没有locking的帐户那里。 但它成功了。
使用键盘并不复杂,但你需要首先检索(或为你检索一个)。 对于每个Kerberos供应商来说,这样做的方法各不相同(对于AD Kerberos,通常你可以使用ktpass.exe,在linux上与AD kerberos对话,你可以使用msktutil( https://fuhm.net/software/msktutil/ ),这是不标准的所有发行版都提供了软件,但是对于freeipa kerberos域中的linux主机,您可以使用标准MIT kerberos上的ipa-getkeytab( http://www.freeipa.org/page/V4/Keytab_Retrieval ) ktutil( http://web.mit.edu/kerberos/krb5-latest/doc/admin/admin_commands/ktutil.html )。
一旦你有了keytab,你需要使用kinit -k -t / path / to / keytab_file -c / path / to / kerberos / cache [email protected]
之后,您可以使用KRB5CCNAME环境variables,您需要将其指向保存密钥表caching并使用-c开关的path,然后在您的脚本中向ldap服务器进行身份validation。 很明显,门票会在几个小时后过期,所以你需要使用cron或者k5start来更新它。
你不想使用/etc/krb5.keytab文件; 那就是主机文件(当连接到Kerberos领域时,计算机也是用户)。 您将需要具有特定于您的需求的应用程序/用户密钥表。