Программное создание подписок MCA в клиентах Microsoft Entra

Эта статья поможет программным способом создать подписку Клиентское соглашение Майкрософт (MCA) в клиентах Microsoft Entra. В некоторых ситуациях может потребоваться создать подписки MCA в клиентах Microsoft Entra, но связать их с одной учетной записью выставления счетов. Примерами таких ситуаций являются поставщики SaaS, желающие разделить размещенные клиентские службы от внутренних ИТ-служб или внутренних сред, которые имеют строгие требования к соответствию нормативным требованиям, таких как индустрия карт оплаты (PCI).

Процесс создания подписки MCA между клиентами фактически является двухэтапным процессом. Он требует выполнения действий в клиентах Microsoft Entra источника и назначения. В этой статье используется следующая терминология:

  • Исходный идентификатор Microsoft Entra (source.onmicrosoft.com). Он представляет исходный клиент, в котором существует учетная запись выставления счетов MCA.
  • Идентификатор целевого облака Microsoft Entra (destination.onmicrosoft.com). Он представляет целевой клиент, в котором создаются новые подписки MCA.

Вы не можете создавать планы поддержки программным способом. Вы можете приобрести новый план поддержки или обновить его в портал Azure. Перейдите в раздел "Справка и поддержка ", а затем в верхней части страницы выберите нужный план поддержки.

Необходимые компоненты

Вам уже нужно создать следующие клиенты:

Настройка приложения

Используйте сведения в следующих разделах, чтобы настроить и настроить необходимые приложения в исходных и конечных клиентах.

Регистрация приложения в исходном клиенте

Чтобы программно создать подписку MCA, необходимо зарегистрировать приложение Microsoft Entra и предоставить соответствующее разрешение Azure RBAC. На этом шаге убедитесь, что вы вошли в исходный клиент (source.onmicrosoft.com) с учетной записью с разрешениями на регистрацию приложений Microsoft Entra.

Выполните действия, описанные в кратком руководстве. Регистрация приложения с помощью платформа удостоверений Майкрософт.

В целях этого процесса необходимо следовать только разделам регистрации приложения и добавления учетных данных.

Сохраните следующие сведения, чтобы протестировать и настроить среду:

  • Идентификатор каталога (клиента)
  • Идентификатор приложения (клиент)
  • Код объекта
  • Созданное значение секрета приложения. Значение отображается только во время создания.

Создание назначения роли выставления счетов для приложения в исходном клиенте

Просмотрите сведения, приведенные в статье "Общие сведения о Клиентское соглашение Майкрософт административных ролях в Azure", чтобы определить соответствующую область и роль выставления счетов для приложения.

После определения область и роли используйте сведения об управлении ролями выставления счетов в портал Azure, чтобы создать назначение ролей для приложения. Найдите приложение с помощью имени, используемого при регистрации приложения в предыдущем разделе.

Регистрация приложения в целевом клиенте

Чтобы принять подписку MCA из целевого клиента (destination.onmicrosoft.com), необходимо зарегистрировать и добавить приложение Microsoft Entra в роль Microsoft Entra администратора выставления счетов. На этом шаге убедитесь, что вы вошли в целевой клиент (destination.onmicrosoft.com) с учетной записью с разрешениями на регистрацию приложений Microsoft Entra. Он также должен иметь разрешение администратора выставления счетов.

Выполните те же действия, которые использовались выше для регистрации приложения в исходном клиенте. Сохраните следующие сведения, чтобы протестировать и настроить среду:

  • Идентификатор каталога (клиента)
  • Идентификатор приложения (клиент)
  • Код объекта
  • Созданное значение секрета приложения. Значение отображается только во время создания.

Добавление целевого приложения в роль microsoft Entra администратора выставления счетов

Используйте сведения о назначении ролей администратора и неадминистратора пользователям с идентификатором Microsoft Entra, чтобы добавить целевое приложение, созданное в предыдущем разделе, в роль Microsoft Entra администратора выставления счетов в целевом клиенте.

Программное создание подписки

При настройке приложений и разрешений используйте следующие сведения для программного создания подписок.

Получение идентификатора субъекта-службы целевого приложения

При создании подписки MCA в исходном клиенте необходимо указать субъект-службу или имя участника-службы приложения в целевом клиенте в качестве владельца. Чтобы получить идентификатор, используйте один из следующих методов. В обоих методах значение, используемое для пустого GUID, — это идентификатор приложения (клиента) целевого клиентского приложения, созданного ранее.

Azure CLI

Войдите в Azure CLI и используйте команду az ad sp show :

az ad sp show --id 00000000-0000-0000-0000-000000000000 --query 'id'

Azure PowerShell

Войдите в Azure PowerShell и используйте командлет Get-AzADServicePrincipal :

Get-AzADServicePrincipal -ApplicationId 00000000-0000-0000-0000-000000000000 | Select-Object -Property Id

Сохраните Id значение, возвращаемое командой.

Создание подписки

Используйте следующие сведения, чтобы создать подписку в исходном клиенте.

Получение маркера доступа к исходному приложению

Замените фактический {{placeholders}} идентификатор клиента, идентификатор приложения (клиента) и значения секрета приложения, сохраненные при создании исходного приложения клиента ранее.

Вызовите запрос и сохраните access_token значение из ответа для использования на следующем шаге.

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

Получение идентификаторов учетных записей выставления счетов, профилей и счетов

Используйте сведения в разделе "Найти учетные записи выставления счетов", к которым у вас есть доступ к профилям выставления счетов и разделам счетов, чтобы создать разделы подписок , чтобы получить идентификаторы учетных записей выставления счетов, профилей и счетов.

Примечание.

Мы рекомендуем использовать метод REST с маркером доступа, полученным ранее, чтобы убедиться, что назначение роли выставления счетов приложения было успешно создано в разделе "Настройка приложения".

Создание псевдонима подписки

С идентификаторами учетных записей выставления счетов, профилей и счетов у вас есть все сведения, необходимые для создания подписки:

  • {{guid}}: может быть допустимым ИДЕНТИФИКАТОРом GUID.
  • {{access_token}}: маркер доступа исходного клиентского приложения, полученного ранее.
  • {{billing_account}}: идентификатор учетной записи выставления счетов, полученной ранее.
  • {{billing_profile}}: идентификатор профиля выставления счетов, полученного ранее.
  • {{invoice_section}}: идентификатор раздела счета, полученного ранее.
  • {{destination_tenant_id}}: идентификатор целевого клиента, как указано при создании ранее целевого приложения клиента.
  • {{destination_service_principal_id}}: идентификатор субъекта-службы целевого клиента, полученного из раздела "Получить идентификатор субъекта-службы назначения" ранее.

Отправьте запрос и запишите значение заголовка Location в ответе.

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}}"
    }
  }
}

Принятия прав владения подпиской

Последний этап завершения процесса — принять владение подпиской.

Получение маркера доступа к целевому приложению

Замените {{placeholders}} фактическим идентификатором клиента, идентификатором приложения (клиента) и значениями секретов приложений, сохраненными при создании целевого приложения клиента ранее.

Вызовите запрос и сохраните access_token значение из ответа на следующий шаг.

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

Принятие прав владения

Используйте следующие сведения, чтобы принять владение подпиской в целевом клиенте:

  • {{subscription_id}}: идентификатор подписки, созданной в разделе "Создание псевдонима подписки". Он содержится в заголовке расположения, который вы указали.
  • {{access_token}}: маркер доступа, созданный на предыдущем шаге.
  • {{subscription_display_name}}: отображаемое имя подписки в вашей среде 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
  }
}

Следующие шаги