401 當您執行 Test-OAuthConnectivity Cmdlet 時發生拒絕存取錯誤

原始 KB 編號: 3090197

徵狀

當您執行 Test-OAuthConnectivity Cmdlet 來測試使用者的 OAuth 驗證時,作業會失敗,而且您會收到類似下列的訊息:

401 拒絕存取

原因

如果下列其中一個條件成立,就會發生此問題:

  • 缺少 OAuth 驗證所需的服務主體名稱 (SPN) 。
  • 您正在測試內部部署環境與Microsoft Exchange Online之間未同步處理的帳戶。

解決方案

若要修正此問題,請視情況採取下列其中一個動作。

案例 1 - SPN 遺失

  1. 開啟 [Exchange 管理命令介面]。

  2. 執行下列命令:

    Get-IntraOrganizationConfiguration
    

    請注意和 傳回的 OnPremisesDiscoveryEndPointOnPremisesWebServiceEndPoint 值。

  3. 執行下列命令:

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

    檢查是否傳回針對端點列出的功能變數名稱。

  4. 如果未傳回功能變數名稱,請使用 Set-MsolServicePrincipal Cmdlet 來新增它們。

    例如,下列命令會新增 網 mail.contoso.com 域。

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

案例 2 - 您使用的帳戶未在內部部署環境與Exchange Online之間進行同步處理

當您執行 Cmdlet Test-OAuthConnectivity 時,請確定您使用的帳戶已在內部部署環境與Exchange Online之間進行同步處理。 例如,如果您使用內部部署系統管理員帳戶,就會遇到此問題。

在下列範例中,Fred是內部部署環境與Exchange Online之間同步處理的使用者帳戶。

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

其他相關資訊

是否仍需要協助? 移至 Microsoft 社群Microsoft Q & A