Microsoft Entra 设备注册的工作原理 - Microsoft Entra ID

2798

设备注册是基于云的身份验证的先决条件。 通常,设备会建立 Microsoft Entra ID 或 Microsoft Entra 混合联接以完成设备注册。 本文提供了在托管环境和联合环境中建立 Microsoft Entra 和 Microsoft Entra 混合联接的工作原理的详细信息。 有关 Microsoft Entra 身份验证在这些设备上如何工作的详细信息,请参阅主刷新令牌一文。

托管环境中的 Microsoft Entra 联接

阶段

说明

A

Microsoft Entra 联接设备注册的最常见方式是在开箱即用体验 (OOBE) 期间,在云体验主机 (CXH) 应用程序中加载 Microsoft Entra 联接 Web 应用。 应用程序将 GET 请求发送到 Microsoft Entra OpenID 配置终结点,以发现授权终结点。 Microsoft Entra ID 以 JSON 文档形式向应用程序返回 OpenID 配置(其中包含授权终结点)。

B

应用程序为授权终结点生成登录请求,并收集用户凭据。

C

用户提供其用户主体名称 (UPN) 后,应用程序会将 GET 请求发送到 Microsoft Entra ID 来发现用户的相应领域信息。 此信息用于确定环境是托管环境还是联合环境。 Microsoft Entra ID 返回 JSON 对象格式的信息。 应用程序确定该环境是受控的(非共管环境)。此阶段的最后一步是让应用程序创建一个身份验证缓冲区,如果是在 OOBE 中,则暂时进行缓存,以在 OOBE 结束时自动登录。 应用程序将凭据 POST 到 Microsoft Entra ID,在那里进行验证。 Microsoft Entra ID 会返回一个包含声明的 ID 令牌。

D

应用程序查找移动设备管理 (MDM) 使用条款(mdm_tou_url 声明)。 如果存在,应用程序会从声明的值中检索使用条款,向用户显示内容,并等待用户接受使用条款。 此步骤是可选的,如果声明不存在或声明值为空,则跳过此步骤。

E

应用程序将设备注册发现请求发送到 Azure 设备注册服务 (DRS)。 Azure DRS 返回发现数据文档,这会返回特定于租户的 URI 以完成设备注册。

F

应用程序创建 TPM 绑定的(首选)RSA 2048 位密钥对,称为设备密钥 (dkpub/dkpriv)。 应用程序使用 dkpub 和公钥创建证书请求,然后使用 dkpriv 对证书请求进行签名。 接下来,应用程序从 TPM 的存储根密钥派生第二个密钥对。 此密钥是传输密钥 (tkpub/tkpriv)。

G

应用程序将设备注册请求发送到 Azure DRS,其中包括 ID 令牌、证书请求、tkpub 和证明数据。 Azure DRS 验证 ID 令牌,创建设备 ID,并基于包含的证书请求创建证书。 然后,Azure DRS 在 Microsoft Entra ID 中写入设备对象,并将设备 ID 和设备证书发送到客户端。

H

从 Azure DRS 接收到设备 ID 和设备证书后,设备注册完成。 设备 ID 将保存起来以供将来参考(可从 dsregcmd.exe /status 查看),设备证书安装在计算机的个人存储中。 完成设备注册后,此过程将继续进行 MDM 注册。

联合环境中的 Microsoft Entra 联接

阶段

说明

A

Microsoft Entra 联接设备注册的最常见方式是在开箱即用体验 (OOBE) 期间,在云体验主机 (CXH) 应用程序中加载 Microsoft Entra 联接 Web 应用。 应用程序将 GET 请求发送到 Microsoft Entra OpenID 配置终结点,以发现授权终结点。 Microsoft Entra ID 以 JSON 文档形式向应用程序返回 OpenID 配置(其中包含授权终结点)。

B

应用程序为授权终结点生成登录请求,并收集用户凭据。

C

用户提供其用户名(采用 UPN 格式)后,应用程序会将 GET 请求发送到 Microsoft Entra ID 来发现用户的相应领域信息。 此信息用于确定环境是托管环境还是联合环境。 Microsoft Entra ID 返回 JSON 对象格式的信息。 应用程序确定环境是联合环境。应用程序重定向到返回的 JSON 领域对象中的 AuthURL 值(本地 STS 登录页)。 应用程序通过 STS 网页收集凭据。

D

应用程序将凭据 POST 到本地 STS,这可能会需要额外的身份验证因素。 本地 STS 对用户进行身份验证并返回令牌。 应用程序将令牌发布到 Microsoft Entra ID 进行身份验证。 Microsoft Entra ID 验证令牌,并返回包含声明的 ID 令牌。

E

应用程序查找 MDM 使用条款(mdm_tou_url 声明)。 如果存在,应用程序会从声明的值中检索使用条款,向用户显示内容,并等待用户接受使用条款。 此步骤是可选的,如果声明不存在或声明值为空,则跳过此步骤。

F

应用程序将设备注册发现请求发送到 Azure 设备注册服务 (DRS)。 Azure DRS 返回发现数据文档,这会返回特定于租户的 URI 以完成设备注册。

G

应用程序创建 TPM 绑定的(首选)RSA 2048 位密钥对,称为设备密钥 (dkpub/dkpriv)。 应用程序使用 dkpub 和公钥创建证书请求,然后使用 dkpriv 对证书请求进行签名。 接下来,应用程序从 TPM 的存储根密钥派生第二个密钥对。 此密钥是传输密钥 (tkpub/tkpriv)。

H

应用程序将设备注册请求发送到 Azure DRS,其中包括 ID 令牌、证书请求、tkpub 和证明数据。 Azure DRS 验证 ID 令牌,创建设备 ID,并基于包含的证书请求创建证书。 然后,Azure DRS 在 Microsoft Entra ID 中写入设备对象,并将设备 ID 和设备证书发送到客户端。

I

从 Azure DRS 接收到设备 ID 和设备证书后,设备注册完成。 设备 ID 将保存起来以供将来参考(可从 dsregcmd.exe /status 查看),设备证书安装在计算机的个人存储中。 完成设备注册后,此过程将继续进行 MDM 注册。

托管环境中的 Microsoft Entra 混合联接

阶段

说明

A

用户使用域凭据登录到已联接域的 Windows 10 或更新的计算机。 此凭据可以是用户名和密码或智能卡身份验证。 用户登录触发“自动设备联接”任务。 “自动设备联接”任务在加入域时被触发,并且每小时重试一次。 它并不完全取决于用户登录。

B

任务使用 LDAP 协议查询 Active Directory 配置分区 (CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,CN=Configuration,DC=corp,DC=contoso,DC=com) 中服务连接点上的关键字属性。 关键字属性中返回的值用于确定设备注册是定向到 Azure 设备注册服务 (DRS) 还是定向到本地托管的企业设备注册服务。

C

对于托管环境,任务以自签名证书的形式创建一个初始身份验证凭据。 任务使用 LDAP 将证书写入 Active Directory 中计算机对象上的 userCertificate 属性。

D

在 Microsoft Entra ID 中创建一个表示包含 userCertificate 属性上的证书的计算机的设备对象之前,计算机无法向 Azure DRS 进行身份验证。 Microsoft Entra Connect 检测到属性更改。 在下一个同步周期,Microsoft Entra Connect 将 userCertificate、对象 GUID 和计算机 SID 发送到 Azure DRS。 Azure DRS 使用属性信息在 Microsoft Entra ID 中创建一个设备对象。

E

“自动设备联接”任务在每次用户登录时或每小时触发一次,并尝试使用 userCertificate 属性中公钥的相应私钥向 Microsoft Entra ID 对计算机进行身份验证。 Microsoft Entra 对计算机进行身份验证,并向计算机颁发 ID 令牌。

F

任务创建 TPM 绑定的(首选)RSA 2048 位密钥对,称为设备密钥 (dkpub/dkpriv)。 应用程序使用 dkpub 和公钥创建证书请求,然后使用 dkpriv 对证书请求进行签名。 接下来,应用程序从 TPM 的存储根密钥派生第二个密钥对。 此密钥是传输密钥 (tkpub/tkpriv)。

G

任务将设备注册请求发送到 Azure DRS,其中包括 ID 令牌、证书请求、tkpub 和证明数据。 Azure DRS 验证 ID 令牌,创建设备 ID,并基于包含的证书请求创建证书。 然后,Azure DRS 在 Microsoft Entra ID 中更新设备对象,并将设备 ID 和设备证书发送到客户端。

H

从 Azure DRS 接收到设备 ID 和设备证书后,设备注册完成。 设备 ID 将保存起来以供将来参考(可从 dsregcmd.exe /status 查看),设备证书安装在计算机的个人存储中。 完成设备注册后,任务将退出。

联合环境中的 Microsoft Entra 混合联接

阶段

说明

A

用户使用域凭据登录到已联接域的 Windows 10 或更新的计算机。 此凭据可以是用户名和密码或智能卡身份验证。 用户登录触发“自动设备联接”任务。 “自动设备联接”任务在加入域时被触发,并且每小时重试一次。 它并不完全取决于用户登录。

B

任务使用 LDAP 协议查询 Active Directory 配置分区 (CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,CN=Configuration,DC=corp,DC=contoso,DC=com) 中服务连接点上的关键字属性。 关键字属性中返回的值用于确定设备注册是定向到 Azure 设备注册服务 (DRS) 还是定向到本地托管的企业设备注册服务。

C

对于联合环境,计算机使用 Windows 集成身份验证对企业设备注册终结点进行身份验证。 企业设备注册服务创建并返回一个令牌,其中包括对象 GUID、计算机 SID 和已加入域的状态的声明。 任务将令牌和声明提交到 Microsoft Entra ID,在那里进行验证。 Microsoft Entra ID 向正在运行的任务返回一个 ID 令牌。

D

应用程序创建 TPM 绑定的(首选)RSA 2048 位密钥对,称为设备密钥 (dkpub/dkpriv)。 应用程序使用 dkpub 和公钥创建证书请求,然后使用 dkpriv 对证书请求进行签名。 接下来,应用程序从 TPM 的存储根密钥派生第二个密钥对。 此密钥是传输密钥 (tkpub/tkpriv)。

E

为了为本地联合应用程序提供 SSO,任务会从本地 STS 请求企业 PRT。 运行 Active Directory 联合身份验证服务角色的 Windows Server 2016 验证请求,并将其返回给正在运行的任务。

F

任务将设备注册请求发送到 Azure DRS,其中包括 ID 令牌、证书请求、tkpub 和证明数据。 Azure DRS 验证 ID 令牌,创建设备 ID,并基于包含的证书请求创建证书。 然后,Azure DRS 在 Microsoft Entra ID 中写入设备对象,并将设备 ID 和设备证书发送到客户端。 从 Azure DRS 接收到设备 ID 和设备证书后,设备注册完成。 设备 ID 将保存起来以供将来参考(可从 dsregcmd.exe /status 查看),设备证书安装在计算机的个人存储中。 完成设备注册后,任务将退出。

G

如果已启用 Microsoft Entra Connect 设备写回,Microsoft Entra Connect 会在下一个同步周期从 Microsoft Entra ID 请求更新(使用证书信任的混合部署需要设备写回)。 Microsoft Entra ID 将设备对象与匹配的同步计算机对象相关联。 Microsoft Entra Connect 接收包含对象 GUID 和计算机 SID 的设备对象,并将设备对象写入 Active Directory。

后续步骤

Microsoft Entra 联接设备

Microsoft Entra 注册设备

Microsoft Entra 混合联接设备

什么是主刷新令牌?

Microsoft Entra Connect:设备选项