Descoberta de configuração declarada

A descoberta de configuração declarada do Windows (WinDC) usa um esquema JSON dedicado para consultar detalhes de registro do ponto de extremidade de serviço de descoberta (DS). Esse processo envolve o envio de solicitações HTTP com cabeçalhos específicos e um corpo JSON contendo detalhes como domínio de usuário, ID de locatário e versão do sistema operacional. O DS responde com as URLs de serviço de registro necessárias e políticas de autenticação com base no tipo de registro (dispositivos ingressados ou registrados no Microsoft Entra).

Este artigo descreve a estrutura de esquema para os corpos de solicitação e resposta HTTP e fornece exemplos para orientar a implementação.

Estrutura do esquema

Cabeçalhos de solicitação HTTP

Cabeçalho Obrigatório Descrição
MS-CV: %s Não Vetor de correlação para registro
client-request-id: %s Não ID da Solicitação
Content-Type: application/json Sim Tipo de conteúdo HTTP

Corpo da solicitação HTTP (JSON)

Campo Obrigatório Descrição
userDomain Não Nome de domínio da conta registrada
upn Não Nome UPN da conta registrada
tenantId Não ID do locatário da conta registrada
emmDeviceId Não ID do dispositivo de gerenciamento de mobilidade empresarial (EMM) da conta registrada
enrollmentType Microsoft Entra ingressou: Não
Microsoft Entra registrado: Sim
Tipo de registro da conta registrada.

Valores com suporte:
- Device: indica que o tipo de registro pai é ingressado no Microsoft Entra (a resposta do DS deve especificar "AuthPolicy": "Federated").
- User: indica que o tipo de registro pai é registrado no Microsoft Entra (a resposta do DS deve especificar "AuthPolicy": "Certificado").
- Caso herdado (somente ingressado no Microsoft Entra): se o enrollmentType parâmetro não estiver incluído no corpo da solicitação, o dispositivo deverá ser tratado como ingressado no Microsoft Entra.
osVersion Sim Versão do sistema operacional no dispositivo. O DS pode usar o osVersion para determinar se a plataforma do cliente dá suporte ao registro do WinDC. Examine as plataformas compatíveis para obter detalhes.

Corpo de resposta HTTP DS (JSON)

Campo Obrigatório Descrição
EnrollmentServiceUrl Sim URL do serviço de registro do WinDC
EnrollmentVersion Não Versão do registro
EnrollmentPolicyServiceUrl Sim URL do Serviço de Política de Registro
AuthenticationServiceUrl Sim URL do Serviço de Autenticação
ManagementResource Não de Recursos) de Gerenciamento
TouUrl Não URL dos termos de uso
AuthPolicy Sim Política de autenticação. Valores com suporte:
- Federated(necessário para o Microsoft Entra ingressou)
- Certificate(necessário para o registro do Microsoft Entra)
errorCode Não Código de erro
message Não Mensagem de status

Exemplos

Solicitação de descoberta

Cabeçalhos

Content-Type: application/json

Body

  1. Abordagem de modelo único: o cliente envia o valor UPN na solicitação inicial, juntamente com o parâmetro tenantId .

    1. O Microsoft Entra ingressou:

      {
          "userDomain" : "contoso.com",
          "upn" : "johndoe@contoso.com",
          "tenantId" : "00000000-0000-0000-0000-000000000000",
          "emmDeviceId" : "00000000-0000-0000-0000-000000000000",
          "enrollmentType" : "Device",
          "osVersion" : "10.0.00000.0"
      }
      
    2. Microsoft Entra registrado:

      {
      
          "userDomain" : "contoso.com",
          "upn" : "johndoe@contoso.com",
          "tenantId" : "00000000-0000-0000-0000-000000000000",
          "emmDeviceId" : "00000000-0000-0000-0000-000000000000",
          "enrollmentType" : "Device",
          "osVersion" : "10.0.00000.0"
      }
      
  2. Sem UPN (herdado)

    1. O Microsoft Entra ingressou:

      {
          "userDomain" : "contoso.com",
          "emmDeviceId" : "00000000-0000-0000-0000-000000000000",
          "enrollmentType" : "Device",
          "osVersion" : "10.0.00000.0"
      }
      
    2. Microsoft Entra registrado:

      {
          "userDomain" : "contoso.com",
          "emmDeviceId" : "00000000-0000-0000-0000-000000000000",
          "enrollmentType" : "User",
          "osVersion" : "10.0.00000.0"
      }
      
  3. UPN solicitado pelo servidor (formato herdado). Examine o tratamento de erros para obter detalhes sobre como o servidor pode solicitar dados UPN se eles não forem fornecidos na solicitação inicial.

    1. O Microsoft Entra ingressou:

      {
          "upn" : "johndoe@contoso.com",
          "emmDeviceId" : "00000000-0000-0000-0000-000000000000",
          "enrollmentType" : "Device",
          "osVersion" : "10.0.00000.0"
      }
      
    2. Microsoft Entra registrado:

      {
          "upn" : "johndoe@contoso.com",
          "emmDeviceId" : "00000000-0000-0000-0000-000000000000",
          "enrollmentType" : "User",
          "osVersion" : "10.0.00000.0"
      }
      

Resposta da descoberta

Cabeçalhos

Content-Type: application/json

Body

  1. Ingressado no Microsoft Entra (requer "AuthPolicy": "Federated"):

    {
        "EnrollmentServiceUrl" : "https://manage.contoso.com/Enrollment/Discovery",
        "EnrollmentPolicyServiceUrl" : "https://manage.contoso.com/Enrollment/GetPolicies",
        "AuthenticationServiceUrl" : "https://manage.contoso.com/Enrollment/AuthService",
        "AuthPolicy" : "Federated",
        "ManagementResource":"https://manage.contoso.com",
        "TouUrl" : "https://manage.contoso.com/Enrollment/tou.aspx"
    }
    
  2. Microsoft Entra registrado (requer "AuthPolicy": "Certificate"):

    {
        "EnrollmentServiceUrl" : "https://manage.contoso.com/Enrollment/Discovery",
        "EnrollmentPolicyServiceUrl" : "https://manage.contoso.com/Enrollment/GetPolicies",
        "AuthenticationServiceUrl" : "https://manage.contoso.com/Enrollment/AuthService",
        "AuthPolicy" : "Certificate",
        "ManagementResource":"https://manage.contoso.com",
        "TouUrl" : "https://manage.contoso.com/Enrollment/tou.aspx"
    }
    

Authentication

O registro do WinDC requer mecanismos de autenticação diferentes para dispositivos registrados e ingressados no Microsoft Entra. O WinDC DS deve se integrar ao modelo de autenticação especificando o valor apropriado AuthPolicy na resposta de descoberta, com base na enrollmentType propriedade da solicitação.

  • Os dispositivos ingressados no Microsoft Entra usam autenticação federada (token de dispositivo do Microsoft Entra).
  • Os dispositivos registrados do Microsoft Entra usam a autenticação de Certificado (certificado MDM provisionado para o registro pai).

Regras

  • Para dispositivos ingressados no Microsoft Entra:

    • Solicitação de descoberta: "enrollmentType": "Device"
    • Resposta da descoberta: "AuthPolicy": "Federated"
    • Autenticação: o cliente usa o token de dispositivo do Microsoft Entra para se autenticar com o servidor de registro do WinDC.
  • Para casos herdados (em que enrollmentType o valor está vazio):

    • Solicitação de descoberta: "enrollmentType": ""
    • Resposta da descoberta: "AuthPolicy": "Federated"
    • Autenticação: o cliente usa o token de dispositivo do Microsoft Entra para se autenticar com o servidor de registro do WinDC.
  • Para dispositivos registrados do Microsoft Entra:

    • Solicitação de descoberta: "enrollmentType": "User"
    • Resposta da descoberta: "AuthPolicy": "Certificate"
    • Autenticação: o cliente usa o certificado MDM do registro pai para autenticar com o servidor de registro WinDC.

Tratamento de erros

  • UPNRequired: se nenhum valor UPN for fornecido na solicitação de descoberta, o DS poderá definir como errorCodeUPNRequired na resposta para fazer com que o cliente repita a solicitação com um valor UPN, se disponível.
  • WINHTTP_QUERY_RETRY_AFTER: O servidor pode definir esse sinalizador para configurar a solicitação do cliente para tentar novamente após um atraso especificado. Esse sinalizador é útil para lidar com cenários de tempo limite ou limitação.