定義組織管理功能
在設計你的組織使用體驗前,請先列出你的多租戶應用程式的關鍵需求。本章將重點說明塑造該體驗時需考慮的幾個要素。
定義組織內的存取控制
在此情境下,租戶內的組織管理員可以更新使用者角色,而一般成員則無法。(相較之下,建立組織是任何終端使用者都能在 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"]}'