【问题标题】:Change the kerberos ticket cache location更改 kerberos 票证缓存位置
【发布时间】:2023-03-19 15:25:01
【问题描述】:

我在 Windows 7 上遇到了 Kerberos 问题。

我有什么:

  • 我使用的是 Windows 7
  • 在 system32 下,我有 klist(来自 MS Corp)但我没有 kinit
  • 我有来自 jdk8 的 klist 和 kinit,但未包含在 PATH 环境变量中
  • 我在 Hortonworks 32 位 ODBC 驱动程序 2.01 之上有一个 ODBC 数据源,并且该数据源依赖于 kerberos 身份验证

我观察到,当我当前的目录是 jdk8/bin 时:

  • kinit 启用创建票证,我得到:新票证存储在缓存文件 C:\Users[login]\krb5cc_[login]
  • klist 正确检测到该缓存中的所有票证

当我当前的目录不是 jdk8/bin 时,我观察到的情况:

  • klist (system32's) 没有从上面的缓存文件中读取

我想做的事:

  • 有点:告诉 ODBC 驱动程序读取 Java 的 Krb 缓存而不是系统的 Krb 缓存(此外,它位于哪里???)

我已经尝试过的:

  • 添加一个指向缓存文件的环境变量 KRB5CCNAME,但事实并非如此。

有什么解决办法吗?

谢谢

【问题讨论】:

  • Windows 确实 not 将 Windows 会话使用的票证缓存在 file 中——并且 Windows klist 基于 SSPI,它 是否像 Java 那样遵循 GSSAPI 标准。检查您的 ODBC 驱动程序以查看它是否支持 GSSAPI (例如,使用 Cloudera 驱动程序,不要启用“仅 SSPI”复选框)
  • 仅供参考,最新版本的 MIT Kerberos (GSSAPI) 有一个声称能够访问 Microsoft 缓存的 Windows 版本,昵称为 MSLSA web.mit.edu/kerberos/krb5-latest/doc/basic/ccache_def.html >> 但我不确定 Java 是否支持。 ..
  • 谢谢 Samson Scharfrichter。所以 Windows 使用 SSPI 并且没有缓存文件,而 Java 使用 GSSAPI。没有解决 ODBC 问题,但得到了我的答案。谢谢。

标签: windows hive odbc kerberos


【解决方案1】:

无法将 Hortonworks ODBC 驱动程序 2.0 配置为使用 GSSAPI。换句话说,它不能使用通过 kinit 创建的 Kerberos 票证。

【讨论】:

  • 不开玩笑??这将是一个严重的回归,因为我早在 2015 年就使用了该功能(使用 MIT Kerberos for Windows 作为 GSSAPI 票证管理器),以及 ODBC 驱动程序的当前文档( V2.1.7) 有几页关于“为 Windows 配置 Kerberos 身份验证”。
猜你喜欢
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
相关资源
最近更新 更多