突然得到LDAP推荐



我有两个领域,一个是生产领域,另一个是开发领域。我的开发域突然开始给出错误DirectoryServicesCOMException: A referral was returned from the server.

这种情况今天才开始发生。我昨天确认它有效。域控制器或我的应用程序未发现任何更改。

当我的开发服务器对生产用户配置文件执行LDAP搜索时。我正在使用一些相当标准的LDAP查询代码:

private IUserDetails queryUserBySID(string sid)
{
DirectoryEntry de = new DirectoryEntry(domainLdap); // "DC=production,DC=local"

var ds = new DirectorySearcher(de);
ds.Filter = $"(&(objectCategory=User)(objectClass=person)(objectSid={sid}))";

var result = ds.FindOne(); // <-- referral error
//...
}

然而,这是有效的(即使在使用IIS AppPool凭据时(:

PS C:> Get-ADUser -Server productiondc -Identity testuser

我验证了两个域相互信任。我的任何一个域可能发生了什么变化导致了这种情况?

编辑1

这个问题解决了1-2天,然后又出现了。

检查ExtendedErrorMessage给出

0000202B: RefErr: DSID-03100835, data 0, 1 access points
ref 1: 'production.local'

快速谷歌显示运行dcdiag

编辑2

我认为这是dcdiag:的一个相关错误

An error event occurred.  EventID: 0xC0000010
Time Generated: 02/22/2022   22:22:22
Event String:
While processing a TGS request for the target server <user>/SERVER, the account DevMachine$@DEVELOPMENT.LOCAL did not have a suitable key for generating a Kerberos ticket (the missing key has an ID of 8). The requested etypes were 18  17. The accounts available etypes were 18  17  23  -133  -128  24  -135. Changing or resetting the password of PRODUCTION.LOCAL will generate a proper key.

推荐意味着"我没有你想要的信息,但我知道你在哪里可以得到;所以你连接的服务器和数据所在的位置不匹配。我不能告诉你发生了什么变化,但我可以告诉你如何获得更多信息。

抛出异常后,调用de.Options.GetCurrentServerName()查看在哪个服务器上执行了搜索

然后检查异常的ExtendedErrorMessage属性,看看它是否告诉您它指的是哪个服务器

要绕过异常并自动跟踪引用,可以使用DirectorySearcher:的ReferralChasing属性

ds.ReferralChasing =  ReferralChasingOption.All;

最新更新