## 1. 后台计划任务 设备通过后台的运行的 **任务计划程序(Task Scheduler)** > Task Schduler Library > Microsoft > Windows > Workplace Join > **Automatic-Device Join** 任务来寻找 **服务连接点(Service Connection Point - SCP)** >此计划任务的默认触发器规则为,任何用户登陆时都会触发一次(锁屏再次登录无效)。 ![auto_device_join](/static/images/haadj_man/auto_device_join.png) --- ## 2. 寻找服务器连接点 ### 2.1 **注册表路径** 中的 SCP 当上述计划任务启动后,设备尝试从注册表中检索 **租户 ID** 和已在 **Azure AD** 上 验证的域名 。 **注册表路径**: ```cpp [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ\AAD\] ``` 上述注册表路径中的两个 String Value(REG\_SZ)的数据(Value)分别为 **TenantId** 以及 **TenantName** >如果我们在 Azure AD 上没有做过自定义域名的验证的话,我们默认使用 \*.onmicrosoft.com 格式的 TenantName >但如果我们有自定义域名的话,对于联合域(Federated Domain)请使用联合域的域名。托管域(Managed Domain)请使用对应的托管域的域名,或者初始的 \*.onmicrosoft.com 域名。 ![scp_registry](/static/images/haadj_man/scp_registry.png) **租户ID(TenantId):** ![tenant_id](/static/images/haadj_man/tenant_id.png) **已在 Azure AD 上验证的域名(TenantName):** ![aad_domain](/static/images/haadj_man/aad_domain.png) ### 2.2 本地AD **配置分区** 中的 SCP 如果以上尝试失败,设备将与本地AD **配置分区(Configuration Partition)**通信,从**服务连接点(SCP)**获取租户信息(使用 LDAP Query/Response)。您也可以使用 [设备注册疑难解答 PowerShell 工具](https://docs.microsoft.com/zh-cn/samples/azure-samples/dsregtool/dsregtool/) 获取 SCP 信息。 #### **2.2.1 通过使用 ADSI 编辑器(ADSI Edit)中的 配置分区 查看/编辑 SCP** 首先,打开 **ADSI Edit** > 展开 操作(Action)> 连接到...(Connect to...)(此操作的目的为选择 LDAP 路径) ![](/static/images/haadj_man/adsi_connect.png) 在 连接设置的窗口中 > 连接点 > 选择一个已知命名上下文 > 配置(Configuration) ![](/static/images/haadj_man/adsi_configuration.png) 展开左侧 配置 > CN=Configuration,DC=domain name,DC=domain suffix > CN=Services > CN=Device Registration Configuration > 右击 **CN=62a0ff2e-97b9-4513-943f-0d221bd30080 >** 属性 ![](/static/images/haadj_man/adsi_drs_properties.png) 在 **属性编辑器** 选项卡中,找到名为 **keywords** 的属性,双击打开(这就是我们配置在本地AD中的 SCP,我们也可以通过编辑 **azureADId** [TenantId] 以及 **azureADName** [TenantName] 来修改 SCP 的配置)。 ![](/static/images/haadj_man/adsi_drs_keywords.png) --- ## 3. 设备终结点通信以及证书签发 ### 3.1 设备终结点通信 设备将尝试在 **系统上下文(System Context)** 与 **Microsoft 资源终结点 (EndPoints)** 进行通信。 您可以使用 [测试设备注册连接 PowerShell 脚本](https://docs.microsoft.com/zh-cn/samples/azure-samples/testdeviceregconnectivity/testdeviceregconnectivity/) 验证设备是否可以访问系统帐户下的 Microsoft 终结点。 > DRS服务相关的 **Microsoft 终结点** 如下: ```md https://enterpriseregistration.windows.net https://login.microsoftonline.com https://device.login.microsoftonline.com ``` > 对于联合域,还要额外确保 **[联合域(e.g. sts.rayakicorp.com)](https://sts.rayakicorp.com)** 的验证服务畅通: ### 3.1 设备自签证书签发 当设备找寻完毕 SCP,并且测试访问 Microsoft资源成功后,Azure AD DRS 服务会给设备签发一张 **设备证书** (储存在本地计算机账户下的 personal 目录里,有效期10年)。 ![device_cert](/static/images/haadj_man/device_cert.png) >设备会存储这张证书的 **私钥**(拥有TPM芯片的设备,会将私钥存储在TPM中) ![device_cert_private](/static/images/haadj_man/device_cert_private.png) 设备证书的 **公钥证书** 会通过 LDAP 协议,从设备写回本地AD,存储在设备自身的属性 ***userCertificate*** 中,并且通过 AAD Connect 同步至 Azure AD 的 ***cloudUserCertificate*** ![device_metaverse](/static/images/haadj_man/device_metaverse.png) >[点我查看 *userCertificate* 属性里的这张公钥证书](https://blog.rayakicorp.com/posts/13/) --- ## 4. 混合设备注册完毕 之后设备使用生成的 **设备证书** 针对 **Azure AD** 或 **联合服务(例如 ADFS)** 进行身份验证。 设备注册过程完成。