Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
You can manage your Enterprise Agreement (EA) enrollment in the Azure portal. Вы можете создавать различные роли для управления организацией, просматривать затраты и создавать подписки. В этой статье показано, как автоматизировать некоторые из этих задач с помощью Azure PowerShell и REST API с принципалами службы Microsoft Entra ID.
Примечание.
If you have multiple EA billing accounts in your organization, you must grant the EA roles to Microsoft Entra ID service principals individually in each EA billing account.
Прежде чем приступать к работе, убедитесь, что вы ознакомлены со следующими статьями.
- Enterprise agreement roles
- Sign in with Azure PowerShell (Вход в Azure PowerShell)
Вам нужен способ вызова REST API. Ниже приведены некоторые популярные способы запроса API:
- Visual Studio
- Бессонница
- Бруно
- PowerShell’s Invoke-RestMethod
- Курл
Создайте и аутентифицируйте вашего служебного пользователя
To automate EA actions by using a service principal, you need to create a Microsoft Entra app identity, which can then authenticate in an automated manner.
Follow the steps in these articles to create and authenticate using your service principal.
Ниже приведен пример страницы регистрации приложения.
Find your service principal and tenant IDs
Вам нужны идентификатор объекта служебного принципала и идентификатор арендатора. Эти сведения понадобятся для операций назначения разрешений далее в этой статье. Все приложения регистрируются в Microsoft Entra ID у арендатора. При завершении регистрации приложения создаются два типа объектов:
- Объект приложения — идентификатор приложения — это то, что отображается в разделе "Корпоративные приложения". Don't use the ID to grant any EA roles.
- Объект главного служб - Объект главного служб — это то, что вы видите в окне регистрации предприятия в Microsoft Entra ID. The object ID is used to grant EA roles to the service principal.
Откройте идентификатор Microsoft Entra и выберите корпоративные приложения.
Найдите приложение в списке.
Выберите приложение, чтобы узнать его идентификатор и идентификатор объекта.
Перейдите на страницу Обзор Microsoft Entra ID, чтобы найти идентификатор клиента.
Примечание.
The value of your Microsoft Entra tenant ID looks like a GUID with the following format: aaaabbbb-0000-cccc-1111-dddd2222eeee
.
Разрешения, которые могут быть назначены служебному участнику
Later in this article, you give permission to the Microsoft Entra app to act by using an EA role. Вы можете назначить служебному принципалу только следующие роли, и вам нужен идентификатор определения роли, точно как показано.
Роль | Разрешенные действия | Идентификатор определения роли |
---|---|---|
ЭнроллментРидер | Enrollment readers can view data at the enrollment, department, and account scopes. The data contains charges for all of the subscriptions under the scopes, including across tenants. Может просматривать предоплату Azure (ранее называемую денежным обязательством), связанную с регистрацией. | 24f8edb6-1668-4659-b5e2-40bb5f3a7d7e |
Покупатель соглашения EA | Закупка заказов на резервирование и просмотр транзакций резервирования. It has all the permissions of EnrollmentReader, which have all the permissions of DepartmentReader. Может просматривать сведения об использовании и платежах во всех учетных записях и подписках. Может просматривать предоплату Azure (ранее называемую денежным обязательством), связанную с регистрацией. | da6647fb-7651-49ee-be91-c43c4877f0c4 |
DepartmentReader | Загрузите сведения об использовании для отдела, который они администрируют. Может просматривать сведения об использовании и расходах, связанных с их отделом. | db609904-a47f-4794-9be8-9bd86fbffd8a |
Создатель подписок | Создание новых подписок в заданной области учетной записи. | a0bcee42-bf30-4d1b-926a-48d21664ef71 |
- An EnrollmentReader role can be assigned to a service principal only by a user who has an enrollment writer role. The EnrollmentReader role assigned to a service principal isn't shown in the Azure portal. Он создается программными средствами и предназначен только для программного использования.
- A DepartmentReader role can be assigned to a service principal only by a user who has an enrollment writer or department writer role.
- Роль SubscriptionCreator может быть назначена субъекту-службе только пользователем, который является владельцем учетной записи регистрации (администратор EA). Роль не отображается в портале Azure. Он создается программными средствами и предназначен только для программного использования.
- The EA purchaser role isn't shown in the Azure portal. Он создается программными средствами и предназначен только для программного использования.
При предоставлении роли EA сервисному принципалу необходимо использовать обязательное свойство billingRoleAssignmentName
. Этот параметр является уникальным идентификатором GUID, который вы должны предоставить. You can generate a GUID using the New-Guid PowerShell command. Можно также использовать веб-сайт генератора GUID/UUID для создания уникального идентификатора GUID.
A service principal can have only one role.
Assign enrollment account role permission to the service principal
См. статью REST API Назначение ролей – Put. While you read the article, select Try it to get started by using the service principal.
Используйте учетные данные своей учетной записи, чтобы войти в арендатора с доступом к регистрации, который вы хотите назначить.
Укажите следующие параметры в запросе API.
billingAccountName
: Этот параметр — это идентификатор счета на оплату. Его можно найти на портале Azure на странице Управление затратами и выставление счетов.billingRoleAssignmentName
: этот параметр представляет уникальный идентификатор GUID, который необходимо указать. You can generate a GUID using the New-Guid PowerShell command. Можно также использовать веб-сайт генератора GUID/UUID для создания уникального идентификатора GUID.api-version
: используйте версию 2019-10-01-preview. Используйте образец текста запроса в статье Назначение ролей — Put — Примеры.Текст запроса содержит код JSON с тремя параметрами, которые необходимо использовать.
Параметр Где ее найти properties.principalId
Это значение идентификатора объекта. См. Поиск ваших идентификаторов сервисного принципала и арендатора. properties.principalTenantId
См. Найдите свои идентификаторы основного сервиса и арендатора. properties.roleDefinitionId
/providers/Microsoft.Billing/billingAccounts/{BillingAccountName}/billingRoleDefinitions/24f8edb6-1668-4659-b5e2-40bb5f3a7d7e
Имя учетной записи выставления счетов — это тот же параметр, который использовался в параметрах API. Это идентификатор регистрации, который отображается в портале Azure.
Обратите внимание, что
24f8edb6-1668-4659-b5e2-40bb5f3a7d7e
является идентификатором определения роли выставления счетов для EnrollmentReader.
Выберите Выполнить, чтобы запустить команду.
Ответ
200 OK
показывает, что служебный принципал был успешно добавлен.
Теперь вы можете использовать сервисный принципал для автоматического доступа к API EA. У главного объекта службы есть роль EnrollmentReader.
Assign EA Purchaser role permission to the service principal
For the EA purchaser role, use the same steps for the enrollment reader. Укажите roleDefinitionId
, как в следующем примере:
"/providers/Microsoft.Billing/billingAccounts/1111111/billingRoleDefinitions/ da6647fb-7651-49ee-be91-c43c4877f0c4"
Assign the department reader role to the service principal
Прочитайте статью Enrollment Department Role Assignments - Put REST API. Во время чтения статьи выберите Попробовать.
Используйте учетные данные своей учетной записи, чтобы войти в арендатора с доступом на регистрацию, который вы хотите назначить.
Укажите следующие параметры в запросе API.
billingAccountName
: Этот параметр — это идентификатор счета на оплату. Его можно найти на портале Azure на странице Управление затратами и выставление счетов.billingRoleAssignmentName
: этот параметр представляет уникальный идентификатор GUID, который необходимо указать. You can generate a GUID using the New-Guid PowerShell command. Можно также использовать веб-сайт генератора GUID/UUID для создания уникального идентификатора GUID.departmentName
: этот параметр представляет идентификатор отдела. Идентификаторы отделов можно просмотреть на портале Azure на странице Управление затратами + выставление счетов>Отделы.В этом примере использован отдел ACE. Идентификатором в этом примере является
84819
.api-version
: используйте версию 2019-10-01-preview. Используйте образец в Назначения ролей в отделе зачисления - Put.Текст запроса содержит код JSON с тремя параметрами, которые необходимо использовать.
Параметр Где ее найти properties.principalId
Это значение идентификатора объекта. См. Найдите свои идентификаторы основного сервиса и арендатора. properties.principalTenantId
См. Находите ваши идентификаторы основного и арендодателя службы. properties.roleDefinitionId
/providers/Microsoft.Billing/billingAccounts/{BillingAccountName}/billingRoleDefinitions/db609904-a47f-4794-9be8-9bd86fbffd8a
Имя учетной записи выставления счетов — это тот же параметр, который использовался в параметрах API. Это идентификатор регистрации, который отображается в портале Azure.
Идентификатор определения роли выставления счетов
db609904-a47f-4794-9be8-9bd86fbffd8a
предназначен для читателя департамента.
Выберите Выполнить, чтобы запустить команду.
Ответ
200 OK
показывает, что основной объект службы был успешно добавлен.
Теперь вы можете использовать сервисный принципал для автоматического доступа к API EA. Основной сервис имеет роль ЧитательОтдела.
Assign the subscription creator role to the service principal
Прочитайте статью Назначение ролей учетной записи регистрации - Put. While you read it, select Try It to assign the subscription creator role to the service principal.
Используйте свои учетные данные, чтобы войти в арендатора с доступом для регистрации, который вы хотите назначить.
Укажите следующие параметры в запросе API. Прочитайте статью в Enrollment Account Role Assignments - Put - URI Parameters.
billingAccountName
: Этот параметр — это идентификатор счета на оплату. Его можно найти на портале Azure на странице Управление затратами и выставление счетов.billingRoleAssignmentName
: этот параметр представляет уникальный идентификатор GUID, который необходимо указать. You can generate a GUID using the New-Guid PowerShell command. Можно также использовать веб-сайт генератора GUID/UUID для создания уникального идентификатора GUID.enrollmentAccountName
: этот параметр представляет идентификатор учетной записи. Найти идентификатор учетной записи для имени учетной записи можно на портале Azure на странице Управление затратами + выставление счетов.В этом примере мы использовали
GTM Test Account
. Идентификатор:196987
.api-version
: используйте версию 2019-10-01-preview. Use the sample at Enrollment Department Role Assignments - Put - Examples.Текст запроса содержит код JSON с тремя параметрами, которые необходимо использовать.
Параметр Где ее найти properties.principalId
Это значение идентификатора объекта. См. Найдите своих основных пользователей службы и идентификаторы арендаторов. properties.principalTenantId
См. Поиск вашего служебного принципала и идентификаторов арендатора. properties.roleDefinitionId
/providers/Microsoft.Billing/billingAccounts/{BillingAccountID}/enrollmentAccounts/{enrollmentAccountID}/billingRoleDefinitions/a0bcee42-bf30-4d1b-926a-48d21664ef71
Имя учетной записи выставления счетов — это тот же параметр, который использовался в параметрах API. Это идентификатор регистрации, который отображается в портале Azure.
Идентификатор определения роли биллинга
a0bcee42-bf30-4d1b-926a-48d21664ef71
предназначен для роли создателя подписки.
Выберите Выполнить, чтобы запустить команду.
Ответ
200 OK
показывает, что основное имя службы было успешно добавлено.
Теперь вы можете использовать сервисный принципал для автоматического доступа к API EA. Сервисный принципал имеет роль SubscriptionCreator.
Verify service principal role assignments
Service principal role assignments aren't visible in the Azure portal. You can view enrollment account role assignments, including the subscription creator role, with the Billing Role Assignments - List By Enrollment Account - REST API (Azure Billing) API. Используйте API, чтобы убедиться, что назначение роли выполнено успешно.
Устранение неполадок
Вы должны определить и использовать ID объекта приложения Enterprise, где вы предоставили роль EA. Если вы используете идентификатор объекта из другого приложения, вызовы API завершаются сбоем. Убедитесь, что вы используете правильный идентификатор объекта приложения Enterprise.
Если при вызове API возникает следующая ошибка, возможно, вы неправильно используете значение идентификатора объекта субъекта-службы, расположенного в регистрациях приложений. To resolve this error, ensure you're using the service principal object ID from Enterprise Applications, not App Registrations.
The provided principal Tenant Id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and principal Object Id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are not valid