casdoor 默认组织built-in,在此组织下,创建所有用户都是admin管理权限,所以不适合在默认组织管理用户权限。
目录
1,创建一个系统默认应用
主要用来用户登录的默认应用,不需要复杂配置,直接用自身系统名称:casdoor。

以上已经了创建多个应用,主要还是casdoor作为用户和组织的默认应用。
2,创建新组织群组用户
用户管理 >> 组织
创建新组织,ex:company。其他随意配置。
默认应用 选择 casdoor :登录界面也是这个应用的界面。
在组织下面,创建了3个群组: 产品,开发,测试
每个群组,创建测试用户:pm01,dev01,test01
用户 默认应用 也选择 casdoor 。

3,权限配置
需求:按 群组 授予不同的应用权限。
ex:
产品组,允许访问 casdoor,confluence,zentao
测试组,允许访问 casdoor,zentao
开发组,允许访问 casdoor,gitlab,Jenkins,confluence
Casbin权限管理 >> 角色
为每个群组配置一个角色,这里3组对应3个角色。

Casbin权限管理 >> Casbin模型
为角色分配权限,必须要模型,创建的新组织,没有默认的模型。
可以直接复制一份原来默认组织的user-model-built-in模型,然后创建新模型:base-model,组织选新组织company
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[role_definition]
g = _, _
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act

Casbin权限管理 >> 权限
最重要的权限配置,也是很坑的配置。
创建权限时,模型:选择刚才创建的 base-model,然后才可以选择角色。
只需要选择角色,其他群组,用户保持空即可,否则容易造成权限混乱。
注:
1:每个资源应用,只能出现在一个权限策略里面,不能出现在多条权限里,否则出现应该权限失效或异常。
2 :根据第1条,策略应该是根据应用分配角色,而不是根据角色分配应用。
错误的权限策略例子:

以上根据角色分配应用,多个应用重复在多个策略,最后导致:gitlab不可见,casdoor 作为默认应用,还会导致用户无法登录。
正确的策略配置:

每个应用创建单独的策略,当然也可以将多个应用创建同一个策略,只要和其他策略不重复应用即可。
这里每个应用单独创建,更细化,然后将对应的 角色 加入每个策略即可生效。


创建完成后,用创建好的用户登录即可看见对应的应用权限。
打赏作者