Azure AD authentication workflow (Fluxo de trabalho da autenticação do Azure AD)

Aplica-se a: Configuration Manager (ramo atual)

Este artigo é uma referência técnica para o processo de instalação e registo do cliente do Gestor de Configuração num dispositivo Windows 10 que se junta a Azure Ative Directory (Azure AD). Detalha o processo de fluxo de trabalho para a autenticação do dispositivo.

Nota

Windows 10 os clientes recebem um certificado de alistagem no local de trabalho (WPJ) quando se juntam a um inquilino da AD Azure. Se o certificado não for encontrado, o cliente do Gestor de Configuração não pode solicitar fichas AD Azure. Sem um token, o cliente não pode usar o serviço de comunicação de símbolo de segurança do Gestor de Configuração (CCM_STS) para autenticação Azure AD com sistemas de site do Gestor de Configuração.

Instalação do cliente

Nesta amostra de fluxo de trabalho, instalou o cliente Do Gestor de Configuração num dispositivo Windows 10 através da internet com as seguintes propriedades da linha de comando ccmsetup:

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

Diagrama de fluxo de trabalho do CcmSetup com autenticação AD Azure

1. Pedido de informação da AZure AD do CCMsetup

Os clientes instalados a partir da internet precisam de propriedades específicas da linha de comando para utilizar a autenticação AZure AD. Pode incluir estas propriedades na linha de comando para o ccmsetup da internet,mas não são necessárias. Quando não utiliza propriedades AD Azure, o CCMsetup solicita as propriedades AADCLIENTAPPID e AADRESOURCEURI do gateway de gestão de nuvem (CMG). Utiliza o Azure AD TenantID do dispositivo como referência. Caso não tenha a bordo o TenantID do cliente em Gestor de Configuração, a CMG não dá as propriedades necessárias ao CCMsetup para continuar a instalação do cliente.

As seguintes entradas são registadas no ccmsetup.log do cliente:

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.

Importante

Durante o ccmsetup, o dispositivo tem de validar o certificado de autenticação do servidor CMG. O certificado de autenticação do certificado de autenticação do servidor CMG tem de estar disponível no cliente para validação em cadeia. Se utilizar o PKI, quando a raiz CA não for publicada na internet, adicione o certificado de CA raiz à loja CAs raiz do dispositivo.

Se a lista de revogação do certificado de CA raiz (CRL) não for publicada na Internet, adicione o parâmetro /nocrlcheck na linha de comando ccmsetup.

2. Pedido de ficha ad Azure

Num dispositivo de ligação ao domínio Azure AD Windows 10, o CCMsetup utiliza as propriedades AD AZure para solicitar um token AD Azure chamando o fornecedor ADALOperation. As seguintes entradas são registadas no ccmsetup.log no cliente:

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

Se o pedido de token do dispositivo falhar, o ccmsetup volta a cair para tentar solicitar um token de utilizador AZure. Se o dispositivo não conseguir obter um dispositivo AD Azure ou um token do utilizador, o ccmsetup não continua.

Nota

Se o dispositivo tiver um certificado de autenticação de cliente PKI válido, o CCMsetup prefere sempre o certificado. Neste caso, o cliente instala-se como cliente PKI e não utiliza a autenticação AD Azure.

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. Pedido de símbolo de cliente do Gestor de Configuração

O cliente usa o token AD Azure para solicitar o token do Cliente Gestor de Configuração (CCM). A comunicação operacional entre o ccmsetup e o site utiliza o token CCM como símbolo de autorização (CcmTokenAuth=1).

3.1 Cliente envia pedido de ficha ccm à CMG

As seguintes entradas são registadas no ccmsetup.log no cliente:

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 encaminha-se para o ponto de ligação CMG

As seguintes entradas são registadas no CMGService.log na instância cmg VM.

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)>

Dica

O Gestor de Configuração sincroniza o CMGService.log no servidor do site regista a pasta a cada cinco minutos como CMG-<CMGname>-ProxyService_IN_<%>-CMGService.log .

3.3 Ponto de ligação CMG transforma pedido de cliente CMG para pedido de cliente de ponto de gestão

As seguintes entradas são registadas no SMS_CLOUD_PROXYCONNECTOR.log (modo verboso) do sistema de site que acolhe a função de ponto de ligação 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 Ponto de gestão verifica ficha de utilizador na base de dados do site

As seguintes entradas são registadas em CCM_STS.log do sistema de site que acolhe o ponto de gestão que trata do pedido do cliente:

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. Pedido de localização de conteúdo

Assim que o cliente obtém o token CCM, ele cache e usa-o para solicitar informações do site e localização de conteúdo de ccmsetup.cab. Assim que o dispositivo descarrega o conteúdo do cliente, inicia a instalação. As seguintes entradas são registadas no ccmsetup.log no cliente:

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

Nota

Se o cliente encontrar o conteúdo a partir de um CMG ativado por conteúdo, o ccmsetup descarrega o conteúdo do armazenamento na nuvem. Se a versão mais recente do cliente não estiver disponível na nuvem, descarrega o conteúdo do ponto de gestão através de um pedido cmg.

Registo de clientes

Diagrama de fluxo de trabalho do registo do cliente com autenticação AD Azure

1. Registo de pedido de cliente do Gestor de Configuração

Uma vez que o CCMsetup instala com sucesso o cliente Gestor de Configuração, o registo iniciais. As seguintes entradas são registadas no ClientIDManagerStartup.log do cliente:

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. Gestor de Configuração pede ficha AD Azure para registar cliente

O cliente solicita um novo token AD Azure para registar usando a autenticação AZure AD. Prefere um símbolo do dispositivo, mas se não estiver disponível, o cliente volta a solicitar um token de utilizador Azure. As seguintes entradas são registadas no ADALOperationProvider.log do cliente:

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. Pedido de registo

A componente de registo no ponto de gestão trata do processo de registo do cliente. O cliente envia uma mensagem de registo para o MP_ClientRegistration ponto final.

3.1 CMG remete o pedido de registo do cliente para o ponto de gestão

As seguintes entradas são registadas no MP_RegistrationManager.log do sistema de site que acolhe o ponto de gestão que trata do pedido do cliente:

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 Cliente do Gestor de Configuração está registado

Se o registo for bem sucedido, o cliente recebe uma mensagem de confirmação de registo com aprovação 3 para registo baseado em Azure AD. As seguintes entradas são registadas no ClientIDManagerStartup.log do cliente:

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

4. Pedido de símbolo de cliente do Gestor de Configuração

Assim que o servidor confirmar o registo do cliente, o cliente processa a mensagem de resposta. Em seguida, o cliente solicita e caches um novo token CCM. As seguintes entradas são registadas no ClientIDManagerStartup.log do cliente:

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 recebe e encaminha CCM_Token pedido para o ponto de ligação CMG

As seguintes entradas são registadas no CMGService.log do CMG VM e do sistema de site que acolhe a função de ponto de ligação CMG:

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

4.2 Ponto de ligação CMG transforma pedido de cliente CMG para pedido de cliente de ponto de gestão

As seguintes entradas são registadas em SMS_CLOUD_PROXYCONNECTOR.log do sistema de site que acolhe a função de ponto de ligação CMG:

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 Ponto de gestão verifica ficha de utilizador na base de dados do site

As seguintes entradas são registadas em CCM_STS.log do sistema de site que acolhe o ponto de gestão que trata do pedido do cliente:

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

O servidor devolve o token CCM ao cliente para o resto da comunicação cliente-local.

Nota

Durante o registo do cliente, a validação do certificado é sempre executado. Este processo acontece mesmo que esteja a utilizar o método de autenticação Azure AD para registar o cliente. Este comportamento é uma opção de recuo, caso a autenticação Azure AD não tenha sucesso.

Renovação simbólica do CCM

O símbolo do CCM tem uma vida de oito horas. Quando o cliente deteta que o token CCM está expirado ou perto de expirar, envia um novo pedido de ficha ccm. O componente CcmMessaging trata deste processo de renovação. As seguintes entradas são registadas na CcmMessaging.log do cliente:

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'

Problemas comuns

  • Root CA não presente: Os clientes precisam do certificado de CA raiz para validar o certificado de autenticação do servidor CMG.

  • A verificação crl está ativada: Publique o CRL na internet. Como alternativa, utilize o parâmetro /NoCRLCheck para ccmsetup. Também pode desativar a seguinte opção: Os clientes verificam a lista de revogação do certificado (CRL) para sistemas de site. Encontre esta definição no separador Segurança de Comunicação das propriedades do site.

  • O certificado WPJ não é encontrado: Certifique-se de que o dispositivo está aderido a Azure. Utilize dsregcmd.exe. Por exemplo, dsregcmd /status e olhe para a secção Estado do Dispositivo.

Dica

A comunicação do cliente através de CMG, ponto de ligação CMG e ponto de gestão passa por HTTPS. Se configurar o site para HTTP melhorado, ainda pode configurar o ponto de gestão para HTTP.

  • O cliente verifica o certificado de autenticação do servidor CMG:

    • Certificado PKI: O cliente requer a raiz ca do certificado CMG na sua loja local.
    • Certificado de terceiros: Os clientes validam automaticamente um certificado com a sua CA de raiz publicada na internet.
  • CMG, ponto de ligação CMG e ponto de gestão validam fichas Azure AD e CCM.

  • A comunicação entre o ponto de ligação CMG e o ponto de gestão também é assegurada em ambas as extremidades:

    • O ponto de ligação CMG utiliza certificado de auth cliente.
    • MP utiliza um certificado PKI para configuração HTTPS, ou um certificado auto-assinado para HTTP melhorado.