Day23 - 【概念篇】Keycloak使用基本概念 - 第一部分: Realm

本系列文之後也会置於个人网站


Realm,中文或许会翻作「域」,但基本很像是程序开发上,语言层面提供的包(package)或是命名空间(namespace)。或者可能可以更贴切的说是工作空间(workspace)。

你可以想象就像是一个企业、部门或是其他组织。有着相同的一些规范,同事们在同样地工作空间生活、工作。但不同的企业、部门或是其他组织,可能会有类似的规范,但两者不互相影响。

会特别有这个概念,是因爲Keycloak是可以建立多个Realm的。也就是,在同一间公司内,不同部门都可以有自己的Realm,制定部门自己的管理规范。或是特别爲外部客户建立一个Realm,并制定特殊规范。

不同的Realm内,有着自己的帐号系统、密码规范政策等。利用这个特性,之後也会用来更清楚的理解Open-Id。

你也可以同样简单视爲一个帐号资料库、身份验证服务器。特别的是在会话成立期间,可以不需要再进行一次验证,而这部分,会在提到Client时在多做说明。

如何建立一个Realm

要建立一个Realm是非常简单。在之前也建立过「quick-start」这个Realm。也几乎就只需要给个名字而已。

本系列会使用到的相关设定

接着会提到一些在这个系列上会使用的设定。虽然绝大部分都会维持预设值,但多少都是与身份验证与授权相关的。

Realm Token相关设定

需要留意的几个会是Session IdleSession MaxLifespan相关的设定。这些会关乎到存取权限有效期限有多长、一次登入会话可以保留多长时间。换句话说,多久後需要更新存取权杖、多久後需要重新登入。

举个例子:
1. 将SSO Session Idle 改爲1分钟。
2. 然後使用「快速开始」登入以後,就将快速开始的页面关掉。
3. 接着等待个一分钟。(建议再多等一下)
4. 之後重新打开「快速开始」的应用页面,再做一次登入动作。会发现需要在输入一次帐号密码。

再举个例子:

1. 将SSO Session Max 改爲5分钟。
2. 然後使用「快速开始」登入。
3. 接着等待个五分钟後。(建议再多等一下)
4. 再一次点击登入按钮,会发现同样需要在输入一次帐号密码。

你或许会注意到相关的设定还有一组与Remember Me有关的。但是我们登入画面上并没有Remember Me的选项可以勾选,关於这点可以在Login页签开啓。在预设值的情况下,就意味者允许用户的会话长期保留,而无需再次登入。像这种政策决策,可能会受到部门政策、应用安全性考量而有些不同。有些的记住我可能最多也就保留30天而已。

Security Defenses相关设定

然後是关於安全性的设定。这部分会设置一些response时的Headers属性。

这部分在本系列会有一些调整,但如果不熟悉相关issue,建议同样维持预设值。此外,Client Registration和UAM实际也与OAuth有关,但大概是没机会多提到了。总之一些还颇爲重要的设定都是在Realm下。

关於 Master Realm

Keycloak可以建立多个Realm,但其中一个预设的Realm有一点那麽特别--Master。这可以说是在管理Keycloak本身,而我们用以建立Realm的帐号同样在这个Realm底下。

你可以注意到,当我们要使用Administration Console时,登入的就是这一个Realm。


<<:  # Day24--开分支免费啦!超简易开分支的方法

>>:  [DAY 24]Embed功能

Day12-"二维阵列"

阵列若具有两个索引称为二维阵列,若有三个则是称为三维阵列。二维阵列就像是数学中的矩阵,我们可以把第一...

grep简介

grep grep(Global search a Regular Expression and P...

day5: CSS style 规划 CSS module (global CSS, CSS module)

在 react 当中有提供了不同的 css 方法,除了常见的 css in css 外, 另外现在前...

Day7 认识Components与 Props

Components基本定义 Components是react组成的最基本元素,每一个Compont...

33岁转职者的前端笔记-DAY 20 Javascript 基本知识笔记

写Javascript前必要小知识 1.<!DOCTYPE html> 为 HTML 5...