401 當您執行 Test-OAuthConnectivity Cmdlet 時發生拒絕存取錯誤
原始 KB 編號: 3090197
徵狀
當您執行 Test-OAuthConnectivity
Cmdlet 來測試使用者的 OAuth 驗證時,作業會失敗,而且您會收到類似下列的訊息:
401 拒絕存取
原因
如果下列其中一個條件成立,就會發生此問題:
- 缺少 OAuth 驗證所需的服務主體名稱 (SPN) 。
- 您正在測試內部部署環境與 Microsoft Exchange Online 之間未同步處理的帳戶。
解決方案
若要修正此問題,請視情況採取下列其中一個動作。
案例 1 - SPN 遺失
注意事項
自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模組已被取代。 若要深入瞭解,請閱讀 淘汰更新。 在此日期之後,這些模組的支援僅限於 Microsoft Graph PowerShell SDK 的移轉協助和安全性修正。 已淘汰的模組會繼續運作到 2025 年 3 月 30 日。
建議您移轉至 Microsoft Graph PowerShell,以與 Microsoft Entra ID (先前的 Azure AD) 互動。 如需常見的移轉問題,請參閱 移轉常見問題。 注意: 1.0.x 版的 MSOnline 可能會在 2024 年 6 月 30 日之後中斷。
開啟 [Exchange 管理命令介面]。
執行下列命令:
Get-IntraOrganizationConfiguration
請注意和 傳回的
OnPremisesDiscoveryEndPoint
OnPremisesWebServiceEndPoint
值。執行下列命令:
(Get-MsolServicePrincipal -ServicePrincipalName "00000002-0000-0ff1-ce00-000000000000").ServicePrincipalNames
檢查是否傳回針對端點列出的功能變數名稱。
如果未傳回功能變數名稱,請使用
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。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應