1.客户端查找DC过程
1)用户在加入域的客户端计算机上登录的时候,计算机会向本机的netLogon 服务发送RPC请求,请求包括域名,站点,计算机名称等信息。
2)本地客户端上的netlogon服务使用domainlocator服务调用DsGetDcName接口,向其传递以下列表中的参数。
列表中列出的是DsGetDcName API的部分参数,对应着DNS服务器相应区域中的PDC、GC、KDC、LDAP server记录。Netlogon会调用DsGetDcName API收集所有可能会需要的信息,比如收集PDC信息是因为当找本地DC做身份验证失败时,就会需要找PDC做身份验证。收集GC信息是因为GC上存储着林中所有对象的一部分属性,比如用户邮箱地址。
登录过程是需要查找Kerberos记录来找到提供Kerberos验证服务的DC进行验证。域用户登录过程中,Kerberos验证程序向KDC发送用户信息和验证服务请求后,就需要通过kerberos记录来找到Kerberos Key Distribution Center服务进行验证。
除了在查找PDC的情况下,DsGetDcName都会使用site参数。如果使用site参数的时候,请求得不到DNS服务器的回应,那么DsGetDcName会使用不带site参数再次请求。举个例子,在使用DS_KDC_REQUIRED 参数并且添加了site参数的时候,如果请求得不到Dns服务器的响应,那么DsGetDcNa