【发布时间】:2012-12-18 11:19:19
【问题描述】:
我正在使用 kerberos 身份验证登录 ActiveDirectory。我正在使用 GSSAPI。
目前,我正在使用 krb5.conf 文件,该文件描述了领域、加密算法等,并且身份验证工作正常。
我想避免使用这个文件。我可以在不使用此文件的情况下以编程方式配置 kerberos 吗?
谢谢。
【问题讨论】:
标签: java security kerberos ntlm gssapi
我正在使用 kerberos 身份验证登录 ActiveDirectory。我正在使用 GSSAPI。
目前,我正在使用 krb5.conf 文件,该文件描述了领域、加密算法等,并且身份验证工作正常。
我想避免使用这个文件。我可以在不使用此文件的情况下以编程方式配置 kerberos 吗?
谢谢。
【问题讨论】:
标签: java security kerberos ntlm gssapi
您可以尝试只配置两个系统属性:
java.security.krb5.kdc
java.security.krb5.realm
请注意,如果您使用 JDK 对 Kerberos 的本机支持,则无法以编程方式配置除此之外的任何内容。
如果您正在为 Windows 编写代码,我强烈建议您使用 WAFFLE 来实现无缝单点登录。不过,它没有 GSS-API 适配器。我自己写了,但这只是因为系统的其余部分已经依赖它了。您可以轻松跳过 GSS-API 并直接针对 WAFFLE 进行编程。
【讨论】:
如果您只想避免使用系统范围的 krb5.conf,您可以在程序中使用任何名称(例如,在您的主目录)中创建它,并通过设置 Java 系统属性 java.security 来使用它.krb5.conf 到它的完整路径。我相信这必须在您调用任何与 Kerberos 相关的代码之前完成。
【讨论】:
[来自 MIT 官方文档: https://web.mit.edu/kerberos/krb5-latest/doc/admin/index.html]
似乎我们可能没有官方的方法来配置没有 krb5.conf 的 Kerberos,即使忽略 keytabs 的某些部分(它们被定义为在 TGS 状态下自动获取,但有时事情正在连接)会导致致命错误。
【讨论】: