Home > 付録 > Exchange Online の ApplicationImpersonation ロール廃止の影響と対応策
この記事をダウンロードサービス アカウントを使用してメールボックスを移行する場合、ApplicationImpersonation ロールが必要です。ただし、Microsoft は Exchange Online でこのロールを廃止することを発表しました。Exchange Online の ApplicationImpersonation ロール廃止の影響と対応策については、以下のセクションを参照してください。
メールボックス移行でサービス アカウント認証を使用している場合、以下のことに注意してください。
移行元・移行先がユーザー / リソース / 共有 / アーカイブ メールボックスの場合、移行は失敗します。
サービス アカウントが移行先 Microsoft 365 グループ メールボックスの所有者ではない場合、移行元受信フォルダー内のアイテムを上書きすることはできません。
ApplicationImpersonation ロールが割り当てられているアカウントを確認するには、Windows PowerShell を開き、Windows PowerShell ウィンドウで以下のコマンドを入力します。
ApplicationImpersonation ロールが割り当てられているサービス アカウントは、以下のスクリーンショットのように EffectiveUserName フィールドにリストされます。

ApplicationImpersonation ロールなしでメールボックスするには、3 つのオプションがあります。詳細については、以下の説明を参照してください。
オプション 1: メールボックスの移行にサービス アカウントまたは委任アプリ プロファイルを使用する場合、サービス アカウントまたは委任アプリ プロファイルの承認ユーザーに、移行するすべてのメールボックスに対する フル アクセス 権限を付与します。
この場合、グループ メールボックスを移行することはできません。
オプション 2: 移行用の Exchange Online 接続で Fly Server (推奨) アプリ プロファイルまたはカスタム アプリ プロファイルを使用します。
オプション 3: カスタム アプリ プロファイルを作成し、full_access_as_app 権限以外の必要な権限をアプリに割り当てます。その後、指定したメールボックスにのみアクセスできるように、アプリ用の RBAC 割り当てを作成します。詳細については、以下の説明を参照してください:
この方法は、委任アプリ プロファイルで使用できません。
アプリ用の RBAC 割り当てを作成する前に、Microsoft Entra 管理センター > アプリケーション > エンタープライズ アプリケーション に移動して、アプリのオブジェクト ID・アプリケーション ID・名前を取得できます。取得した情報は後で使用されます。

Windows PowerShell を使用して Exchange Online 環境に接続します。詳細については、Exchange Online PowerShell への接続 を参照してください。
Windows PowerShell を開き、以下のコマンドを入力して新しいリソース スコープを作成します (必須ではありません)。
例:

スコープ名を Name の属性値、スコープ フォルダーを RecipientRestrictionFilter の属性値として入力します。キーボードの Enter キーを押します。
フィルター エリア構文:
フィルター可能な受信者プロパティについては、Exchange コマンドレットの RecipientFilter パラメーターのフィルター可能なプロパティ を参照してください。
以下のコマンドを入力して、Microsoft Entra サービス プリンシパルへのポインタを作成します。
例:

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

ロールの割り当て名を Name の属性値、Application EWS.AccessAsApp を Role の属性値、新しく作成されたサービス プリンシパルのオブジェクト ID・アプリ ID・表示名を App の属性値、スコープ名を CustomResourceScope の属性値として入力します。キーボードの Enter キーを押します。
-RecipientAdministrativeUnitScope は、受信者関連の権限を特定の Entra ID 管理単位 (AU) に制限します。管理単位 ID を取得するには、Get-AdministrativeUnit を参照してください。存在しない場合、必要に応じて管理単位を作成します。作成方法については、管理単位の作成または削除 を参照して
以下のコマンドを入力して、新しいサービス プリンシパルをテストします。
例:

アプリがメールボックスにアクセスできるかどうかをテストするには、新しく作成されたサービス プリンシパルのオブジェクト ID・アプリ ID・表示名を Identify の属性値、メールボックスのメール アドレスを Resource の属性値として入力して、キーボードの Enter キーを押します。
詳細については、Exchange Online でのアプリケーションのロールベースのアクセス制御 を参照してください。
移行に上記のオプション 2 またはオプション 3 を選択した場合、Exchange PowerShell が利用可能であることを確認するために、以下いずれかのオプションを選択する必要があります。そうでない場合、Fly の機能は利用できなくなります。詳細については、Exchange PowerShell での作業 を参照してください。
Exchange 管理者 ロールをアプリに割り当てるには、Exchange 管理者ロールのアプリへの割り当て方法 を参照してください。
カスタム ロールをアプリに追加するには、アプリへのカスタム役割の追加方法 を参照してください。