Home > 付録 > Exchange Online の ApplicationImpersonation ロール廃止の影響と対応策

この記事をダウンロード

Exchange Online の ApplicationImpersonation ロール廃止の影響と対応策

サービス アカウントを使用してメールボックスを移行する場合、ApplicationImpersonation ロールが必要です。ただし、Microsoft は Exchange Online でこのロールを廃止することを発表しました。Exchange Online の ApplicationImpersonation ロール廃止の影響と対応策については、以下のセクションを参照してください。

メールボックス移行への影響

メールボックス移行でサービス アカウント認証を使用している場合、以下のことに注意してください。

  • 移行元・移行先がユーザー / リソース / 共有 / アーカイブ メールボックスの場合、移行は失敗します。

  • サービス アカウントが移行先 Microsoft 365 グループ メールボックスの所有者ではない場合、移行元受信フォルダー内のアイテムを上書きすることはできません。

ApplicationImpersonation ロールが割り当てられているアカウントの確認方法

ApplicationImpersonation ロールが割り当てられているアカウントを確認するには、Windows PowerShell を開き、Windows PowerShell ウィンドウで以下のコマンドを入力します。

Get-ManagementRoleAssignment -Role ApplicationImpersonation -GetEffectiveUsers

ApplicationImpersonation ロールが割り当てられているサービス アカウントは、以下のスクリーンショットのように EffectiveUserName フィールドにリストされます。

Windows PowerShell

ApplicationImpersonation ロールなしでのメールボックスの移行方法

ApplicationImpersonation ロールなしでメールボックスするには、3 つのオプションがあります。詳細については、以下の説明を参照してください。

  • オプション 1: メールボックスの移行にサービス アカウントまたは委任アプリ プロファイルを使用する場合、サービス アカウントまたは委任アプリ プロファイルの承認ユーザーに、移行するすべてのメールボックスに対する フル アクセス 権限を付与します。

    NOTE

    この場合、グループ メールボックスを移行することはできません。

  • オプション 2: 移行用の Exchange Online 接続で Fly Server (推奨) アプリ プロファイルまたはカスタム アプリ プロファイルを使用します。

  • オプション 3: カスタム アプリ プロファイルを作成し、full_access_as_app 権限以外の必要な権限をアプリに割り当てます。その後、指定したメールボックスにのみアクセスできるように、アプリ用の RBAC 割り当てを作成します。詳細については、以下の説明を参照してください:

    NOTE

    この方法は、委任アプリ プロファイルで使用できません。

    1. アプリ用の RBAC 割り当てを作成する前に、Microsoft Entra 管理センター > アプリケーション > エンタープライズ アプリケーション に移動して、アプリのオブジェクト ID・アプリケーション ID・名前を取得できます。取得した情報は後で使用されます。

      エンタープライズ アプリケーション

    2. Windows PowerShell を使用して Exchange Online 環境に接続します。詳細については、Exchange Online PowerShell への接続 を参照してください。

    3. Windows PowerShell を開き、以下のコマンドを入力して新しいリソース スコープを作成します (必須ではありません)。

      New-ManagementScope -Name <scope name> -RecipientRestrictionFilter <filter query>

      例:

      イメージ 475

      スコープ名を Name の属性値、スコープ フォルダーを RecipientRestrictionFilter の属性値として入力します。キーボードの Enter キーを押します。

      フィルター エリア構文:

      Property -ComparisonOperator 'Value'

      フィルター可能な受信者プロパティについては、Exchange コマンドレットの RecipientFilter パラメーターのフィルター可能なプロパティ を参照してください。

    4. 以下のコマンドを入力して、Microsoft Entra サービス プリンシパルへのポインタを作成します。

      New-ServicePrincipal -AppId <Client Application ID in AAD> -ObjectId Service principal object ID in AAD> -DisplayName <name>

      例:

      イメージ 476

      クライアント アプリケーション ID を AppId の属性値、サービス プリンシパル オブジェクト ID を ObjectId の属性値として入力し、サービス プリンシパルの名前を DisplayName の属性値として定義します。キーボードの Enter キーを押します。

    5. 以下のコマンドを入力して、適切なアプリケーション ロールを選択します。

      New-ManagementRoleAssignment -Name <String> -Role <RoleIdParameter> -App <ObjectID, AppID, or DisplayName> -CustomResourceScope <Management Scope> (or -RecipientAdministrativeUnitScope)

      例:

      イメージ 477

      ロールの割り当て名を Name の属性値、Application EWS.AccessAsAppRole の属性値、新しく作成されたサービス プリンシパルのオブジェクト ID・アプリ ID・表示名を App の属性値、スコープ名を CustomResourceScope の属性値として入力します。キーボードの Enter キーを押します。

      -RecipientAdministrativeUnitScope は、受信者関連の権限を特定の Entra ID 管理単位 (AU) に制限します。管理単位 ID を取得するには、Get-AdministrativeUnit を参照してください。存在しない場合、必要に応じて管理単位を作成します。作成方法については、管理単位の作成または削除 を参照して

    6. 以下のコマンドを入力して、新しいサービス プリンシパルをテストします。

      Test-ServicePrincipalAuthorization -Identity "ObjectID, AppID, or DisplayName" -Resource "target mailbox"

      例:

      イメージ 478

      アプリがメールボックスにアクセスできるかどうかをテストするには、新しく作成されたサービス プリンシパルのオブジェクト ID・アプリ ID・表示名を Identify の属性値、メールボックスのメール アドレスを Resource の属性値として入力して、キーボードの Enter キーを押します。

      詳細については、Exchange Online でのアプリケーションのロールベースのアクセス制御 を参照してください。

移行に上記のオプション 2 またはオプション 3 を選択した場合、Exchange PowerShell が利用可能であることを確認するために、以下いずれかのオプションを選択する必要があります。そうでない場合、Fly の機能は利用できなくなります。詳細については、Exchange PowerShell での作業 を参照してください。