次の方法で共有


Microsoft Entra テナントをまたぐ Azure MCA サブスクリプションをプログラムで作成する

この記事は、Microsoft Entra テナントをまたぐ Microsoft 顧客契約 (MCA) サブスクリプションをプログラムで作成する場合に役立ちます。 状況によっては、Microsoft Entra テナントをまたいで MCA サブスクリプションを作成し、それらを 1 つの課金アカウントに関連付けることが必要になる場合があります。 このような状況の例としては、ホストされている顧客サービスを内部 IT サービスから分離する SaaS プロバイダーや、ペイメント カード業界 (PCI) など、厳格な規制コンプライアンス要件がある内部環境などがあります。

テナント間で MCA サブスクリプションを作成するプロセスは、実質的に 2 段階のプロセスです。 契約元の Microsoft Entra テナントと関連付けるテナントでアクションを実行する必要があります。 この記事では、次の用語を使用しています。

  • 契約元の Microsoft Entra ID (source.onmicrosoft.com)。 これは、MCA 課金アカウントが存在する移行元テナントを表します。
  • 関連付けるクラウドの Microsoft Entra ID (destination.onmicrosoft.com)。 これは、新しい MCA サブスクリプションが作成される移行先テナントを表します。

プログラムでサポート プランを作成することはできません。 新しいサポート プランを購入するか、Azure portal でアップグレードすることができます。 [ヘルプとサポート] に移動し、ページの上部にある [適切なサポート プランを選択] を選択します。

前提条件

次のテナントが既に作成されている必要があります。

  • アクティブな Microsoft 顧客契約の課金アカウントがある、契約元の Microsoft Entra テナント。 アクティブな MCA を持っていない場合は、作成できます。 詳細については、Azure のサインアップに関するページを参照してください
  • MCA が属するテナントとは別の関連付ける Microsoft Entra テナント。 新しい Microsoft Entra テナントを作成するには、Microsoft Entra テナントのセットアップに関する記事をご覧ください。

アプリケーションのセットアップ

次のセクションの情報を使用して、移行元と移行先のテナントで必要なアプリケーションを設定および構成します。

移行元テナントにアプリケーションを登録する

プログラムによって MCA サブスクリプションを作成するには、Microsoft Entra アプリケーションを登録し、適切な Azure RBAC アクセス許可を付与する必要があります。 このステップでは、Microsoft Entra アプリケーションを登録するためのアクセス許可を持つアカウントで、契約元のテナント (source.onmicrosoft.com) にサインインするようにします。

クイック スタート:Microsoft ID プラットフォームにアプリケーションを登録する」の手順に従います。

このプロセスで従う必要があるのは、「アプリケーションの登録」セクションと「資格情報の追加」セクションのみです。

次の情報を保存して、環境をテストして構成します。

  • ディレクトリ (テナント) ID
  • アプリケーション (クライアント) ID
  • オブジェクト ID
  • 生成されたアプリ シークレット値。 値は作成時にのみ表示されます。

移行元テナントでアプリケーションの課金ロールの割り当てを作成する

「Azure での Microsoft 顧客契約の管理ロールを理解する」の情報を確認して、アプリケーションの適切なスコープと課金ロールを決定します。

スコープとロールを決定したら、「Azure portal での組み込みロールを管理する」の情報を使用して、アプリケーションのロールの割り当てを作成します。 先のセクションでアプリケーションを登録したときに使用した名前を使用して、アプリケーションを検索します。

移行先テナントにアプリケーションを登録する

関連付けるテナント (destination.onmicrosoft.com) からの MCA サブスクリプションを承諾するには、Microsoft Entra アプリケーションを登録し、課金管理者 Microsoft Entra ロールに追加する必要があります。 このステップでは、Microsoft Entra アプリケーションを登録するためのアクセス許可を持つアカウントで、関連付けるテナント (destination.onmicrosoft.com) にサインインするようにします。 また、課金管理者ロールのアクセス許可も必要です。

上記と同じ手順に従って、移行元テナントにアプリケーションを登録します。 次の情報を保存して、環境をテストして構成します。

  • ディレクトリ (テナント) ID
  • アプリケーション (クライアント) ID
  • オブジェクト ID
  • 生成されたアプリ シークレット値。 値は作成時にのみ表示されます。

関連付けるアプリケーションを課金管理者 Microsoft Entra ロールに追加する

Microsoft Entra ID を使用した、ユーザーへの管理者ロールと管理者以外のロールの割り当てに関する記事の情報を使って、前のセクションで作成した関連付けるアプリケーションを、関連付けるテナントの課金管理者 Microsoft Entra ロールに追加します。

プログラムによる Azure サブスクリプションの作成

アプリケーションとアクセス許可が既に設定されている場合は、次の情報を使用して、プログラムによってサブスクリプションを作成します。

移行先アプリケーション サービス プリンシパルの ID を取得する

移行元テナントで MCA サブスクリプションを作成するときは、移行先テナントのアプリケーションのサービス プリンシパルまたは SPN を所有者として指定する必要があります。 次のいずれかの方法を使用して ID を取得します。 どちらの方法でも、空の GUID に使用する値は、先に作成した移行先テナント アプリケーションのアプリケーション (クライアント) ID です。

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}} を実際のテナント ID、アプリケーション (クライアント) ID、およびソース テナント アプリケーションを先に作成したときに保存したアプリ シークレットの値に置き換えます。

要求を呼び出し、応答の 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

課金アカウント、プロファイル、請求書セクションの ID を取得する

アクセス権を持つ課金アカウントの検索と課金プロファイルの検索と請求書セクションの情報使用して、課金アカウント、プロファイル、請求書セクション ID を取得するためのサブスクリプション セクションを作成します。

Note

先に取得したアクセス トークンと共に REST メソッドを使用して、「アプリケーション のセットアップ」セクションでアプリケーション課金ロールの割り当てが正常に作成されたことを確認することをお勧めします。

サブスクリプションを作成する

課金アカウント、プロファイル、請求書セクションの ID を使用すると、サブスクリプションの作成に必要なすべての情報が得られます。

  • {{guid}}: 有効な GUID を指定できます。
  • {{access_token}}: 以前に取得したソース テナント アプリケーションのアクセス トークン。
  • {{billing_account}}: 以前に取得した課金アカウントの ID。
  • {{billing_profile}}: 以前に取得した課金プロファイルの ID。
  • {{invoice_section}}: 以前に取得した請求書セクションの ID。
  • {{destination_tenant_id}}: 以前に移行先テナント アプリケーションを作成したときに示された移行先テナントの ID。
  • {{destination_service_principal_id}}: 以前に「移行先アプリケーション サービス プリンシパルの ID を取得する」セクションで取得した移行先テナント サービス プリンシパルの 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}} を、実際のテナント ID、アプリケーション (クライアント) ID、および以前に移行先テナント アプリケーションを作成したときに保存したアプリ シークレットの値に置き換えます。

要求を呼び出し、次の手順のために応答の 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}}: 「サブスクリプション エイリアスを作成する」セクションで作成しれたサブスクリプション の ID。 これは、メモした location ヘッダーに含まれています。
  • {{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
  }
}

次のステップ