將 Enterprise 合約 角色指派給服務主體

您可以在 Azure 入口網站 中管理您的 Enterprise 合約 (EA) 註冊。 您可以建立不同的角色來管理組織、檢視成本,以及建立訂用帳戶。 本文可協助您使用 Azure PowerShell 和 REST API 搭配 Microsoft Entra ID 服務主體,將這些工作自動化。

注意

如果您的組織中有多個 EA 計費帳戶,則必須在每個 EA 計費帳戶中個別將 EA 角色授與 Microsoft Entra ID 服務主體。

開始之前,請確定您已熟悉下列文章:

建立及驗證您的服務主體

若要使用服務主體將 EA 動作自動化,您必須建立 Microsoft Entra 應用程式身分識別,然後以自動化方式進行驗證。

請遵循這些文章中的步驟,使用您的服務主體來建立和驗證。

以下是應用程式註冊頁面的範例。

顯示註冊應用程式的螢幕快照。

尋找您的服務主體和租用戶標識碼

您需要服務主體的物件識別碼和租用戶標識碼。 本文稍後需要此資訊才能進行許可權指派作業。 所有應用程式都會在租使用者中的 Microsoft Entra ID 中註冊。 應用程式註冊完成時,會建立兩種類型的物件:

  • 應用程式物件 - 應用程式識別碼是您在 [企業應用程式] 底下看到的內容。 標識碼不應該用來授與任何EA角色。
  • 服務主體物件 - 服務主體對像是您在 Microsoft Entra ID 的 [企業註冊] 視窗中看到的內容。 對象標識碼可用來將EA角色授與服務主體。
  1. 開啟 Microsoft Entra ID,然後選取 [企業應用程式]。

  2. 在清單中尋找您的應用程式。

    顯示範例企業應用程式的螢幕快照。

  3. 選取應用程式以尋找應用程式識別碼和物件識別碼:

    顯示企業應用程式的應用程式識別碼和物件標識碼的螢幕快照。

  4. 移至 [Microsoft Entra 標識符 概觀 ] 頁面,以尋找租用戶標識符。

    顯示租用戶標識碼的螢幕快照。

注意

Microsoft Entra 租使用者標識符的值看起來像 GUID,格式如下: 11111111-1111-1111-1111-111111111111

可指派給服務主體的許可權

本文稍後,您將授與 Microsoft Entra 應用程式的許可權,以使用 EA 角色採取行動。 您只能將下列角色指派給服務主體,而且您需要角色定義標識碼,完全如所示。

角色 允許的動作 角色定義識別碼
EnrollmentReader 註冊讀取者可以在註冊、部門和帳戶範圍檢視數據。 數據包含範圍下所有訂用帳戶的費用,包括跨租使用者。 可以檢視與註冊相關聯的 Azure 預付款(先前稱為預付金)餘額。 24f8edb6-1668-4659-b5e2-40bb5f3a7d7e
EA 購買者 購買保留訂單和檢視保留交易。 其具有 EnrollmentReader 的所有許可權,接著會擁有 DepartmentReader 的所有許可權。 它可以檢視所有帳戶和訂用帳戶的使用量和費用。 可以檢視與註冊相關聯的 Azure 預付款(先前稱為預付金)餘額。 da6647fb-7651-49ee-be91-c43c4877f0c4
DepartmentReader 下載其所管理部門的使用詳細數據。 可以檢視與其部門相關聯的使用量和費用。 db609904-a47f-4794-9be8-9bd86fbffd8a
SubscriptionCreator 在指定的帳戶範圍內建立新的訂用帳戶。 a0bcee42-bf30-4d1b-926a-48d21664ef71
  • 只有具有註冊寫入器角色的使用者才能將 EnrollmentReader 角色指派給服務主體。 指派給服務主體的 EnrollmentReader 角色不會顯示在 Azure 入口網站 中。 它是由程序設計方式所建立,而且僅供程序設計使用。
  • 只有註冊寫入器或部門寫入者角色的使用者,才能將 DepartmentReader 角色指派給服務主體。
  • 只有註冊帳戶擁有者的使用者(EA 系統管理員)才能將 SubscriptionCreator 角色指派給服務主體。 角色不會顯示在 Azure 入口網站 中。 它是由程序設計方式所建立,而且僅供程序設計使用。
  • EA 購買者角色不會顯示在 Azure 入口網站 中。 它是由程序設計方式所建立,而且僅供程序設計使用。

當您將EA角色授與服務主體時,必須使用 billingRoleAssignmentName 必要的屬性。 參數是您必須提供的唯一 GUID。 您可以使用 New-Guid PowerShell 命令來產生 GUID。 您也可以使用 線上 GUID / UUID 產生器 網站來產生唯一的 GUID。

服務主體只能有一個角色。

將註冊帳戶角色許可權指派給服務主體

  1. 閱讀角色 指派 - 放置 REST API 一文。 當您閱讀本文時,請選取 [ 試用] 以開始使用服務主體。

    顯示 Put 文章中 [試用] 選項的螢幕快照。

  2. 使用您的帳戶認證,以您想要指派的註冊存取權登入租使用者。

  3. 提供下列參數作為 API 要求的一部分。

    • billingAccountName:此參數是 計費帳戶標識符。 您可以在 [成本管理 + 帳單概觀] 頁面上的 [Azure 入口網站 中找到它。

      顯示計費帳戶標識碼的螢幕快照。

    • billingRoleAssignmentName:此參數是您需要提供的唯一 GUID。 您可以使用 New-Guid PowerShell 命令來產生 GUID。 您也可以使用 線上 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 的計費角色定義標識碼。

  4. 選取 [ 執行 ] 以啟動命令。

    顯示範例角色指派的螢幕快照,其中範例資訊已準備好執行。

    回應 200 OK 顯示已成功新增服務主體。

現在您可以使用服務主體來自動存取EA API。 服務主體具有 EnrollmentReader 角色。

將EA購買者角色許可權指派給服務主體

針對 EA 購買者角色,請針對註冊讀取者使用相同的步驟。 使用下列範例指定 roleDefinitionId

"/providers/Microsoft.Billing/billingAccounts/1111111/billingRoleDefinitions/ da6647fb-7651-49ee-be91-c43c4877f0c4"

將部門讀取者角色指派給服務主體

  1. 請閱讀註冊部門角色指派 - 放置 REST API 一文。 當您閱讀本文時,請選取 [試用]。

    顯示註冊部門角色指派放置文章中 [試用] 選項的螢幕快照。

  2. 使用您的帳戶認證,以您想要指派的註冊存取權登入租使用者。

  3. 提供下列參數作為 API 要求的一部分。

    • billingAccountName:此參數是 計費帳戶標識符。 您可以在 [成本管理 + 計費概觀] 頁面上的 [Azure 入口網站 中找到它。

      顯示計費帳戶標識碼的螢幕快照。

    • billingRoleAssignmentName:此參數是您需要提供的唯一 GUID。 您可以使用 New-Guid PowerShell 命令來產生 GUID。 您也可以使用 線上 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 適用於部門讀取者。

  4. 選取 [ 執行 ] 以啟動命令。

    此螢幕快照顯示範例註冊部門角色指派 – 放置 REST 試用,其中範例資訊已準備好執行。

    回應 200 OK 顯示已成功新增服務主體。

現在您可以使用服務主體來自動存取EA API。 服務主體具有 DepartmentReader 角色。

將訂用帳戶建立者角色指派給服務主體

  1. 閱讀註冊帳戶角色指派 - 放置文章。 讀取時,請選取 [ 試用] 將訂用帳戶建立者角色指派給服務主體。

    此螢幕快照顯示註冊帳戶角色指派放置文章中的 [試用] 選項。

  2. 使用您的帳戶認證,以您想要指派的註冊存取權登入租使用者。

  3. 提供下列參數作為 API 要求的一部分。 請閱讀註冊帳戶角色指派 - Put - URI 參數一文

    • billingAccountName:此參數是 計費帳戶標識符。 您可以在 [成本管理 + 帳單概觀] 頁面上的 [Azure 入口網站 中找到它。

      顯示計費帳戶標識碼的螢幕快照。

    • billingRoleAssignmentName:此參數是您需要提供的唯一 GUID。 您可以使用 New-Guid PowerShell 命令來產生 GUID。 您也可以使用 線上 GUID/UUID 產生器 網站來產生唯一的 GUID。

    • enrollmentAccountName:此參數是帳戶 標識碼。 在 [成本管理 + 計費] 頁面上的 [Azure 入口網站 中尋找帳戶名稱的帳戶標識符。

      在此範例中,我們使用 GTM 測試帳戶。 識別碼為 196987

      顯示帳戶標識碼的螢幕快照。

    • api-version:使用 2019-10-01-preview 版本。 使用註冊部門角色指派 - Put - 範例中的 範例

      要求本文具有 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 是訂用帳戶建立者角色。

  4. 選取 [ 執行 ] 以啟動命令。

    顯示註冊帳戶角色指派 - 放置文章中 [試用] 選項的螢幕快照。

    回應 200 OK 顯示已成功新增服務主體。

現在您可以使用服務主體來自動存取EA API。 服務主體具有 SubscriptionCreator 角色。

確認服務主體角色指派

Azure 入口網站 中看不到服務主體角色指派。 您可以檢視註冊帳戶角色指派,包括訂用帳戶建立者角色,以及 計費角色指派 - 依註冊帳戶列出 - REST API (Azure 計費) API。 使用 API 來確認角色指派是否成功。

疑難排解

您必須識別並使用您授與 EA 角色的企業應用程式物件識別碼。 如果您使用來自其他應用程式的物件識別碼,API 呼叫將會失敗。 確認您使用的是正確的企業應用程式物件標識碼。

如果您在進行 API 呼叫時收到下列錯誤,則可能使用位於應用程式註冊中的服務主體物件識別碼值不正確。 若要解決此錯誤,請確定您使用來自企業應用程式的服務主體對象標識碼,而不是應用程式註冊。

The provided principal Tenant Id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and principal Object Id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are not valid

下一步

開始使用您的 Enterprise 合約 計費帳戶