我正在写一个pGina插件,以便在登录时从我们的KDC获得AFS令牌和Kerberos TGT,同时我注意到kinit的一个‘功能’是它不会让你提供任何输入,除非它来自键盘,我的想法是只重定向标准输入……
有人建议对主体使用密钥表文件,这似乎非常简单,直到我意识到我只在linux上使用kutil,并且在Windows版本的ktpass.exe上遇到了困难。我已经反复尝试使用大量参数组合来创建keytab,但到目前为止完全没有成功,我发出的当前命令是:
ktpass /out key.tab /mapuser user$@MERP.EDU /princ user.merp.edu@MERP.EDU /crypto RC4-HMAC-NT /ptype KRB5_NT_PRINCIPAL /pass mahpasswordlol /target MERP.EDU
不幸的是,所有这些输出都是
Using legacy password setting method
FAIL: ldap_bind_s failed: 0x31
根据我的研究,这是一个身份验证/加密问题,我已经尝试过其他DES设置,但这似乎也不起作用……有没有人有经验/想法知道这是如何工作的?
发布于 2012-08-22 10:45:35
ktpass.exe确实很糟糕;我不使用它。相反,只需在Unix上使用ktutil使用密码独立创建匹配的密钥表,例如:
$ ktutil
ktutil: addent -password -p foo@BAR -k 1 -e aes128-cts-hmac-sha1-96
Password for foo@BAR:
ktutil: l
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 1 foo@BAR
ktutil: wkt /tmp/zz
$ klist -ek /tmp/zz
Keytab name: WRFILE:/tmp/zz
KVNO Principal
---- --------------------------------------------------------------------------
1 foo@BAR (aes128-cts-hmac-sha1-96)LDAP绑定错误表明ktpass无法对域控制器进行身份验证;发生这种情况时,您是否登录到域帐户?它必须是一个域帐户,而不是一个本地帐户(而且它必须被授权才能对AD进行必要的更改,尽管缺少这一点将导致权限错误而不是绑定)。
FWIW,我们对此采取了不同的方法:我们在Unix和AD领域之间使用跨域信任。然后,用户在登录时获得的AD TGT也足以获取Unix领域中的服务的凭据;例如,我可以使用PuTTY通过SSH进入Unix主机,使用Firefox/Chrome/IE对Unix web服务(Apache/mod_auth_kerb)进行身份验证,等等。
https://stackoverflow.com/questions/10941325
复制相似问题