跳至主要內容

定義組織管理功能

在設計你的組織使用體驗前,請先列出你的多租戶應用程式的關鍵需求。本章將重點說明塑造該體驗時需考慮的幾個要素。

定義組織內的存取控制

在此情境下,租戶內的組織管理員可以更新使用者角色,而一般成員則無法。(相較之下,建立組織是任何終端使用者都能在 SaaS 多租戶應用程式中執行的系統層級操作。)為支援這種細緻的存取控制,請定義組織權限與角色,確保只有管理員能在組織內更新角色。

備註:

參考 組織範本 (Organization template) 以深入瞭解組織角色與權限。

admin 角色擁有組織內所有資源的完整存取權,而 member 角色則有受限的存取權。例如,各角色可擁有如下權限:

  • admin 角色:
    • read:data - 讀取所有組織資料資源的權限。
    • write:data - 寫入所有組織資料資源的權限。
    • delete:data - 刪除所有組織資料資源的權限。
    • invite:member - 邀請成員加入組織。
    • manage:member - 管理組織內的成員。
    • delete:member - 移除組織成員。
  • member 角色:
    • read:data - 讀取所有組織資料資源的權限。
    • write:data - 寫入所有組織資料資源的權限。
    • invite:member - 邀請成員加入組織。

你可以在 Logto Console 輕鬆完成這些設定。設置存取控制是組織(多租戶)架構的關鍵部分。

讓使用者自主管理其組織

你的應用程式可能還需要多種管理功能。建議使用 Logto Management API 來實作這些功能。以下列出常見功能及相關 API 端點。下一章將逐步說明如何實作。

允許管理員與成員邀請他人

管理員與成員皆可邀請他人加入組織。詳情請參閱 邀請組織成員

管理員可修改成員角色

管理員可以修改其他成員的角色,也能為組織建立更細緻的角色,例如部門主管、專案經理、協調者等。可透過以下 Management API 實作:

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/{userId}/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"organizationRoleIds":["admin"]}'

或批次操作:

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userIds":["userId1", "userId2"],"organizationRoleIds":["admin"]}'

新增機器人至組織

你也可以允許管理員將機器人新增至特定組織。請先建立機器對機器(M2M, Machine-to-Machine)應用程式,再將這些 M2M 應用程式作為機器人加入組織。

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botAppId"]}'

接著你也可以為這些機器人指派組織角色。

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botApp1"],"organizationRoleIds":["botRoleId"]}'