リソースベースのアクセス権システム-API設計
1939 ワード
概要
権限システムは他のシステムと統合する必要があるため,良好なAPIは使いやすさの保証である.
ここでは権限関連のコアAPIのみを設計し,ユーザ,組織,インポートエクスポートなどの後続を逐次補完する.
API設計
権限をめぐるAPIには、次の4種類があります.
権限
UpdatePermission(userID, resourceID, action) error // userID resouceID action
UpdatePermission(orgID, resouceID, action) error // orgID resouceID action
UpdatePermissions(userIDList, resourceIDList, actionList) error
UpdatePermissions(orgIDList, resouceIDList, actionList) error
アクセス権の確認
ユーザー/組織に権限があるかどうかを確認します.
CheckPermission(userID, resourceID, action) bool // userID resouceID action
CheckPermission(orgID, resouceID, action) bool // orgID resouceID action
クエリー権限
Permissionがパーミッション・データの構造であるユーザー/組織のパーミッション・データを問合せます.
GetPermissions(userID) ([]Permission, error) // userID
GetPermissions(orgID) ([]Permission, error) // orgID
権限の削除
ユーザー/組織の権限データの削除
DeletePermission(userID, resourceID, action) // userID resouceID action
DeletePermission(orgID, resouceID, action) // orgID resouceID action
まとめ
全体の権限システムは以上のいくつかのAPIだけでは足りないに違いないが、他のAPIは通常のユーザー/組織、リソース、動作などのCURDであり、ここでは一つ一つリストしない.