我们的活动目录控制器和域很少,我们的系统应该能够使用来自其他域的用户查询一个域。由于一个错误,我们没有在 java 1.60_00 中这样做:
目前我们的以下设置存在问题:我们正在尝试使用 D200.D1.W2K8.CORP.ME 的管理员用户连接到 QA.DOM,我们收到以下错误:“机制级别:无法创建凭据。(63 ) - 没有服务信用”。我们可以连接到 RESOURCE.W2K8.CORP.ME,如果我们使用 D1.W2K8.CORP.ME 的管理员,我们也可以连接到 QA.DOM。在调查了 pcap 捕获后,我认为 java 实现有一个关于传递信任到具有不同后缀的域的错误。
顺便说一句:我们使用 C 编写的基于 SMB 的包尝试了相同的场景,并且它可以工作。是否已知 JRE 错误(我搜索了 java 错误,但一无所获)?是否存在解决方法?
我们的活动目录设置:
QA.DOM<----ForestTrust-->D1.W2K8.CORP.ME<-----ForestTrust--->RESOURCE.W2K8.CORP.ME
----------------------------------------------^
-----------------------------------------------|
-----------------------------------------------|
-----------------------------------------------|
-----------------------------------------------^
--------------------------------------------tree(two way trust)
----------------------------------------D200.D1.W2K8.CORP.ME (child of D1.W2K8.CORP.ME).
和 krb 文件:
[libdefaults]
default_realm = D200.D1.W2K8.CORP.ME
default_keytab_name = FILE:/usr/local/ctera/portal.keytab
[realms]
D200.D1.W2K8.CORP.ME = {
kdc = D200.D1.W2K8.CORP.ME
}
D1.W2K8.CORP.ME = {
kdc = D1.W2K8.CORP.ME
}
RESOURCE.W2K8.CORP.ME = {
kdc = RESOURCE.W2K8.CORP.ME
}
QA.DOM = {
kdc = QA.DOM
}
[domain_realm]
.d200.d1.w2k8.corp.me = D200.D1.W2K8.CORP.ME
d200.d1.w2k8.corp.me = D200.D1.W2K8.CORP.ME
.d1.w2k8.corp.me = D1.W2K8.CORP.ME
d1.w2k8.corp.me = D1.W2K8.CORP.ME
.resource.w2k8.corp.me = RESOURCE.W2K8.CORP.ME
resource.w2k8.corp.me = RESOURCE.W2K8.CORP.ME
.qa.dom = QA.DOM
qa.dom = QA.DOM