权限配置
让我们依次解释 Permission 配置页面中的每一项。
Organization
:该策略所属的组织名, 一个组织可以拥有多个权限策略文件。Name
:权限策略名称,在组织中全局唯一。 用于标识该权限策略文件。Display name
:没什么重要的。Model
:描述权限策略结构及其匹配模式的模型文件名称。Adapter
:注意! 在当前版本中该字段描述的是存放权限策略的数据库表名,而非在 Casdoor Web UI 中的 Adapter 菜单项所配置的适配器名称。 Casdoor 会使用其自身的数据库来存放正在配置的权限策略。 如果该字段为空,权限策略将被存储至permission_rule
表中,否则将存储在指定的数据库表中。 如果指定的表名在 Casdoor 所使用的数据库中不存在,将会自动创建。 我们强烈建议为不同模型指定不同的适配器, 因为将所有的策略保存在同一个表格中可能导致冲突。Sub users
:哪些用户将被应用该权限策略。Sub roles
:如果使用了RBAC模型,哪些角色将被应用该权限策略。 这将为该角色中的每一个用户添加诸如g user role
的权限策略。Sub domains
:哪些域将被应用该权限策略。Resource type
:事实上,在当前版本中,对于外部希望鉴权的应用来说,Casdoor 并没有使用该字段。 你可以暂且忽略它。Resources
:这个字段描述了你希望强制实施权限控制的资源。 但请注意,这里的资源并非在 Casdoor Web UI 的 Resources 菜单项中所配置的资源。 你可以在此处添加任何你所希望的字符串,例如一个 URL 或者一个文件名。Actions
:这个字段描述了操作资源的动作。 与资源相同,它可以是任何你所希望的字符串,例如 Http Method 或其他自然语言。 但是请注意,Casdoor 会将这些字符串全部转化成为小写再存储。 另外,Casdoor 将会为每一个资源应用所有的动作。 你无法指定某个动作只对某些资源生效。Effect
:这个选项对于 Casdoor 自身控制应用访问权限生效。 如果你希望外部应用使用 Casdoor 所暴露的接口来强制实施权限控制,它不会起到任何作用。 你应该在 Model 文件中描述模式匹配后的作用。
你可以看到,这个配置页面几乎就是为 (sub, obj, act)
模型量身定制的。