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:
- Um locatário do Microsoft Entra de origem com uma conta de cobrança do Contrato de Cliente da Microsoft ativa. Se você não tiver um MCA ativo, poderá criar um. Para obter mais informações, consulte Azure − Inscrever-se
- Um locatário do Microsoft Entra de destino separado do locatário ao qual o MCA pertence. Para criar um novo locatário do Microsoft Entra, consulte Configuração de locatário do Microsoft Entra.
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
- Agora que você criou uma assinatura, conceda essa capacidade a outros usuários e entidades de serviço. Para saber mais, veja Conceder acesso para criar assinaturas do Azure Enterprise (versão prévia).
- Para obter mais informações sobre como gerenciar um grande número de assinaturas usando grupos de gerenciamento, confira como Organizar seus recursos com os grupos de gerenciamento do Azure.
- Para alterar o grupo de gerenciamento de uma assinatura, confira Mover assinaturas.