Compartilhar via


Provisionamento de conta

Provisionamento refere-se à configuração de um computador Windows com as informações necessárias para se conectar a uma rede de operadores. O provisionamento geralmente é executado após uma compra de assinatura de banda larga móvel. O Windows aceita um arquivo de provisionamento baseado em XML do operador . A API de Provisionamento aplica um arquivo XML de provisionamento da operadora, usando um aplicativo de banda larga móvel ou por meio de um site de compra.

O diagrama a seguir ilustra o conteúdo e a hierarquia do arquivo XML de provisionamento.

Diagrama que mostra a hierarquia de um arquivo XML de provisionamento para banda larga móvel.

Para obter mais informações sobre o esquema de provisionamento, confira Esquema CarrierControlSchema.

Atualizando os metadados de provisionamento

Há várias maneiras de atualizar os metadados de provisionamento em um computador.

Aplicativo de banda larga móvel

Depois que o aplicativo de banda larga móvel é instalado no computador, ele pode recuperar ou gerar um arquivo de provisionamento atualizado com base em qualquer gatilho que você implementar no aplicativo.

Aplicativos de banda larga móvel podem aplicar arquivos de provisionamento usando as APIs Windows.Networking.NetworkOperator.ProvisioningAgent . Se o aplicativo estiver associado a uma ID da Conta de Rede, ele poderá usar CreateFromNetworkAccountId para fornecer metadados não assinados. Se o aplicativo não estiver associado a uma ID da Conta de Rede, ele deverá usar o construtor padrão para ProvisioningAgent e assinar o XML.

Um aplicativo de banda larga móvel pode usar os seguintes gatilhos para atualizar os metadados de provisionamento:

  • Uso Depois que o limite de dados for configurado inicialmente, você poderá instruir o Windows a notificar o aplicativo a cada incremento de uso de 5%. Isso garante que o aplicativo recupere as informações de uso mais atualizadas.

  • Temporizadores Um temporizador pode atualizar os metadados de provisionamento em intervalos de tempo apropriados.

  • SMS de entrada Você pode enviar mensagens SMS que seu aplicativo entende. Isso pode definir uma mensagem que inicia uma atualização ou verifica automaticamente o uso atualizado ao receber uma notificação de limite.

  • Serviço de Notificação do Windows Qualquer aplicativo UWP pode se registrar para notificações por push e executar ações com base em seu conteúdo. Você pode usar isso como um canal de notificação para provisionar atualizações.

  • Alterações de localização grandes Se parâmetros diferentes se aplicarem a usuários que estão em localidades diferentes, uma alteração no local poderá disparar um aplicativo para aplicar as configurações atualizadas para o novo local do usuário.

  • Alterações de fuso horário Para tamanhos de região grandes, uma alteração no fuso horário do sistema pode ser usada como um proxy para alterações de localização. Isso pode ser de particular interesse em computadores que não têm GPS ou Banda Larga Móvel.

Provisionamento baseado na Web

Um site da Web pode fornecer dados de provisionamento usando a API window.external.msProvisionNetworks . Os arquivos de provisionamento fornecidos para essa API devem ser assinados usando um certificado X.509 e XML-DSig.

Os certificados podem ser pré-fornecidos ao computador usando o banco de dados APN, os metadados de serviço ou um arquivo de metadados de provisionamento de conta anterior. Se o certificado já for confiável, não haverá interação do usuário. Se o certificado não for conhecido anteriormente pelo computador, ele deverá ser um certificado EV e o usuário será solicitado a consentir antes que o certificado seja aceito.

Atualização de provisionamento automático

Um arquivo de provisionamento pode incluir uma diretiva para o Windows recuperar automaticamente um arquivo de provisionamento atualizado em um intervalo agendado ou em resposta a uma mensagem SMS específica. Esse método não exige que um aplicativo de banda larga móvel seja instalado no computador local.

Provisionando conteúdo de metadados

Os metadados de provisionamento incluem as seguintes seções:

Para obter mais informações sobre essas seções, confira Esquema CarrierControlSchema.

Global

A seção global é necessária em todos os arquivos de provisionamento. Os elementos necessários nesta seção são os seguintes:

  • CarrierId Um GUID que identifica exclusivamente a organização que criou o arquivo. Se você estiver criando um aplicativo de banda larga móvel, deverá usar o GUID especificado no campo Número do Serviço de ServiceInfo.xml no pacote de metadados de serviço. Para obter informações sobre o esquema do pacote de metadados de serviço, consulte Referência de esquema de pacote de metadados de serviço.

    Observação

    Esse é o mesmo número de serviço que você forneceu no assistente Criar uma experiência de banda larga móvel no Painel do Centro de Desenvolvimento do Windows – Hardware. Se você não estiver criando um aplicativo de banda larga móvel, poderá gerar um GUID para uso da sua organização. Em ambos os casos, você sempre deve usar o mesmo GUID em todos os arquivos de provisionamento que sua organização emite.

  • SubscriberId Uma cadeia de caracteres que identifica exclusivamente o cliente em sua organização. Se você for uma operadora móvel, esses devem ser os intervalos IMSI ou ICCID para operadores GSM ou a ID do provedor ou o nome do provedor para operadores CDMA. Se você não for uma operadora móvel, poderá escolher qualquer cadeia de caracteres suficientemente exclusiva.

Ativação

A ativação do dispositivo ocorre após a conclusão do processo de ativação no back-end. O computador pode precisar seguir determinadas instruções antes de se conectar à rede. O mecanismo de provisionamento usa as instruções de ativação recebidas no elemento de ativação do dispositivo. Se nenhum valor for especificado, nenhuma ação do cliente será necessária. As ações disponíveis incluem:

  • Conectar novamente Desconecte e conecte-se à rede do operador.

    Registrar novamente Desconecte e registre-se na rede do operador.

  • Dados Dados ou instruções que você deseja enviar ao dispositivo para ativar a conexão. O Mecanismo de Provisionamento passa esses dados como estão para o dispositivo. Para CDMA, isso pode incluir instruções como *228 para iniciar uma Sessão de Programação OTA e reconectar-se à rede.

Informações de banda larga móvel

As informações de banda larga móvel contêm vários elementos:

MBNProfiles

Define informações do assinante na rede da operadora móvel. Há dois perfis diferentes que podem ser usados:

  • PurchaseProfile: informações necessárias para se conectar à rede do operador para comprar uma nova assinatura.

  • Defaultprofile Cada assinatura de banda larga móvel pode ter um perfil padrão usado para se conectar ao operador de rede inicial. O Windows Gerenciador de Conexões usa esse perfil para se conectar automaticamente à rede.

    <MBNProfiles>
        <DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
          <Name>Contoso MBN</Name>
          <Description>Contoso Mobile Broadband</Description>
          <HomeProviderName>Contoso MBN</HomeProviderName>
          <Context>
            <AccessString>contoso.com</AccessString>
            <UserLogonCred>
              <UserName>mbuser</UserName>
              <Password>[PLACEHOLDER]</Password>
            </UserLogonCred>
          </Context>
        </DefaultProfile>
      </MBNProfiles>
    

Identidade visual

Importante

A partir de Windows 10, versão 1709, os campos de identidade visual provisionados pela API ProvisioningAgent foram substituídos por campos de identidade visual no banco de dados COSA. O logotipo foi substituído pelo Ícone de Identidade Visual na COSA e o Nome foi substituído pelo Nome da Identidade Visual no COSA.

O logotipo e o nome não serão mais considerados ao provisionar em Windows 10, versão 1709 e posterior. A API ProvisioningAgent não gerará um erro se elas forem usadas, mas você deverá alterar o Ícone de Identidade Visual e o Nome da Identidade Visual no COSA.

Para obter mais informações sobre o Ícone de Identidade Visual e o Nome da Identidade Visual, consulte Configurações do banco de dados COSA/APN da área de trabalho (configurações somente cosa da área de trabalho).

A identidade visual permite especificar como o Windows exibe suas redes de banda larga móvel. Essas informações substituem todos os metadados de serviço, se estiverem presentes. Se nenhuma informação for fornecida, o conteúdo do pacote de metadados de serviço será usado. Os elementos de identidade visual são os seguintes:

  • Logotipo Um arquivo de .PNG or.BMP codificado em Base64 inserido no XML. Esse logotipo é aplicado aos perfis de banda larga móvel para exibição na Lista de Rede.

  • Nome Define o nome de exibição da operadora para os perfis de banda larga móvel.

Análise de SMS

Você pode provisionar as regras para identificar uma mensagem de texto e extrair informações como parte do arquivo XML de provisionamento. Você pode usar mensagens SMS para atualizar estatísticas de uso de dados ou para iniciar uma atualização das informações de provisionamento. Essas mensagens podem ser identificadas por uma combinação do seguinte:

  • Tipo de portador (SMS/USSD)

  • Remetente (somente SMS)

  • Expressão regular

Para obter mais informações sobre notificações por SMS, consulte Habilitando notificações da operadora móvel e eventos do sistema.

Cada regra contém as seguintes informações:

  • Silencioso Se esse valor for true, a mensagem resultará apenas em um evento MobileOperatorNotification . Se esse valor for false, a mensagem resultará em um evento SmsMessageReceived .

  • Remetente permitido Especifica o endereço do remetente reservado do qual a notificação tem permissão para chegar. Esse número deve corresponder exatamente ao número do remetente recebido na mensagem SMS, incluindo o formato internacional.

  • Padrão A expressão regular para identificar e, opcionalmente, extrair campos de dados da mensagem de texto. Esse padrão corresponderá a todas as mensagens de um remetente: [^]*

  • RuleId Um identificador para essa regra, que é passado para o aplicativo de banda larga móvel como parte do evento MobileOperatorNotification . Esse identificador permite que o aplicativo saiba qual regra fez com que o SMS disparasse um evento MobileOperatorNotification e pode reduzir a necessidade do aplicativo de analisar a mensagem novamente.

  • Campos e grupos Cada grupo de captura no padrão de expressão regular é vinculado a um campo nomeado. Isso é usado para extrair e transformar os dados em um conjunto de valores utilizáveis. Por exemplo, o primeiro match-group pode ser vinculado ao campo Uso e o segundo grupo de correspondência pode ser vinculado ao campo UsageDataLimit . Essa associação indica que o primeiro valor são as informações de uso atuais e o segundo valor é o uso máximo permitido.

    • Usage, UsagePercentage, UsageOverage, UsageOveragePercentage: expressa o uso atual como um número absoluto, como um percentual do limite de dados, como um número acima do limite de dados ou como um percentual acima do limite de dados. Valores absolutos podem referenciar um grupo que especifica a unidade na qual o valor é expresso.

    • UsageTimestamp: a data e a hora em que o campo de uso é calculado. Essas informações deverão ser incluídas se qualquer campo Usage\* estiver incluído. A cadeia de caracteres de formato contém os seguintes identificadores para expressar como a subcadeia de caracteres deve ser interpretada:

      Identificador Descrição
      %d Dia do mês como um número decimal (01-31)
      %H Hora em formato de 24 horas (00-23)
      %I Hora em formato de 12 horas (01-12)
      %m Mês como um número decimal (01-12)
      %M Minuto como um número decimal (00-59)
      %S Segundo como um número decimal (00-59)
      %y Ano sem século, como o número decimal (00-99)
      %Y Ano com século, como número decimal (0000-9999)
      %p Indicador AM/PM
      %#d, %#H, %#I, %#m, %#M, %#S, %#y, %#Y O mesmo que acima, mas sem zeros à esquerda
    • DataLimit: o número absoluto de bytes que o usuário tem permissão para usar; isso inclui um grupo que especifica a unidade na qual o valor é expresso.

    • OverDataLimit, Congested: modifica sinalizadores que são relatados aos aplicativos para indicar que o usuário excedeu o limite de dados ou que a rede está sob carga pesada.

    • InboundBandwidth, OutboundBandwidth: se uma largura de banda máxima estiver sendo imposta pela rede, isso especificará os grupos que representam o valor e as unidades.

    • PlanType: especifica como o usuário é cobrado pelo uso futuro.

Cuidado Como as mensagens SMS influenciam o comportamento do Windows, somente mensagens SMS confiáveis podem ser consumidas. A segurança é mantida restringindo o endereço do remetente. Esse método de segurança pressupõe que o Gateway de SMS da rede garante que as mensagens de remetentes restritos não possam ser falsificadas.

Wi-Fi informações

Esta seção permite que você forneça qualquer número de perfis de rede Wi-Fi para o Windows usar. O formato da seção é semelhante ao esquema XML usado pela API WLAN nativa do Windows.

Observação

Um perfil pode conter vários SSIDs, se todas as outras configurações forem iguais. Se diferentes redes variarem de outras maneiras (método de autenticação, configurações de criptografia, plano e assim por diante), você deverá criar perfis adicionais.

Ao especificar a seção WLAN, você também deve especificar todos os perfis que devem ser configurados no computador. Se esses perfis fizerem referência a um plano de dados, a seção de planos também deverá ser incluída. O comportamento que ocorre quando esta seção é processada é o seguinte:

  • Se o computador tiver um perfil que não é mais especificado, ele será excluído.

  • Se você especificar um perfil, ele será atualizado ou criado.

  • Uma seção WLAN vazia exclui todos os perfis.

  • Omitir a seção WLAN deixa os perfis WLAN no computador inalterados.

Um nó adicional nesta seção é o plano associado. Esse nó permite que o Windows associe o perfil WLAN a um plano descrito na seção de planos. O plano permite informar ao Windows sobre o estado de medição da rede e influenciar o comportamento do Windows durante o tempo em que o computador está conectado à rede.

Rede não criptografada, sem autenticação automática

Esse perfil configura o Windows para se conectar a uma rede aberta.

  • Se essa rede contiver um portal cativo, o navegador será aberto após a conexão com a rede.

  • Se a rede não contiver um portal cativo, o usuário estará conectado sem nenhuma ação adicional.

<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
  <name>Contoso Wi-Fi</name>
  <SSIDConfig>
    <SSID>
      <name>Contoso Wi-Fi</name>
    </SSID>
  </SSIDConfig>
  <MSM>
    <security>
      <authEncryption>
        <authentication>open</authentication>
        <encryption>none</encryption>
        <useOneX>false</useOneX>
      </authEncryption>
    </security>
  </MSM>
</WLANProfile>

Rede não criptografada, autenticação WISPr

Esse perfil configura o Windows para se conectar a uma rede aberta e usa a autenticação WISPr (Wireless Internet Service Provider roaming):

  • Se a rede contiver um portal cativo compatível com WISPr, o nome de usuário e a senha especificados serão enviados ao servidor de autenticação especificado.

  • Se o portal cativo não for capaz de WISPr, o navegador será aberto após a conexão com a rede.

  • Se a rede não contiver um portal cativo, o usuário estará conectado sem nenhuma ação adicional.

<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
  <name>Contoso Wi-Fi</name>
  <SSIDConfig>
    <SSID>
      <name>Contoso Wi-Fi</name>
    </SSID>
  </SSIDConfig>
  <MSM>
    <security>
      <authEncryption>
        <authentication>open</authentication>
        <encryption>none</encryption>
        <useOneX>false</useOneX>
      </authEncryption>
      <HotspotProfile xmlns="http://www.microsoft.com/networking/WLAN/HotspotProfile/v1">
        <UserName>WisprUser1</UserName>
        <Password>[PLACEHOLDER]</Password>
        <TrustedDomains>
          <TrustedDomain>www.contosoportal.com</TrustedDomain>
        </TrustedDomains>
      </HotspotProfile>
    </security>
  </MSM>
</WLANProfile>

Rede criptografada, autenticação EAP-SIM

Esse perfil configura o Windows para se conectar a uma rede criptografada usando um SIM como o tipo de autenticação, como uma rede Hotspot 2.0. O Hotspot 2.0 define essa rede para usar WPA2-Enterprise com a autenticação EAP-SIM.

<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
  <name>Contoso Wi-Fi</name>
  <SSIDConfig>
    <SSID>
      <name>Contoso Wi-Fi</name>
    </SSID>
  </SSIDConfig>
  <MSM>
    <security>
      <authEncryption>
        <authentication>WPA2</authentication>
        <encryption>AES</encryption>
        <useOneX>true</useOneX>
      </authEncryption>
      <OneX xmlns="http://www.microsoft.com/networking/OneX/v1">
        <EAcomputeronfig>
          <!-- The config XML for all EA methods can be found at: https://learn.microsoft.com/openspecs/windows_protocols/ms-gpwl/44d403cd-4b2b-4519-b475-b48dc7124bfb -->
          <EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
            <EapMethod>
              <Type>18</Type>
              <VendorId>0</VendorId>
              <VendorType>0</VendorType>
              <AuthorId>311</AuthorId>
            </EapMethod>
            <Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
              <EapSim xmlns="http://www.microsoft.com/provisioning/EapSimConnectionPropertiesV1">
                <Realm Enabled="true"></Realm>
              </EapSim>
            </Config>
          </EapHostConfig>
        </EAcomputeronfig>
      </OneX>
    </security>
  </MSM>
</WLANProfile>

Rede não criptografada, autenticação baseada em aplicativo

Esse perfil configura o Windows para se conectar a uma rede aberta e usar a autenticação WISPr em cooperação com seu aplicativo de banda larga móvel.

  • Se a rede contiver um portal cativo, seu aplicativo será aberto em segundo plano para fornecer credenciais WISPr. Em seguida, as credenciais são enviadas para o servidor de autenticação especificado.

  • Se o portal cativo não for capaz de WISPr, o navegador será aberto após a conexão com a rede.

  • Se a rede não contiver um portal cativo, o usuário estará conectado sem nenhuma ação adicional.

<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
  <name>Contoso WiFi</name>
  <SSIDConfig>
    <SSID>
      <name>Contoso Wi-Fi</name>
    </SSID>
  </SSIDConfig>
  <MSM>
    <security>
      <authEncryption>
        <authentication>open</authentication>
        <encryption>none</encryption>
        <useOneX>false</useOneX>
      </authEncryption>
      <HotspotProfile xmlns="http://www.microsoft.com/networking/WLAN/HotspotProfile/v1">
        <ExtAuth>
          <ExtensionId>YourAppIdGoesHere</ExtensionId>
        </ExtAuth>
        <TrustedDomains>
          <TrustedDomain>www.contosoportal.com</TrustedDomain>
        </TrustedDomains>
      </HotspotProfile>
    </security>
  </MSM>
</WLANProfile>

Informações do plano

Cada perfil de banda larga móvel e hotspot faz referência a um plano. Vários perfis podem referenciar o mesmo plano. Os planos são descritos em uma seção de nível superior separada.

O Plano é dividido em duas seções: Descrição e Uso. Isso permite que você inicialmente forneça perfis e descrições em um arquivo de provisionamento maior e, em seguida, forneça arquivos de provisionamento menores que contenham apenas o uso atual do cliente.

Essas informações são usadas para afetar diretamente o comportamento do Windows e são fornecidas aos aplicativos para adaptar seu comportamento à rede. Essas informações podem ser disponibilizadas para aplicativos de terceiros por meio de APIs de informações de rede.

Descrição

Os elementos que geralmente mudam com baixa frequência durante o período de assinatura de um cliente, incluindo:

  • PlanType O tipo de relação de cobrança que o cliente tem com o operador :

    • Irrestrito O uso não incorre em custos adicionais.

    • Fixo O usuário recebe uma determinada quantidade de uso para um custo fixo.

    • Variável O usuário paga com base no uso.

  • SecurityUpdatesExempt Um valor booliano que especifica se as atualizações de segurança contam para o uso do cliente.

  • DataLimitInMegabytes O uso alocado do usuário, se PlanType for Fixo.

  • BillingCycle Define a data e a hora de início do plano, sua duração e o que acontece no final do ciclo de cobrança.

  • Largura de bandaInKbps A velocidade de conexão do usuário conforme permitido pela rede; isso pode refletir a norma para seu plano ou refletir uma taxa mais baixa que atualmente é imposta pela transportadora devido a congestionamento ou uso excessivo (máximo de 2 Gbps).

  • MaxTransferSizeInMegabytes Um inteiro que expressa o tamanho de um download individual que um aplicativo em conformidade deve permitir em uma conexão limitada, sem a aprovação explícita do usuário da conexão que está sendo usada.

  • UserSMSEnabled Indica se o plano inclui suporte de SMS de usuário para usuário. Se for true, o Windows manterá o dispositivo conectado à rede em Espera Conectada mesmo quando a interface de banda larga móvel não estiver sendo usada. Se for falso, o Windows poderá desligar a interface de banda larga móvel para economizar energia, resultando, assim, no dispositivo não ser endereçável pela rede quando o computador estiver ocioso.

Uso

Os seguintes elementos podem ser alterados com maior frequência:

  • UsageInMegabytes O uso de dados mais recente do usuário.

  • OverDataLimit Um valor booliano que indica se o usuário passou o uso alocado, se PlanType for Corrigido.

  • Congestionado Um valor booliano que indica se uma velocidade de conexão menor do que o normal está sendo imposta devido ao uso excessivo. O sinalizador Congestionado indica que a rede está enfrentando carga pesada (ou espera enfrentar) carga pesada, e as transferências de prioridade mais baixa devem ser adiadas até outra hora, se possível. Você pode usar esse sinalizador para indicar conceitos como horários de pico ou responder a um hotspot sobrecarregado.

Atualizar

Você pode enviar por push as configurações atualizadas para o computador conforme necessário devido a alterações de rede ou para suporte técnico. O Windows tenta atualizações periódicas usando informações fornecidas por você ou pela API de provisionamento. Uma atualização pode ser disparada por notificações por SMS do operador. Para habilitar a Atualização, você deve fornecer as seguintes informações no XML de provisionamento:

  • TrustedCertificates Uma lista de impressões digitais de certificado que têm assinaturas confiáveis em arquivos de provisionamento futuros.

  • DelayInDays O número (inteiro) de dias antes do qual uma atualização não é tentada.

  • RefreshURL A URL HTTPS para obter a cópia mais recente do arquivo de provisionamento do usuário.

  • UserName & Senha Credenciais opcionais que devem ser apresentadas usando HTTP-Auth ao recuperar o arquivo de reprovisionamento. Essas informações devem ser criptografadas quando armazenadas.

Como alternativa, o aplicativo de banda larga móvel pode fornecer um novo arquivo de provisionamento a qualquer momento, com base na comunicação entre o aplicativo e o back-end da operadora.

<RefreshParameters>
      <DelayInDays>30</DelayInDays>
      <RefreshURL>https://www.contoso.com/refresh</RefreshURL>
      <Username>[PLACEHOLDER]</Username>
      <Password>[PLACEHOLDER]</Password>
    </RefreshParameters>

Assinatura

Como o provisionamento modifica as configurações do sistema que persistem após o usuário ter saído ou desinstalado o aplicativo, uma medida mais rigorosa de verificação é necessária do que para a maioria das APIs. Essa verificação é fornecida por uma combinação de hardware específico do operador (o SIM), assinaturas criptográficas e confirmação do usuário.

Requisitos de provisionamento:

SIM presente? Origem do provisionamento Requisito de assinatura Requisito de confirmação do usuário
Sim, provedor MB Aplicativo de banda larga móvel Nenhum Nenhum
Sim, provedor MB Site do operador Certificado deve:
- Encadear novamente para a AC raiz confiável.
- Esteja associado ao hardware de banda larga móvel no banco de dados APN ou experimente metadados.
Nenhum
Não, Wi-Fi provedor Site do aplicativo de banda larga móvel Certificado deve:
- Encadear novamente para a AC raiz confiável.
- Ser marcado para Validação Estendida.
O usuário é solicitado a confirmar a primeira vez que o certificado é usado; nenhuma confirmação é necessária depois disso.

Combinações permitidas

Embora Global seja o único nó de primeiro nível exigido pelo esquema, determinadas combinações de outros nós são típicas. Esta seção discute estas combinações típicas:

  • Perfis (WLANProfiles, MBNProfiles) + Planos, incluindo Descrição e Uso Cria ou atualiza o conjunto completo de perfis e aplica informações de plano e uso atual a cada um. Um erro será retornado se um perfil fizer referência a um Plano que não for especificado no mesmo arquivo de provisionamento e um aviso for retornado se nenhum perfil no arquivo de provisionamento fizer referência a um Plano especificado.

  • Planos incluindo Descrição e (opcionalmente) Informações de plano de Atualizações de uso para perfis existentes no computador, mas não modifica os perfis no computador. Um aviso será retornado se nenhum perfil no computador fizer referência a um Plano especificado.

  • Planos que incluem Uso apenas Atualizações informações de uso em perfis existentes no computador, mas não modifica os perfis ou a descrição do Plano associado a cada perfil.

Cenários comuns

Aqui estão alguns cenários comuns que você pode precisar ao criar metadados de provisionamento:

Localizar o esquema de provisionamento de conta

Os esquemas XSD estão disponíveis em %SYSTEMROOT%\schemas\provisioning em qualquer computador que esteja executando Windows 8, Windows 8.1 ou Windows 10.

Aplicar o XML de provisionamento ao dispositivo

Você pode aplicar um arquivo XML de provisionamento a um dispositivo usando um aplicativo de banda larga móvel, um aplicativo UWP ou de um site da Web.

Para provisionar a partir de um aplicativo de banda larga móvel:

  1. Instancie uma instância provisioningAgent (usando Windows.Networking.NetworkOperators.ProvisioningAgent.CreateFromNetworkAccountId).

  2. Chame ProvisionFromXmlDocumentAsync, passando o documento XML de provisionamento não assinado.

A operação assíncrona é concluída e os resultados da operação de provisionamento são retornados.

Para provisionar a partir de um aplicativo UWP diferente do aplicativo de banda larga móvel:

  1. Gere um documento XML de Provisionamento de Conta assinado.

  2. Instancie uma instância provisioningAgent (usando o construtor padrão).

  3. Chame ProvisionFromXmlDocumentAsync, passando o documento XML assinado.

A operação assíncrona é concluída e os resultados da operação de provisionamento são retornados.

Em um site da Web:

  1. Gere um documento XML de Provisionamento de Conta assinado.

  2. Chame window.external.msProvisionNetworks, passando o documento XML assinado.

A operação é concluída e os resultados da operação de provisionamento são retornados.

Provisionar o dispositivo para se conectar automaticamente a uma rede de banda larga móvel

Você pode definir um documento XML de provisionamento usando uma seção MBNProfile .

<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
    <Global>
        <CarrierId>{00000000-1111-2222-3333-444444444444}</CarrierId>
        <SubscriberId>1234567890</SubscriberId>
    </Global>
    <MBNProfiles>
      <DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
          <Name>Profile Name</Name>
          <Description>The Description</Description>
          <HomeProviderName>Contoso</HomeProviderName>
          <Context>
              <AccessString>apn</AccessString>
              <UserLogonCred>
                  <UserName>username</UserName>
                  <Password>[PLACEHOLDER]</Password>
              </UserLogonCred>
          </Context>
      </DefaultProfile>
    </MBNProfiles>
</CarrierProvisioning>

Observação

Os elementos filho de DefaultProfile são necessários. Consulte a referência de esquema XML de provisionamento para obter mais detalhes.

Provisionar o dispositivo para se conectar automaticamente a uma rede Wi-Fi

Você pode definir um documento XML de provisionamento usando uma seção WlanProfiles .

<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
  <Global>
    <CarrierId>{00000000-1111-2222-3333-444444444444}</CarrierId>
    <SubscriberId>1234567890</SubscriberId>
  </Global>
  <WLANProfiles>
    <WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
      <name>My Wi-Fi Hotspot</name>
      <SSIDConfig>
        <SSID>
          <name>wifihotspot1</name>
        </SSID>
      </SSIDConfig>
      <MSM>
        <security>
          <authEncryption>
            <authentication>open</authentication>
            <encryption>none</encryption>
            <useOneX>false</useOneX>
          </authEncryption>
        </security>
      </MSM>
    </WLANProfile>
  </WLANProfiles>
</CarrierProvisioning>

Os elementos filho do MSM definem como se conectar à rede. Isso inclui qualquer configuração de EAP necessária. Todos os elementos filho do elemento MSM no esquema WLAN_profile têm suporte. Consulte a referência de esquema XML de provisionamento para obter mais detalhes.

Provisionar o dispositivo para se conectar automaticamente a um hotspot habilitado para WISPr

Você pode usar uma das duas maneiras a seguir para habilitar a autenticação de hotspot:

  1. Declare credenciais diretamente usando a diretiva BasicAuth :

    <?xml version="1.0"?>
    <CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
      <WLANProfiles>
        <WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
          <name>Contoso Wi-Fi</name>
          <SSIDConfig>
            <SSID>
              <name>Contoso Wi-Fi</name>
            </SSID>
          </SSIDConfig>
          <MSM>
            <security>
              <authEncryption>
                <authentication>open</authentication>
                <encryption>none</encryption>
                <useOneX>false</useOneX>
              </authEncryption>
              <HotspotProfile xmlns="http://www.microsoft.com/networking/WLAN/HotspotProfile/v1">
                <BasicAuth>
                  <UserName>[PLACEHOLDER]</UserName>
                  <Password>[PLACEHOLDER]</Password>
                </BasicAuth>
                <TrustedDomains>
                  <TrustedDomain>hotspot.contoso.com</TrustedDomain>
                </TrustedDomains>
              </HotspotProfile>
            </security>
          </MSM>
        </WLANProfile>
      </WLANProfiles>
    </CarrierProvisioning>
    
  2. Redirecione para um aplicativo para autenticação usando a diretiva ExtAuth :

    <?xml version="1.0"?>
    <CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
      <WLANProfiles>
        <WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
          <name>Contoso Wi-Fi</name>
          <SSIDConfig>
            <SSID>
              <name>Contoso Wi-Fi</name>
            </SSID>
          </SSIDConfig>
          <MSM>
            <security>
              <authEncryption>
                <authentication>open</authentication>
                <encryption>none</encryption>
                <useOneX>false</useOneX>
              </authEncryption>
              <HotspotProfile xmlns="http://www.microsoft.com/networking/WLAN/HotspotProfile/v1">
                <ExtAuth>
                  <ExtensionId>Alice</ExtensionId>
                </ExtAuth>
                <TrustedDomains>
                  <TrustedDomain>hotspot.contoso.com</TrustedDomain>
                </TrustedDomains>
              </HotspotProfile>
            </security>
          </MSM>
        </WLANProfile>
      </WLANProfiles>
    </CarrierProvisioning>
    

Você deve definir diretamente as credenciais quando possível. O redirecionamento para outro aplicativo tem implicações de potência e complexidade.

Enviando ativação para o dispositivo de banda larga móvel

Um BLOB (objeto binário grande) arbitrário que está contido dentro do elemento CarrierSpecificData pode ser codificado em Base64 e enviado para o dispositivo usando o ProvisioningAgent. Você pode fazer isso usando a diretiva Activation<ServiceActivatation> no XML de provisionamento:

<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
  <Global>
    <CarrierId>{00000000-1111-2222-3333-444444444444}</CarrierId>
    <SubscriberId>1234567890</SubscriberId>
  </Global>
  <Activation>
    <ServiceActivation xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
      <CarrierSpecificData>YXJiaXRyYXJ5ZGF0YQ==</CarrierSpecificData>
    </ServiceActivation>
  </Activation>
</CarrierProvisioning>

Esse método é equivalente a invocar o método IMbnVendorSpecificOperation::SetVendorSpecific da API de Banda Larga Móvel e passar um SAFEARRAY junto com o conteúdo do BLOB.

Forçar o dispositivo de banda larga móvel a se reconectar à rede após a conclusão do provisionamento

Há duas maneiras de forçar o dispositivo de banda larga móvel a se reconectar à rede após o provisionamento: ReregisterToNetwork e ReconnectToNetwork.

Você pode usar a diretiva ReregisterToNetwork para forçar o novo registro na rede de banda larga móvel desligando o rádio de banda larga móvel e, em seguida, novamente ativado. Depois que o rádio voltar, o adaptador será conectado usando o perfil padrão. Você deve usar essa diretiva com moderação e somente se for necessário cancelar o registro da rede após a ativação da conta.

Você pode usar a diretiva ReconnectToNetwork quando a ativação de contexto precisar aplicar quaisquer novas configurações de segurança ou política após a conclusão da ativação da conta. Isso é feito desativando o contexto PDP e reativando com base nas configurações de perfil padrão para o adaptador de banda larga móvel. Se o perfil padrão for atualizado no mesmo XML de provisionamento, as novas configurações de perfil serão usadas.

Opcionalmente, você pode especificar essas diretivas usando contagens/intervalos de repetição e tempos de execução atrasados.

Observação

Se o rádio for ativado com êxito em um ReregisterToNetwork , mas a conexão automática de volta à rede usando o perfil padrão falhar, as novas tentativas subsequentes não circularão o rádio novamente.

<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
  <Global>
    <CarrierId>{00000000-1111-2222-3333-444444444444}</CarrierId>
    <SubscriberId>1234567890</SubscriberId>
  </Global>
  <Activation>
      <!-- Cycle the radio and reconnect to the default profile with an 
           initial execution delay of 30 seconds and retries every 1 minute 
           up to 3 times.
           -->
      <ReregisterToNetwork
          xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1"
          Delay="PT30S"
          RetryCount="3"
          RetryInterval="PT1M"
          />
  </Activation>
</CarrierProvisioning>

Atualizando estatísticas de uso de dados para um perfil de conexão

Você só pode atualizar o uso para perfis que foram provisionados usando o ProvisioningAgent aplicando um novo arquivo de provisionamento de conta que atualizou as informações do plano. Você pode fornecer um arquivo de provisionamento que contém apenas informações de uso ou apenas informações de plano. Dependendo de quanto da configuração do sistema você deseja alterar, o novo arquivo de provisionamento pode incluir o seguinte:

  • Perfis, descrições de plano e uso

  • Planejar descrições e uso (atualiza perfis existentes)

  • Planejar o uso (atualiza os perfis e planos existentes)

Se você aplicar novos perfis e planos de referência que não estão definidos no XML, os resultados do provisionamento incluirão um aviso.

Atualizar o uso de dados usando uma mensagem SMS

Isso é feito de uma das seguintes maneiras:

  • Especifique uma mensagem de operador, receba uma mensagem de notificação do operador, leia a mensagem usando a API sms, analise a mensagem no aplicativo e defina o uso usando IProvisionedProfile.

  • Especifique uma regra de mensagem de operador que tenha uma combinação válida de campos de uso e forneça diretamente o uso atualizado no SMS.

Solução de problemas

Se você tiver problemas de provisionamento, poderá usar as seções a seguir para ajudá-lo a descobrir isso.

Resultados da API de provisionamento

Se o provisionamento falhar, você receberá uma exceção ao tentar executar a ação de provisionamento. As falhas que podem causar exceções incluem o seguinte:

  • O XML de provisionamento não está em conformidade com o esquema CarrierControlSchema.

  • O XML de provisionamento requer uma assinatura, mas não é assinado adequadamente.

Falhas de provisionamento parcial

Partes da operação de provisionamento podem não ter êxito devido a uma variedade de motivos. Por exemplo, você pode ter uma referência a Wi-Fi hardware que não está presente no momento do provisionamento. O agente de provisionamento faz uma melhor tentativa de provisionar tudo no arquivo. Quando algo falha, ele é observado nos resultados de provisionamento que são retornados de forma assíncrona usando ProvisionFromXmlDocumentAsync.

Os resultados são retornados como XML e podem ser analisados para descobrir a falha. Os elementos fornecem estrutura para mostrar o que falhou e os atributos ErrorCode indicam o motivo da falha como um HRESULT padrão.

Por exemplo, o código de erro a seguir indica que nenhum perfil WLAN foi provisionado porque o serviço WLAN não estava ativo:

<CarrierProvisioningResult>
    <WLANProfiles ErrorCode=”80070426”/>
</CarrierProvisioningResult>

Se um perfil individual não puder ser aplicado, ele aparecerá da seguinte maneira:

<CarrierProvisioningResult>
    <WLANProfiles>
        <WLANProfile Name=”MyProfile” ErrorCode=”80070005”/>
    </WLANProfiles>
</CarrierProvisioningResult>

Logs de eventos

Os eventos no canal Aplicativos e Serviços\Microsoft\Windows\NetworkProvisioning\Operational podem fornecer comentários detalhados sobre falhas de provisionamento.

Módulo ProvisioningTestHelper do PowerShell

Você pode importar o módulo ProvisioningTestHelper dos SDKs Windows 8, Windows 8.1 e Windows 10. Usando este módulo, você pode gerar e instalar certificados EV, assinar um arquivo XML usando o certificado instalado e validar o XML no esquema de provisionamento. Para importar o módulo para uma sessão do PowerShell, digite o seguinte comando:

Import-Module "<path_to_sdk>\bin\<arch>\ProvisioningTestHelper.psd1"

Em <que path_to_sdk\bin\<arch>> é o local de instalação do SDK Windows 8, Windows 8.1 ou Windows 10 que corresponde à arquitetura do computador.

Depois de importar este módulo, os quatro cmdlets do PowerShell a seguir estão disponíveis:

  • Install-TestEVCert Gera um novo certificado de AUTORIDADE de Certificação, registra-o em seu computador de teste como um provedor de SSL de EV confiável e o usa para gerar e instalar um certificado EV para uso na assinatura. Você deve executar esse cmdlet apenas uma vez para instalar os certificados. Você pode assinar qualquer número de arquivos usando os certificados.

    Install-TestEVCert -CertName <Certificate Name> -RootCertOutputPath <complete path to the folder to which the root certificate is to be exported>
    

    O certificado do cliente tem o nome especificado no comando e o certificado raiz tem "Raiz" acrescentado a ele junto com o nome do certificado do cliente. O parâmetro -CertName é opcional. Se o parâmetro –CertName não for especificado, MBAPTestCert será usado.

    O parâmetro -RootCertOutputPath também é opcional. Ele deve ser usado se você quiser exportar o certificado raiz a ser instalado em outro computador usando o cmdlet Install-RootCertFromFile.

  • Install-RootCertFromFile Aplica o certificado raiz de teste em um computador diferente para testar a experiência do cliente em um computador diferente do computador de desenvolvimento.

    Install-RootCertFromFile -CertFile <complete path to the root certificate>
    
  • ConvertTo-SignedXml Usa um certificado EV (gerado para teste ou emitido por um provedor de terceiros) para aplicar uma assinatura XML-DSig a um arquivo XML de provisionamento. Essa assinatura de um certificado confiável faz com que o Windows aceite o arquivo de provisionamento como válido de um aplicativo de banda larga móvel sem hardware afiliado.

    ConvertTo-SignedXml -InputFile <complete path to the input XML file> -OutputFile <complete path to the output XML file> -CertName <name of the certificate used to sign the xml>
    

    Esse comando assinará o arquivo XML de entrada, colocará a assinatura no XML e a salvará no arquivo XML de saída.

  • Test-ValidProvisioningXml Valida o XML de Provisionamento (assinado ou não assinado) no esquema de provisionamento.

    Test-ValidProvisioningXml -InputFile <complete path to the input XML file>