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