Compartilhar via


Criar assinaturas MCA programaticamente nos locatários do Microsoft Entra

Este artigo o ajuda a criar de forma programática uma assinatura do Contrato de Cliente da Microsoft (MCA) entre os locatários do Microsoft Entra. Em algumas situações, talvez seja necessário criar assinaturas do MCA entre locatários do Microsoft Entra, mas vinculá-las a uma única conta de cobrança. Exemplos dessas situações incluem os provedores de SaaS que aguardam para segregar serviços de clientes hospedados dos serviços internos de TI ou ambientes internos que possuem requisitos rígidos de conformidade regulatória, como PCI (Setor de Cartões de Pagamento).

O processo para criar uma assinatura de MCA entre locatários é efetivamente um processo de duas fases. Ele requer ações a serem tomadas nos locatários do Microsoft Entra de origem e de destino. Este artigo usa a seguinte terminologia:

  • ID do Microsoft Entra de origem (source.onmicrosoft.com). Representa o locatário de origem em que existe a conta de cobrança de MCA.
  • ID do Microsoft Entra da Nuvem de destino (destination.onmicrosoft.com). Representa o locatário de destino em que as novas assinaturas de MCA são criadas.

Você não pode criar planos de suporte programaticamente. Você pode comprar um novo ou atualizar um plano de suporte no portal do Azure. Navegue até Ajuda + suporte. Na parte superior da página, selecione Escolher o plano de suporte correto.

Observação

Há dois métodos para habilitar a criação programática de assinaturas do MCA entre locatários do Microsoft Entra. O método descrito neste artigo envolve um processo de duas fases que fornece governança ao locatário de origem sobre as assinaturas criadas em locatários de destino. Este método pode ser preferencial se você precisar ter um controle mais rígido sobre a criação de assinaturas em locatários de destino. O outro método de uso de locatários associados é uma versão simplificada que minimiza a sobrecarga de gerenciamento e simplifica o processo de criação da assinatura transferindo permissões para criar assinaturas MCA inteiramente para o locatário de destino.

Pré-requisitos

Você já deve ter os seguintes locatários criados:

Configuração do aplicativo

Use as informações nas seções a seguir para instalar e configurar os aplicativos necessários nos locatários de origem e de destino.

Registrar um aplicativo no locatário de origem

Para criar programaticamente uma assinatura do MCA, um aplicativo do Microsoft Entra deve ser registrado e ter recebido a permissão de controle de acesso baseado em função (RBAC) do Azure apropriada. Nesta etapa, verifique se você está conectado ao locatário de origem (source.onmicrosoft.com) com uma conta que tenha permissões para registrar os aplicativos do Microsoft Entra.

Siga as etapas em Início rápido: Registrar um aplicativo na plataforma de identidade da Microsoft.

Para esse processo, siga as seções Registrar um aplicativo e Adicionar credenciais.

Salve as seguintes informações para testar e configurar o ambiente:

  • ID do diretório (locatário)
  • ID do aplicativo (cliente)
  • ID de objeto
  • Valor secreto do aplicativo que foi gerado. O valor ficará visível somente no momento da criação.

Criar uma atribuição de função de cobrança para o aplicativo no locatário de origem

Para determinar o escopo e a função de cobrança apropriados para o aplicativo, examine as informações em Noções básicas sobre as funções administrativas do Contrato de Cliente da Microsoft no Azure.

Após determinar o escopo e a função, use as informações em Gerenciar funções de cobrança no portal do Azure para criar a atribuição de função para o aplicativo. Procure o aplicativo usando o nome que você usou quando registrou o aplicativo na seção anterior.

Registrar um aplicativo no locatário de destino

Para aceitar a assinatura MCA do locatário de destino (destination.onmicrosoft.com), um aplicativo do Microsoft Entra deve ser registrado e adicionado à função do Microsoft Entra do Administrador de cobrança. Nesta etapa, verifique se você está conectado ao locatário de destino (destination.onmicrosoft.com) com uma conta que tenha permissões para registrar os aplicativos do Microsoft Entra. Também é necessário ter permissão de função de administrador de cobrança.

Siga as mesmas etapas usadas anteriormente para registrar um aplicativo no locatário de origem. Salve as seguintes informações para testar e configurar o ambiente:

  • ID do diretório (locatário)
  • ID do aplicativo (cliente)
  • ID de objeto
  • Valor secreto do aplicativo que foi gerado. O valor ficará visível somente no momento da criação.

Adicionar o aplicativo de destino à função do Microsoft Entra do Administrador de cobrança

Para adicionar o aplicativo de destino criado na seção anterior à função Administrador de cobrança do Microsoft Entra no locatário de destino, use as informações em Atribuir funções de administrador e não administrador a usuários com o Microsoft Entra ID.

Criar uma assinatura programaticamente

Com os aplicativos e as permissões já configurados, use as informações a seguir para criar assinaturas programaticamente.

Obter a ID da entidade de serviço de aplicativo de destino

Ao criar uma assinatura de MCA no locatário de origem, será necessário especificar a entidade de serviço ou o SPN do aplicativo no locatário de destino como proprietário. Use um dos seguintes métodos para obter a ID. Em ambos os métodos, o valor a ser usado para o GUID vazio é a ID do aplicativo (cliente) do aplicativo locatário de destino criado anteriormente.

CLI do Azure

Entre na CLI do Azure e use o comando az ad sp show:

az ad sp show --id aaaaaaaa-bbbb-cccc-1111-222222222222 --query 'id'

Azure PowerShell

Entre no Azure PowerShell e use o cmdlet Get-AzADServicePrincipal:

Get-AzADServicePrincipal -ApplicationId 00001111-aaaa-2222-bbbb-3333cccc4444 | Select-Object -Property Id

Salve o valor Id retornado pelo comando.

Criar a assinatura

Use as informações a seguir para criar uma assinatura no locatário de origem.

Obter um token de acesso do aplicativo de origem

Substitua {{placeholders}} pela ID do locatário real, ID do aplicativo (cliente) e os valores secretos do aplicativo que você salvou quando criou o aplicativo locatário de origem anteriormente.

Invoque a solicitação e salve o valor access_token da resposta para uso na próxima etapa.

POST https://login.microsoftonline.com/{{tenant_id}}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id={{client_id}}&client_secret={{app_secret}}&resource=https%3A%2F%2Fmanagement.azure.com%2F

Obter as IDs da seção de fatura, perfil e conta de cobrança

Use as informações em Encontrar contas de cobrança às quais você tem acesso e Encontrar perfis de cobrança e seções de fatura para criar assinaturas para obter os IDs da conta de cobrança, do perfil e da seção de fatura.

Observação

É recomendável usar o método REST com o token de acesso obtido anteriormente para verificar se a atribuição de função de cobrança do aplicativo foi criada com êxito na seção Configuração do aplicativo.

Criar um alias de assinatura

Com as IDs da seção de fatura, perfil e conta de cobrança você terá todas as informações necessárias para criar a assinatura:

  • {{guid}}: pode ser um GUID válido.
  • {{access_token}}: token de acesso do aplicativo locatário de origem obtido anteriormente.
  • {{billing_account}}: ID da conta de cobrança obtida anteriormente.
  • {{billing_profile}}: ID do perfil de cobrança obtida anteriormente.
  • {{invoice_section}}: ID da seção de fatura obtida anteriormente.
  • {{destination_tenant_id}}: ID do locatário de destino conforme observado quando você criou anteriormente o aplicativo locatário de destino.
  • {{destination_service_principal_id}}: ID da entidade de serviço do locatário de destino que você obteve anteriormente da seção Obter a ID da entidade de serviço do aplicativo de destino.

Envie a solicitação e anote o valor do cabeçalho Location na resposta.

PUT https://management.azure.com/providers/Microsoft.Subscription/aliases/{{guid}}?api-version=2021-10-01
Authorization: Bearer {{access_token}}
Content-Type: application/json

{
  "properties": {
    "displayName": "{{subscription_name}}",
    "workload": "Production",
    "billingScope": "/billingAccounts/{{billing_account}}/billingProfiles/{{billing_profile}}/invoiceSections/{{invoice_section}}",
    "subscriptionId": null,
    "additionalProperties": {
      "managementGroupId": null,
      "subscriptionTenantId": "{{destination_tenant_id}}",
      "subscriptionOwnerId": "{{destination_service_principal_id}}"
    }
  }
}

Aceitar a propriedade da assinatura

A última fase para concluir o processo é aceitar a propriedade da assinatura.

Obter um token de acesso do aplicativo de destino

Substitua {{placeholders}} pela ID do locatário real, ID do aplicativo (cliente) e valores secretos do aplicativo que você salvou quando criou o aplicativo do locatário de destino anteriormente.

Invoque a solicitação e salve o valor access_token da resposta para a próxima etapa.

POST https://login.microsoftonline.com/{{tenant_id}}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id={{client_id}}&client_secret={{app_secret}}&resource=https%3A%2F%2Fmanagement.azure.com%2F

Aceitar propriedade

Use as seguintes informações para aceitar a propriedade da assinatura no locatário de destino:

  • {{subscription_id}}: ID da assinatura criada na seção Criar alias de assinatura. Está no cabeçalho de localização que você anotou.
  • {{access_token}}: token de acesso criado na etapa anterior.
  • {{subscription_display_name}}: nome de exibição da assinatura no ambiente do Azure.
POST https://management.azure.com/providers/Microsoft.Subscription/subscriptions/{{subscription_id}}/acceptOwnership?api-version=2021-10-01
Authorization: Bearer {{access_token}}
Content-Type: application/json

{
  "properties": {
    "displayName": "{{subscription_display_name}}",
    "managementGroupId": null
  }
}

Próximas etapas