本系列文之後也会置於个人网站
在帐号系统下,除了帐号本身与帐号群组外,通常还存在一个非常重要的部分--角色(Role),更有基於角色的存取授权方式(RBAC)。
写到有点累了,没意外的话之後是会提到RBAC
帐号如果代表一个人,这个人可能有多个角色身份。可能是个老师、主任、校长;可能是爸妈、叔姨;可能是员工、部长、处长、老板,且可能有一群人拥有同一种角色。角色和帐号群组有点像,但在Keycloak是两个概念。除此之外,在Keycloak还分成两类型角色-- Realm Roles 和 Client Roles 。
首先,你可以建立Realm共用的角色,像是员工、老板等等较爲通用的角色。
点选在 Realm 选单下的 Roles ,然後再点选 Add Role :
然後设定 Role Name 爲 employee
, 接着按下储存就大功告成。
不同应用可能需要不同的角色。已常见的内容管理系统(文章管理系统)来说,可能有以下角色:
不同情况可能需要不同角色,以最近在社群媒体有点讨论度的喜剧表演来说,可能就分有 表演者 、 写手 等几角色。或是在同一家公司内,不同专案内,可能一个人在一个专案内是专案经理,但在另一个专案是专案成员。
要建立 Client Roles 也很简单,先到 Client 相关设定页面,找到 Roles 页签,点选 Add Role:
与建立 Realm Role 相同,先简单建立一个Reader就好。
要使帐号拥有某个角色,只需要到帐号设定相关页面,选择「Role Mappings」页签。
在 Realm Roles 旁边的 Available Roles 选取区块内选择 employee ,点选 Add selected 加入到 Assigned Roles。
要指定 Client Roles 也同样。在 Client Roles 旁边的 Available Roles 选取区块内选择 Reader ,点选 Add selected 加入到 Assigned Roles。
现在,在角色设定相关页面的「User in Role」页签页面,可以看到方才加入的帐号。
你同样可以在帐号群组页面做相似设定。当帐号加入特定帐号群组後就自动会拥有帐号群组设定的角色。现在可以一样将employee
和Reader
指定给Group A
。
Bob 已经是 Group A 群组成员。回到Bob帐号相关设定页面,将相关的角色移除(选择相关角色後,点选「Remove selected」)。会发现生效的角色 (Effective Roles) 仍然存在指定给Group A的角色。
下一篇会来说一下JWT格式的Token,然後谈谈Open-Id。到时与OAuth相关弯概念议题也就全部结束。
会不会进到存取控制概念,还是直接进入实战篇...容我在犹豫一下wwww
与帐号属性(User Attribute)和群组属性(Group Attribute)一样,角色同样可以设定角色属性(Role Attribute)。设定方法类似,但目前没有简单的方式可以使用,所以也就先在这里提提而已。
NSubstitute 基本语法前言 今天的文章主要参考於 NSubstitute官方网站,正所谓工...
GnuPG (简称 GPG),允许作者对资料与通信进行加密与签章。你可以在本地端使用 GPG 对 C...
职场好榜样F大 F 对我来说是设计的前辈,在他入职後,我才有在设计上有比较大幅度的进步 不过在他身...
故事简述 核二厂2号机於2021/7/27清晨6时32分发生反应炉急停事件,初步调查为人为疏失 原能...
这礼拜进度缓慢了下来,还在跟第六周的切版作业奋斗。到这边才慢慢找到自己切版比较顺的流程 RWD 一开...