針對 Azure Digital Twins 失敗的服務要求進行疑難排解:錯誤 403 (禁止)
本文說明對 Azure Digital Twins 提出的服務要求發生 403 錯誤的原因和解決步驟。 本資訊是針對 Azure Digital Twins 服務。
徵兆
許多需要向 Azure Digital Twins 驗證的服務要求類型都可能發生此錯誤。 效果是 API 要求失敗,並傳回 403 (Forbidden)
的錯誤狀態。
原因
原因 #1
通常會在 Azure Digital Twins 中收到此錯誤,表示該服務的 Azure 角色型存取控制 (Azure RBAC) 權限設定不正確。 Azure Digital Twins 執行個體的許多動作都需要您在嘗試管理的執行個體上具備 Azure Digital Twins 資料擁有者角色。
原因 #2
如果您使用用戶端應用程式來與向應用程式註冊進行驗證的 Azure Digital Twins 進行通訊,可能會發生此錯誤,因為您的應用程式註冊沒有為 Azure Digital Twins 服務設定的權限。
應用程式註冊必須具有為 Azure Digital Twins API 設定的存取權限。 然後,當您的用戶端應用程式針對應用程式註冊進行驗證時,將會獲得應用程式註冊已設定的權限。
方案
解決方案 #1
第一個解決方案是確認 Azure 使用者在您嘗試管理的執行個體上具有 Azure Digital Twins 資料擁有者角色。 如果您沒有此角色,請進行設定。
此角色不同於...
- 預覽期間此角色的先前名稱,Azure Digital Twins 擁有者 (預覽)。 在此情況下,角色相同,但名稱已變更。
- 整個 Azure 訂用帳戶上的擁有者角色。 Azure Digital Twins 資料擁有者是 Azure Digital Twins 內的角色,並限定於此個別的 Azure Digital Twins 執行個體。
- Azure Digital Twins 中的擁有者角色。 這些是兩個不同的 Azure Digital Twins 管理角色,而 Azure Digital Twins 資料擁有者是應該用於管理的角色。
檢查目前的設定
檢查您是否已成功設定角色指派的其中一種方式,就是在 Azure 入口網站中檢視 Azure Digital Twins 執行個體的角色指派。 在 Azure 入口網站中,移至 Azure 數位對應項執行個體。 若要前往該處,您可以在 Azure Digital Twins 執行個體的頁面上查閱,或在入口網站搜尋列中搜尋其名稱。
然後,在 [存取控制] (IAM) > [角色指派] 下檢視其所有指派的角色。 您的角色指派應該會出現在清單中。
修正問題
如果您沒有此角色指派,則您 Azure 訂用帳戶中具有擁有者角色的人員應該執行下列命令,讓您的 Azure 使用者在 Azure Digital Twins 執行個體上具有 Azure Digital Twins 資料擁有者角色。
如果您是訂用帳戶的擁有者,可以自行執行此命令。 如果您不是,請連絡擁有者代表您執行此命令。
az dt role-assignment create --dt-name <your-Azure-Digital-Twins-instance> --assignee "<your-Azure-AD-email>" --role "Azure Digital Twins Data Owner"
如需關於此角色需求和指派流程的詳細資訊,請參閱設定使用者的存取權限。
如果您已經有此角色指派,而且正在使用 Microsoft Entra 應用程式註冊來驗證用戶端應用程式,則若此解決方案未解決 403 問題,您可以繼續下一個解決方案。
解決方案 #2
如果您使用 Microsoft Entra 應用程式註冊來驗證用戶端應用程式,則第二個可能的解決方案是確認應用程式註冊具有為 Azure Digital Twins 服務設定的權限。 如果未設定這些項目,請加以設定。
檢查目前的設定
若要檢查權限是否已正確設定,請瀏覽至 Azure 入口網站中的 Microsoft Entra 應用程式註冊概觀頁面。 您可以在入口網站搜尋列中搜尋應用程式註冊,以自行前往此頁面。
切換至 [所有應用程式] 索引標籤,查看已在訂用帳戶中建立的所有應用程式註冊。
您應該會看到您在清單中建立的應用程式註冊。 選取該應用程式註冊以開啟其詳細資料。
首先,確認已在註冊上正確設定 Azure Digital Twins 權限設定:從功能表欄選取 [資訊清單],以檢視應用程式註冊的資訊清單程式碼。 捲動至程式碼視窗底部,並在 requiredResourceAccess
下尋找這些欄位。 這些值應該符合下列螢幕擷取畫面中的值:
接下來,從功能表列選取 [API 權限],以確認此應用程式註冊包含 Azure Digital Twins 的讀取/寫入權限。 您應該會看到如下的項目:
修正問題
如果其中任何一項與描述不同,請遵循如何在使用 Azure Digital Twins 存取權建立應用程式註冊中設定應用程式註冊的指示。
下一步
閱讀建立和驗證新 Azure Digital Twins 執行個體的設定步驟:
深入了解 Azure Digital Twins 的安全性和權限: