D. *_*ler 4 kerberos windows-authentication klist
我安装Kerberos for Windows在新设置的 Windows 8.1 机器上。
我编辑了目录中的krb5.ini文件,C:\ProgramData\MIT\Kerberos5如下所示:
[libdefaults]
default_realm = HSHADOOPCLUSTER.DE
[realms]
HSHADOOPCLUSTER.DE = {
admin_server = had-job.server.de
kdc = had-job.server.de
}
Run Code Online (Sandbox Code Playgroud)
重新启动后,我kinit -kt daniel.keytab daniel通过控制台对 Realm进行了身份验证。还通过用户和密码获取票证Kerberos Ticket Manager似乎工作正常,因为票证显示在 UI 中。
我想知道的是,当我调用 a 时,klist我会得到一个空列表,它说的是cached tickets: 0:
这对我来说似乎不正常,因为我的 Ubuntu 计算机klist在kinit.
我究竟做错了什么?还有一些配置要做吗?有时我读到一个ksetup工具,但我不知道这里哪些设置是必要的,哪些不是......
================================================== ==========
我设置后
[libdefaults]
...
default_ccache_name = FILE:C:/ProgramData/Kerberos/krb5cc_%{uid}
Run Code Online (Sandbox Code Playgroud)
在 my 中krb5.conf,kinit通过控制台和 Kerberos 票证管理器的命令在指定路径中创建一个文件。到目前为止,一切看起来都很好。
但是:该kinit命令会创建文件名非常不同(长与短)的票证,具体取决于我是否以“admin”(短名称)或不以(长名称)身份运行控制台,请参阅下面的屏幕截图。Kerberos 票证管理器仅显示其中一张票证:
该klist命令仍然不显示缓存的票证,无论控制台是否以管理员身份打开。
在MIT Kerberos文档指出...
MIT Kerberos 库支持多种凭证缓存。并非所有平台都支持所有...
- FILE缓存是最简单和最便携的。一种简单的平面文件格式用于存储一个又一个凭证。这是默认...
- API仅在 Windows 上实现。它与在内存中保存凭据的服务器进程通信...
默认凭据缓存名称由...确定- 在
KRB5CCNAME环境变量...- [libdefaults] 中的
default_ccache_name配置文件变量- 硬编码的默认值,
DEFCCNAME
但是 AFAIK,在 Windows 上,硬编码的默认缓存是API:,这就是您可以使用 UI 管理的内容。kinit默认情况下也使用该协议。
我个人从来没有可以使用klist使用该协议,即使有“标准”语法,即要么
klist -c API:
或
set KRB5CCNAME=API:
klist
在另一方面,如果你点KRB5CCNAME的FILE:*****话可以kinit再klist车票; 但它不会显示在 UI 中,也不适用于 Web 浏览器等。
如果klist即使在设置环境变量KRB5CCNAME(即set KRB5CCNAME=C:\kerberos_cache\cache\krb5cache,它是一个文件而不是目录。您必须手动创建父目录)之后,命令仍未显示密钥,那么klist您运行的命令很可能不是来自 MIT Kerberos的Windows安装中C:\Program Files\MIT\Kerberos\bin而是klist从Windows本身的命令C:\Windows\system32。
which klist如果你有cygwin工具,你可以通过运行来检查。在这种情况下,最简单的办法就是复制klist.exe到MIT Kerberos安装的bin目录作为一个新的文件,即klist_mit.exe。如果您运行klist_mit命令,应显示缓存条目。