Программное создание подписок 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. Метод, описанный в этой статье, включает в себя двухэтапный процесс, который обеспечивает управление исходным клиентом по подпискам, созданным в конечных клиентах. Этот метод может быть предпочтительнее, если требуется более жесткий контроль над созданием подписок в конечных клиентах. Другой способ использования связанных клиентов — упрощенная версия, которая сводит к минимуму затраты на управление и упрощает процесс создания подписки путем передачи разрешений на создание подписок MCA полностью целевому клиенту.
Необходимые компоненты
Вам уже нужно создать следующие клиенты:
- Исходный клиент Microsoft Entra с активной учетной записью выставления счетов Клиентское соглашение Майкрософт. Если у вас нет активного MCA, его можно создать. Дополнительные сведения см. в статье Azure . Регистрация
- Целевой клиент Microsoft Entra отдельно от клиента, в котором принадлежит MCA. Сведения о создании нового клиента Microsoft Entra см. в разделе "Настройка клиента Microsoft Entra".
Настройка приложения
Используйте сведения в следующих разделах, чтобы настроить и настроить необходимые приложения в исходных и конечных клиентах.
Регистрация приложения в исходном клиенте
Чтобы программно создать подписку 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 aaaaaaaa-bbbb-cccc-1111-222222222222 --query 'id'
Azure PowerShell
Войдите в Azure PowerShell и используйте командлет Get-AzADServicePrincipal :
Get-AzADServicePrincipal -ApplicationId 00001111-aaaa-2222-bbbb-3333cccc4444 | 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
}
}
Следующие шаги
- Теперь, когда вы создали подписку, вы можете предоставить эту возможность другим пользователям и субъектам-службам. Дополнительные сведения см. статье Предоставление доступа к созданию подписок Azure Enterprise (предварительная версия).
- Дополнительные сведения о переносе большого числа подписок с помощью групп управления см. в руководстве по упорядочиванию ресурсов с помощью групп управления Azure.
- Сведения об изменении группы управления для подписки см. в разделе Перемещение подписок.