Microsoft Entra身份验证工作流

适用于: Configuration Manager(current branch)

本文是 windows 设备上Configuration Manager客户端安装和注册过程的技术参考,Microsoft Entra ID 联接。 它详细介绍了设备身份验证的工作流过程。

注意

Windows 客户端在加入Microsoft Entra租户时,会获得工作区加入 (WPJ) 证书。 如果未找到证书,则Configuration Manager客户端无法请求Microsoft Entra令牌。 如果没有令牌,客户端无法使用Configuration Manager安全令牌服务 (CCM_STS) 信道与Configuration Manager站点系统进行Microsoft Entra身份验证。

客户端安装

在此工作流示例中,你使用以下 ccmsetup 命令行属性通过 Internet 在 Windows 设备上安装了 Configuration Manager 客户端:

CCMHOSTNAME="CMG.CLOUDAPP.NET/CCM_Proxy_MutualAuth/72186325152220500" SMSSITECODE="MEM"

使用Microsoft Entra身份验证的 CcmSetup 的工作流图

1. Microsoft Entra来自 ccmsetup 的信息请求

从 Internet 安装的客户端需要特定的命令行属性才能使用Microsoft Entra身份验证。 可以在 Internet ccmsetup 的命令行中包含这些属性,但不是必需的。 不使用 Microsoft Entra 属性时,ccmsetup AADCLIENTAPPID 会从云管理网关请求 和 AADRESOURCEURI 属性, (CMG) 。 它使用设备的 Microsoft Entra TenantID 作为引用。 如果尚未在 Configuration Manager 中载入客户端的 TenantID,则 CMG 不会为 ccmsetup 提供所需的属性以继续安装客户端。

以下条目记录在客户端的 ccmsetup.log 中:

Getting AAD info from CMG 'CMG.CLOUDAPP.NET'
SMS CCM 5.0: Host=CMG.CLOUDAPP.NET, Path=/CCM_Proxy_ServerAuth/AADAuthInfo?TenantID=9aaf466a-3f40-4468-b3cd-f0010f21f05a, Port=443, Protocol=https, CcmTokenAuth=0, Flags=0x1304, Options=0xe0
Created connection on port 443
Enabled SSL revocation check.

重要

在 ccmsetup 期间,设备必须验证 CMG 服务器身份验证证书。 CMG 服务器身份验证证书的根证书颁发机构 (CA) 证书需要在客户端上可用,以便进行链验证。 如果使用 PKI,则当根 CA 未在 Internet 上发布时,请将根 CA 证书添加到设备的根 CA 存储。

如果根 CA 证书吊销列表 (CRL) 未在 Internet 上发布,请在 ccmsetup 命令行中添加 /nocrlcheck 参数。

2. Microsoft Entra令牌请求

在已加入 Windows Azure AD 域的设备上,ccmsetup 使用 Microsoft Entra 属性请求调用 ADALOperation 提供程序的Microsoft Entra令牌。 以下条目记录在客户端的 ccmsetup.log 中:

Getting AAD (device) token with: ClientId = 0b7c8ab3-9ea1-4ffa-b2b9-8ffdd944bd8b, ResourceUrl = https://ConfigMgrService, AccountId = https://login.microsoftonline.com/common/oauth2/token

如果设备令牌请求失败,ccmsetup 会回退以尝试请求Microsoft Entra用户令牌。 如果设备无法获取Microsoft Entra设备或用户令牌,则 ccmsetup 不会继续。

注意

如果设备具有有效的 PKI 客户端身份验证证书,则 ccmsetup 始终首选证书。 在这种情况下,客户端将安装为 PKI 客户端,并且不使用Microsoft Entra身份验证。

WAM token request failed. Status 5, Details 'AAD WAM extension error'
Failed to get AAD token..
Unknown error (Error: D0090016; Source: Unknown)
Failed to get AAD token for 'S-1-5-18' from WAM API. Error 0xd0090016
Falling back to get user 'S-1-5-21-1527250992-855612568-2252598708-1604' token for system...
Getting AAD (user) token with: ClientId = 0b7c8ab3-9ea1-4ffa-b2b9-8ffdd944bd8, ResourceUrl = https://ConfigMgrService, AccountId = 149FC29A-ECE3-123-A3C1-123456F035A6E
Retrieved AAD token for AAD user 'e8838041-db7a-42d5-b9ae-78813910e4cc'

3. Configuration Manager客户端令牌请求

客户端使用 Microsoft Entra 令牌来请求Configuration Manager客户端 (CCM) 令牌。 ccmsetup 与站点之间的操作通信使用 CCM 令牌作为授权令牌 (CcmTokenAuth=1) 。

3.1 客户端向 CMG 发送 CCM 令牌请求

以下条目记录在客户端的 ccmsetup.log 中:

Getting CCM Token from STS server 'cmg.cloudapp.net/CCM_PROXY_MutualAuth/72186325152220500'
Getting CCM Token from https://cmg.cloudapp.net/CCM_PROXY_MutualAuth/72186325152220500/CCM_STS

3.2 CMG 转发到 CMG 连接点

以下条目记录在 CMG VM 实例上的 CMGService.log 中。

RequestUri: /CCM_PROXY_SERVERAUTH/72057594037937981/CCM_STS  RequestCount: 1  RequestSize: 1974 Bytes  ResponseCount: 1  ResponseSize: 1566 Bytes  AverageElapsedTime: 218 ms~~  $$<CMGService><06-24-2020 15:31:46.376+00><thread=4992 (0x1380)>

提示

Configuration Manager每隔五分钟将 CMGService.log 同步到站点服务器日志文件夹作为 CMG-<CMGname>-ProxyService_IN_<%>-CMGService.log

3.3 CMG 连接点将 CMG 客户端请求转换为管理点客户端请求

以下条目记录在 SMS_CLOUD_PROXYCONNECTOR.log 中, (详细模式) 承载 CMG 连接点角色的站点系统:

SMS_CLOUD_PROXYCONNECTOR    Switched to internal URL. Replaced 'https://CMG.CLOUDAPP.NET/CCM_Proxy_MutualAuth/72186325152220500/CCM_STS' in   'https://CMG.CLOUDAPP.NET/CCM_Proxy_MutualAuth/72186325152220500/CCM_STS' with 'https://MP.MYCORP.COM/CCM_STS' and got 'https:///MP.MYCORP.COM/CCM_STS~~

3.4 管理点验证站点数据库中的用户令牌

以下条目记录在托管处理客户端请求的管理点的站点系统的 CCM_STS.log 中:

ProcessRequest - Start
Incoming request URL: https://MP.MYCORP.COM/CCM_STS
Validated AAD token. TokenType: UDA TenantId: 2ca9a796-a1a6-43ec-88f1-5935b32155c5 UserId: e8838041-db7a-42d5-b9ae-78813910e4cc DeviceId: 8d2b4ff9-0172-4998-9851-b5324303385f OnPrem_UserSid: S-1-5-21-1527250992-855612568-2252598708-1604 OnPrem_DeviceSid:  
TokenType is UDA
Created SCCM token, token type: UDA, hierarchyId: 8ed3174b-e814-41b5-b51c-fb368f0d4003, userId: 23bbbba2-702e-4db4-8fd9-3b4fe3a5175d, deviceId: GUID:13E80CEF-5698-4C63-9ED6-E58FBFF78C38
Issued token
Return token to client

4. 内容位置请求

客户端获取 CCM 令牌后,会缓存并使用它来请求 ccmsetup.cab 的站点信息和内容位置。 设备下载客户端内容后,会开始安装。 以下条目记录在客户端的 ccmsetup.log 中:

Cached encrypted token for 'S-1-5-18'. Will expire at '06/25/2020 08:29:35'
ccmsetup: Host=CMG.cloudapp.net, Path=/CCM_Proxy_ServerAuth7981/ccm_system_tokenauth/request, Port=443, Protocol=https, CcmTokenAuth=1, Flags=0x4100, Options=0xe0
Created connection on port 443
Sending location request to 'cmg.cloudapp.net/CCM_PROXY_MutualAuth/72186325152220500' with payload '< Request >
Appending CCM Token to the header.
Received message '<SiteInfoReply SchemaVersion="1.00">  < reply > </SiteInfoReply>'
     ...
Checking the URL 'https://CMG.cloudapp.net/CCM_PROXY_MutualAuth/72186325152220500/CCM_Client/ccmsetup.cab
ccmsetup: Host=CMG.cloudapp.net, Path=/CCM_Proxy_ServerAuth/72057594037937995/CCM_Client
Appending CCM Token to the header.
Found a valid online MP 'https://CMG.cloudapp.net/CCM_PROXY_MutualAuth/72186325152220500
Searching for DP locations from MP(s)...
CCMSETUP bootstrap from Internet: 1
Sending message body '<ContentLocationRequest SchemaVersion="1.00"  BGRVersion="1"> ...
The location 'https://CMG.cloudapp.net/downloadrestservice.svc/getcontentxmlsecure?pid=CS100001&cid=CS100001
     ...
Installing version 5.00.8968.1000 of the client with product code {66653948-0717-4D50-B0B9-ED66FDED2DDB}
Running installation package
Package:     C:\WINDOWS\ccmsetup\{E6F27809-FF66-4BAA-B0FB-E4A154A6A388}\client.msi

注意

如果客户端从已启用内容的 CMG 中找到内容,则 ccmsetup 将从云存储下载内容。 如果最新的客户端版本在云上不可用,它将通过 CMG 请求从管理点下载内容。

客户端注册

使用Microsoft Entra身份验证进行客户端注册的工作流图

1. Configuration Manager客户端请求注册

ccmsetup 成功安装 Configuration Manager 客户端后,将初始化注册。 以下条目记录在 客户端的 ClientIDManagerStartup.log 中:

AADJoinStatusTask: Client hasn't been registered yet.
RegEndPoint: Event notification: CCM_RemoteClient_Reassigned
RegEndPoint: Received notification for site assignment change from '<none>' to 'MEM'.
     ...
[RegTask] - Starting registration, attempt 1.
[RegTask] - Client is not registered. Sending registration request for GUID:C66EE0FD-08E7-4B38-B282-7E6954B71139 ...
Registering client using AAD auth.

2. Configuration Manager请求Microsoft Entra令牌注册客户端

客户端使用Microsoft Entra身份验证请求新的Microsoft Entra令牌进行注册。 它更喜欢设备令牌,但如果它不可用,客户端会回退以请求Microsoft Entra用户令牌。 以下条目记录在客户端的 ADALOperationProvider.log 中:

Getting AAD (user) token with: ClientId = 0b7c8ab3-9ea1-4ffa-b2b9-8ffdd944bd8, ResourceUrl = https://ConfigMgrService, AccountId = 9756a359-f76a-47d5-8662-9a837012fc35
Retrieved AAD token for AAD user 'e8838041-db7a-42d5-b9ae-78813910e4cc'

3. 注册请求

管理点上的注册组件处理客户端注册过程。 客户端将注册消息发送到 MP_ClientRegistration 终结点。

3.1 CMG 将客户端注册请求转发到管理点

以下条目记录在托管处理客户端请求的管理点的站点系统的 MP_RegistrationManager.log 中:

Registering device using AAD auth: DeviceId='8d2b4ff9-0172-4998-9851-b5324303385f ', TenantId='c8c82542-203c-4df9-9d86-cdd4dae67e0a'
Processing Registration request from Client 'GUID:C66EE0FD-08E7-4B38-B282-7E6954B71139'

3.2 注册Configuration Manager客户端

如果注册成功,客户端会收到一条确认消息,指示注册为“审批 3”,用于Microsoft Entra基于 ID 的注册。 以下条目记录在 客户端的 ClientIDManagerStartup.log 中:

[RegTask] - Client is registered. Server assigned ClientID is GUID:C66EE0FD-08E7-4B38-B282-7E6954B71139. Approval status 3

4. Configuration Manager客户端令牌请求

服务器确认客户端注册后,客户端将处理答复消息。 然后,客户端请求并缓存新的 CCM 令牌。 以下条目记录在 客户端的 ClientIDManagerStartup.log 中:

Getting CCM Token from STS server 'MP.MYCORP.COM'
Getting CCM Token from https://MP.MYCORP.COM/CCM_STS
     ...
Cached encrypted token for 'S-1-5-18'. Will expire at '08/12/2020 18:55:40'

4.1 CMG 获取CCM_Token请求并将其转发到 CMG 连接点

以下条目记录在 CMG VM 的 CMGService.log 中,以及托管 CMG 连接点角色的站点系统:

RequestUri: /CCM_PROXY_SERVERAUTH/72057594037937981/CCM_STS  RequestCount: 769  RequestSize: 1081595 Bytes  ResponseCount: 769     ResponseSize: 36143 Bytes  AverageElapsedTime: 3945 ms

4.2 CMG 连接点将 CMG 客户端请求转换为管理点客户端请求

以下条目记录在托管 CMG 连接点角色的站点系统的 SMS_CLOUD_PROXYCONNECTOR.log 中:

MessageID: 3087bd34-b82c-4950-b972-e82bb0fb8385 RequestURI: https://MP.MYCORP.COM/CCM_STS EndpointName: CCM_STS ResponseHeader: HTTP/1.1 200 OK ~~ ResponseBodySize: 0 ElapsedTime: 2 ms

4.3 管理点验证站点数据库中的用户令牌

以下条目记录在托管处理客户端请求的管理点的站点系统的 CCM_STS.log 中:

ProcessRequest - Start
Incoming request URL: https://MP.MYCORP.COM/CCM_STS
Validated AAD token. TokenType: UDA TenantId: 2ca9a796-a1a6-43ec-88f1-5935b32155c5 UserId: e8838041-db7a-42d5-b9ae-78813910e4cc DeviceId: 8d2b4ff9-0172-4998-9851-b5324303385f OnPrem_UserSid: S-1-5-21-1527250992-855612568-2252598708-1604 OnPrem_DeviceSid:  
TokenType is UDA
Created SCCM token, token type: UDA, hierarchyId: 8ed3174b-e814-41b5-b51c-fb368f0d4003, userId: 23bbbba2-702e-4db4-8fd9-3b4fe3a5175d, deviceId: GUID:13E80CEF-5698-4C63-9ED6-E58FBFF78C38
Issued token
Return token to client

服务器将 CCM 令牌返回给客户端,以便进行其余的客户端到站点通信。

注意

在客户端注册期间,证书验证始终运行。 即使使用 Microsoft Entra 身份验证方法来注册客户端,也会发生此过程。 此行为是回退选项,以防Microsoft Entra身份验证失败。

CCM 令牌续订

CCM 令牌的生存期为 8 小时。 当客户端检测到 CCM 令牌已过期或即将过期时,它会发送新的 CCM 令牌请求。 CcmMessaging 组件处理此续订过程。 以下条目记录在客户端的 CcmMessaging.log 中:

Sending remote sync message '{BD03DEED-D09A-4E63-ADAD-596376FFB0DA}' to host 'CMG.CLOUDAPP.NET/CCM_Proxy_MutualAuth/72186325152220500' endpoint 'MP_PolicyManager'. Flags 0x280, sender account S-1-5-21-1721254763-462695806-1538882281-3289177
    ...
CCM Token for 'S-1-5-8-1721254763-462695806-1538882281-3289177' (12/23/2019 21:47:24) is already expired or close to expire
Getting CCM Token from https://CMG.CLOUDAPP.NET/CCM_Proxy_ServerAuth/72186325152220500/CCM_STS
Cached encrypted token for 'S-1-5-21-1721254763-462695806-1538882281-3289177'. Will expire at '01/10/2020 17:14:54'
    ...
ccmhttp: Host=CMG.CLOUDAPP.NET, Path=/CCM_Proxy_ServerAuth/72186325152220500/ccm_system_tokenauth/request, Port=443, Protocol=https, CcmTokenAuth=1, Flags=0x4200, Options=0x1e0
Target URL scheme is HTTPS: https://CMG.CLOUDAPP.NET/CCM_Proxy_ServerAuth/72186325152220500/ccm_system_tokenauth/request
Appending CCM Token to the header.
     ...
Message '{BD03DEED-D09A-4E63-ADAD-596376FFB0DA}' got reply message '{36EE3A78-8F6E-425F-BF5C-8460E8E56C33}' to endpoint 'dummy'

常见问题

  • 根 CA 不存在:客户端需要根 CA 证书来验证 CMG 服务器身份验证证书。

  • 已启用 CRL 检查:在 Internet 上发布 CRL。 作为替代方法,请使用 /NoCRLCheck ccmsetup 的参数。 还可以禁用以下选项:客户端检查站点系统的 CRL) (证书吊销列表。 在网站属性的“ 通信安全 ”选项卡上找到此设置。

  • 找不到 WPJ 证书:确保设备已Microsoft Entra联接。 使用 dsregcmd.exe。 例如, dsregcmd /status 并查看 “设备状态 ”部分。

提示

通过 CMG、CMG 连接点和管理点的客户端通信通过 HTTPS 运行。 如果为站点配置增强的 HTTP,仍可以为 HTTP 配置管理点。

  • 客户端验证 CMG 服务器身份验证证书:

    • PKI 证书:客户端需要其本地存储中 CMG 证书的根 CA。
    • 第三方证书:客户端使用在 Internet 上发布的根 CA 自动验证证书。
  • CMG、CMG 连接点和管理点验证Microsoft Entra ID 和 CCM 令牌。

  • CMG 连接点与管理点之间的通信也在两端得到保护:

    • CMG 连接点使用客户端身份验证证书。
    • MP 使用 PKI 证书进行 HTTPS 配置,或使用自签名证书进行增强的 HTTP。