テナント構成管理 API の認証を設定する

テナント構成管理 (TCM) API に対して認証を行い、organizationの TCM サービス プリンシパルを構成する方法について説明します。

認証

TCM API を使用する場合は、次の 2 つのレベルの認証が必要です。

  1. モニターを管理し、スナップショットを実行するための適切なアクセス許可を持つプリンシパルを使用して Microsoft Graph に対して認証します。
  2. モニターの認証を構成して、さまざまなワークロード エンドポイントの呼び出しを偽装したり、スナップショット ジョブを実行したりするためにモニターが使用する認証方法を決定します。

Microsoft Graph に対する認証

モニターを管理したり、スナップショット ジョブを開始したりするには、まず、ユーザーの資格情報 (ユーザー委任フロー) またはサービス プリンシパルを使用して認証することで、Microsoft Graph へのアクセス トークンを取得する必要があります。 次の表は、必要なアクセス許可をまとめたものです。

シナリオ 委任されたユーザー サービス プリンシパル
監視管理 任意の特権ロール* ConfigurationMonitoring.Read.All または ConfigurationMonitoring.ReadWrite.All
スナップショット 任意の特権ロール* ConfigurationMonitoring.ReadWrite.All

* 特権ロールの完全な一覧については、「Microsoft Entra組み込みロール」を参照してください。

モニターを実行するための認証

モニターを実行すると、TCM で指定されたプリンシパルが偽装されます。 TCM ソリューションは、 テナント構成管理 という名前の公式サービス プリンシパルを、次のアプリケーション ID で公開します。

03b07b79-c5bc-4b5e-9bfa-13acf4a99998

注:

お客様は、appId6b91db1b-f05b-405a-a0b2-e3f60b28d645 を持つ M365 管理 Services サービス プリンシパルもテナントにプロビジョニングされていることを確認する必要があります。 存在しない場合は、 手動でプロビジョニングできます。

TCM サービス プリンシパルを設定する

パブリック プレビュー中に、組織は TCM サービス プリンシパルをテナントに追加し、必要なアクセス許可を付与する必要があります。

TCM サービス プリンシパルをテナントに追加する

TCM サービス プリンシパルをテナントに追加する場合は、次のオプションを使用できます。

オプション 1: PowerShell を使用する

  1. 必要なモジュールをインストールします。

    Install-Module Microsoft.Graph.Authentication
    Install-Module Microsoft.Graph.Applications
    
  2. Microsoft Graph に接続する:

    Connect-MgGraph -Scopes @('Application.ReadWrite.All', 'AppRoleAssignment.ReadWrite.All')
    
  3. サービス プリンシパルを作成します。

    New-MgServicePrincipal -AppId '03b07b79-c5bc-4b5e-9bfa-13acf4a99998'
    

オプション 2: Microsoft Graph APIを使用する

サービス プリンシパルを作成するには、次の要求を行います。

POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-Type: application/json

{
  "appId": "03b07b79-c5bc-4b5e-9bfa-13acf4a99998"
}

TCM サービス プリンシパルにアクセス許可を付与する

TCM サービス プリンシパルをテナントに追加した後、ワークロード エンドポイントにアクセスするために必要なアクセス許可を付与する必要があります。

オプション 1: PowerShell を使用する

次のスクリプト例では、TCM サービス プリンシパルに User.ReadWrite.AllPolicy.Read.All のアクセス許可を付与します。

$permissions = @('User.ReadWrite.All', 'Policy.Read.All')
$Graph = Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
$TCM = Get-MgServicePrincipal -Filter "AppId eq '03b07b79-c5bc-4b5e-9bfa-13acf4a99998'"

foreach ($requestedPermission in $permissions) {
    $AppRole = $Graph.AppRoles | Where-Object { $_.Value -eq $requestedPermission }
    $body = @{
        AppRoleId = $AppRole.Id
        ResourceId = $Graph.Id
        PrincipalId = $TCM.Id
    }
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $TCM.Id -BodyParameter $body
}

Exchange Onlineアクセス許可については、「Exchange Onlineのアプリケーション アクセス ポリシー」を参照してください。

オプション 2: Microsoft Graph APIを使用する

TCM サービス プリンシパルにアプリ ロールを割り当てます。

POST https://graph.microsoft.com/v1.0/servicePrincipals(appId='03b07b79-c5bc-4b5e-9bfa-13acf4a99998')/appRoleAssignedTo
Content-Type: application/json

{
  "appRoleId": "246dd0d5-5bd0-4def-940b-0421030a5b68",
  "resourceId": "<Microsoft Graph service principal ID>",
  "principalId": "<TCM service principal ID>"
}

プレースホルダーの値を置き換えます。

  • <Microsoft Graph service principal ID>: テナント内の Microsoft Graph サービス プリンシパルのオブジェクト ID。
  • <TCM service principal ID>: テナント内の TCM サービス プリンシパルのオブジェクト ID。