次の方法で共有


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」を参照してください。 注: MSOnline のバージョン 1.0.x では、2024 年 6 月 30 日以降に中断が発生する可能性があります。

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

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

    Get-IntraOrganizationConfiguration
    

    OnPremisesDiscoveryEndPointOnPremisesWebServiceEndPointに返される値に注目してください。

  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」にアクセスしてください。