我正在尝试在 Active Directory 客户端和服务上使用 GSS API 的示例凭据委托(delegate)程序。在使用 context.requestCredDeleg(true)
时,当我检查 context.getCredDelegState()
时,它会在上下文建立之前在客户端返回 true。但是在建立上下文之后,当我检查中间服务器端的凭据委托(delegate)状态时,它返回 false。
我已为该用户设置“信任此用户委派任何服务(仅限 Kerberos)”。 此外,Active Directory 管理中心用户属性中未选中“帐户敏感且无法委派”字段。同样的情况也适用于服务用户属性。我在同一台计算机上运行客户端和服务器,该计算机是 kerberos 域的一部分,对于该计算机属性,Active Directory 管理中心也允许委派。
我使用以下内容作为引用: 客户端-服务器程序来源:http://docs.oracle.com/javase/1.4.2/docs/guide/security/jgss/tutorials/BasicClientServer.html
凭证授权文档:http://docs.oracle.com/javase/1.4.2/docs/guide/security/jgss/tutorials/MoreToDo.html#DelCr
示例客户端服务器工作正常,只是我无法进行凭据委托(delegate)。
最佳答案
我找到了解决方案(希望它能帮助面临同样问题的人):
In krb5.ini file forwardable = true should be set in [libdefaults] section instead of [appdefaults].
关于active-directory - Kerberos 凭证委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14563244/