FME服務器鏈接運行時錯誤(由於缺少適當的權限,用戶未授權的請求)
問題
我有一個包含Web或數據庫鏈接的工作空間,當我嘗試在FME Server上運行此工作空間時,運行失敗並且在日誌中看到錯誤消息:
Unauthorized request by user due to lack of proper permissions
原因
此錯誤表明用於提交要運行的工作空間的用戶或令牌尚未被授予對工作空間內使用的鏈接的訪問權限。有許多原因可能導致您遇到此問題。
備份與還原
您對舊版本的FME服務器執行了備份和還原,權限分配不正確。由於安全性方面的改進,如果您要從以前的任何版本遷移到FME Server 2020或更高版本,請查看本文以獲取更多信息。
Webhook或服務器應用程序令牌
如果創建一個Webhook或Server App,其中的鏈接信息未存儲爲發佈參數,則FME不會提示您分配這些權限。相反,您必須在創建令牌後編輯令牌。有關更多說明,請參閱本文中“ API令牌權限”標題下的內容。
鏈接不可用
如果其他用戶與您共享了此工作空間,則他們還需要共享使用的特定鏈接,否則您將沒有正確的權限。
如果您擁有工作空間,但鏈接不可用,則可能在發佈過程中忘記將其包含在工作空間中。
未經授權的訪問
如果您沒有訪問該鏈接的權限,但是您知道存儲該鏈接的名稱,請嘗試手動訪問該鏈接,例如手動鍵入該鏈接的名稱。
解析
您需要確保提交工作空間的用戶帳戶或API令牌對該工作空間中使用的鏈接具有訪問權限。
用戶權限(運行工作空間/計劃/自動化)
首先,您可以執行快速檢查以確認問題是因爲您的用戶帳戶沒有訪問鏈接的權限,方法是轉到“文件和鏈接”下的相應Web或數據庫頁,並查看是否列出了該鏈接。如果已列出,請聯繫safe技術支持以獲取進一步的幫助。如果沒有(或者您沒有訪問此頁的權限進行檢查),則可以使用一系列選項來設置此設置。
向管理員請求訪問權限
您可以按照以下說明要求具有管理員權限的用戶提供對Web鏈接的訪問權限。
- 轉到管理>用戶管理>用戶
- 找到您的用戶帳戶,然後單擊以編輯權限
- 在“權限”窗口下,找到“鏈接項”,然後選擇下拉箭頭“查看更多權限”
- 從列表中找到您的工作空間中正在使用的鏈接,選中該特定鏈接的“訪問”框
- 選擇確定以保存更改
要求管理員定義您的用戶權限
請求工作空間所有者共享
如果工作空間是由另一個用戶擁有並與您進行共享的,則需要讓他們共享此鏈接。
- 轉到“文件和鏈接”下的相應Web或數據庫頁面
- 點擊“與他人共享”按鈕
- 查找您的用戶名並授予“完全訪問”權限,然後選擇“確定”
要求其他用戶與您共享他們的鏈接的步驟
創建一個新的鏈接
如果工作空間是由其他用戶提供的,則他們可能希望您創建自己的鏈接,以便在與您自己的訪問憑據綁定的工作空間中使用。
從FME Server Web UI創建新鏈接
發佈鏈接
如果您擁有工作空間,但鏈接不可用,則您可能選擇不在發佈過程中包含該鏈接。
- 返回到FME Workbench,然後選擇“發佈到FME服務器”
- 在發佈嚮導的“上傳鏈接”頁面上,確保選中此工作空間中使用的鏈接複選框
將工作空間發佈到FME Server時上載鏈接
或者,您可以按照上一節中的步驟在FME Server上重新創建鏈接。
API令牌權限(服務器應用程序/ Webhook / Rest API)
如果創建Server App,或使用Webhook或Rest API請求將工作空間設置爲通過第三方Web應用程序運行,則必須創建一個令牌以提供對工作空間及其組件的訪問。
用戶是令牌所有者
- 單擊右上角的用戶設置圖標,然後選擇“管理令牌”。
- 在“ API令牌”下,找到用於您的工作空間的令牌,然後單擊它進行編輯
- 在“權限”窗口下,找到“鏈接項”,然後選擇下拉箭頭“查看更多權限”
- 從列表中找到您的工作空間中正在使用的鏈接,選中該特定鏈接的“訪問”框
- 選擇確定以保存更改
將訪問權限分配給API令牌
用戶不是令牌所有者
- 單擊右上角的用戶設置圖標,然後選擇“管理令牌”。
- 轉到“所有令牌”頁面
- 找到令牌並單擊它
- 頁面頂部將顯示一個橫幅,告訴您誰擁有此令牌。請與他們聯繫,並請他們按照上面部分中的步驟1-4進行操作。
查找API令牌的所有者