401 Test-OAuthConnectivity コマンドレットの実行時にアクセス拒否エラーが発生する

元の KB 番号: 3090197

現象

コマンドレットを実行してユーザーの Test-OAuthConnectivity OAuth 認証をテストすると、操作は失敗し、次のようなメッセージが表示されます。

401 アクセスが拒否されました

原因

この問題は、次のいずれかの条件に該当する場合に発生する可能性があります。

  • OAuth 認証に必要なサービス プリンシパル名 (SPN) がありません。
  • オンプレミス環境とMicrosoft Exchange Onlineの間で同期されていないアカウントをテストしています。

解決方法

この問題を解決するには、状況に応じて、次のいずれかのアクションを実行します。

シナリオ 1 - SPN が見つかりません

注:

Azure AD および MSOnline PowerShell モジュールは、2024 年 3 月 30 日の時点で非推奨となりました。 詳細については、 非推奨の更新プログラムに関するページを参照してください。 この日付以降、これらのモジュールのサポートは、Microsoft Graph PowerShell SDK への移行支援とセキュリティ修正に限定されます。 非推奨のモジュールは、2025 年 3 月 30 日まで引き続き機能します。

Microsoft Entra ID (旧称 Azure AD) と対話するには、Microsoft Graph PowerShell に移行することをお勧めします。 移行に関する一般的な質問については、移行に関する FAQ を参照してください。 メモ: バージョン 1.0.x の MSOnline では、2024 年 6 月 30 日以降に中断が発生する可能性があります。

  1. Exchange 管理シェル を開きます。

  2. 次のコマンドを実行します。

    Get-IntraOrganizationConfiguration
    

    OnPremisesWebServiceEndPointに対して返される値にOnPremisesDiscoveryEndPoint注目してください。

  3. 次のコマンドを実行します。

    (Get-MsolServicePrincipal -ServicePrincipalName "00000002-0000-0ff1-ce00-000000000000").ServicePrincipalNames
    

    エンドポイントに一覧表示されているドメイン名が返されるかどうかを確認します。

  4. ドメイン名が返されない場合は、 コマンドレットを Set-MsolServicePrincipal 使用して追加します。

    たとえば、次のコマンドはドメインを mail.contoso.com 追加します。

    $AppId = (Get-MsolServicePrincipal -ServicePrincipalName "00000002-0000-0ff1-ce00-000000000000").AppPrincipalId
    Set-MsolServicePrincipal -AppPrincipalId $AppId -ServicePrincipalNames @("mail.contoso.com")
    

シナリオ 2 - オンプレミス環境とExchange Onlineの間で同期されていないアカウントを使用している

コマンドレットをTest-OAuthConnectivity実行するときは、オンプレミス環境とExchange Onlineの間で同期されているアカウントを使用していることを確認します。 たとえば、オンプレミスの管理者アカウントを使用すると、この問題が発生します。

次の例では、Fred はオンプレミス環境とExchange Onlineの間で同期されるユーザー アカウントです。

Test-OAuthConnectivity -Service EWS -TargetUri https://cas.contoso.com/ews/ -Mailbox "Fred"

詳細

さらにヘルプが必要ですか? 「Microsoft コミュニティ」または「Microsoft Q&A」にアクセスしてください。