現象描述
搭建好 SharePoint App 本地開發環境後,打開自訂應用程式彈出帳號密碼輸入框,輸入配置時的帳號卻提示「沒有權限」。
常見原因與解決步驟
- 帳號類型錯誤: SharePoint App 需使用網域帳號 (格式
DOMAIN\user 或 user@domain.com),而非本機帳號或 SQL 登入帳號。
- 權限不足: 該帳號必須具備:
- SharePoint 伺服器陣列管理員權限
- 內容資料庫的
db_owner 權限
- App Management Service 與 Subscription Settings Service 的存取權
- 環境配置缺漏: 參考 Microsoft 官方文檔 設定 SharePoint 2013 的應用程式開發環境,逐項核對:
- 建立隔離應用程式網域 (App Domain)
- 啟動 App Management 与 Subscription Settings 服務
- 配置 DNS 泛域名解析 (如
*.apps.mydomain.com)
- 建立開發人員站點集合
- 迴圈回授 (Loopback Check) 阻擋: 本機瀏覽器訪問本機主機名時被 NTLM 回授檢查攔截。解決:註冊表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\DisableLoopbackCheck = 1 (DWORD) 或使用 BackConnectionHostNames 多值字串加入主機名。
- HTTPS/憑證問題: 若配置 SSL,需確保憑證受信任、主機名匹配、綁定正確端口 (預設 443)。
快速驗證清單
- [ ] 使用
domain\sp_farm 或同等高權限帳號登入
- [ ] 瀏覽器以「以系統管理員身分執行」啟動 (繞過 UAC/Loopback)
- [ ] 清除瀏覽器快取/嘗試無痕模式
- [ ] 檢查 ULS Log (
15\LOGS) 關鍵字 Access denied, AppPrincipal, OAuth
總結
SharePoint App 開發環境極度依賴正確的服務帳號、權限分配與網路隔離配置。建議嚴格遵循 MSDN 官方逐步部署指南,並善用 ULS 日誌定位具體 401/403 錯誤來源。