Keycloak在前几篇文章中,我和大家对Keycloak有了一个大概的了解。随着逐渐的了解,我发现自己进入了一个误区。本来以为SpringSecurity集成Keycloak的重点是SpringSecurity。其实我发现Keycloak针对SpringSecurity的Adapter的几个filter并没有操作的余地,也许你需要等到你了解了Keycloak本身之后才能有所突破。所以我今天想弄清楚的是Keycloak中的Realm。RealmRealm翻译成中文为R??ealm。它用于在逻辑上隔离一些特定的空间。感觉有点多租户。不同Realm相互隔离,各有特色配置,互不影响。什么时候使用Realm当需要隔离一定数量的用户,需要对一系列服务进行统一管理时使用Realm。也许我的描述不够全面,至少目前我能感觉到的是这样。Realm包含我们需要开发一个应用,应用部署域名为felord.cn等核心概念。我们可以通过这种方式定义一个名为felord.cn的Realm来管理应用程序的角色、资源和客户端。客户开发可以专注于业务。整个Keycloak就像一个开放的平台,集中管理Realm的生命周期,这些Realm可以在OIDC协议下互联互通。MasterRealm如果你看过我之前关于Keycloak的文章,你可能还记得,当你第一次启动Keycloak时,你会接触到一个叫做Master的Realm。这是Keycloak的内置领域。它的作用有点类似于Linux中的root用户。它主要管理其他领域。MasterRealm中的管理员帐户有权查看和管理在Keycloak服务器实例上创建的任何其他Realm。而且你会发现,MasterRealm创建的realm其实是MasterRealm的一个client,甚至是自己的client,而且名字后面跟着-realm。你会发现在MasterRealm中创建的用户可以被赋予两个独特的角色:admin超级管理员,拥有管理Keycloak服务器上任何领域的完全访问权限。createrealm使用此角色,您可以创建一个领域并获得对该领域的完全管理权限。推荐使用MasterRealm管理其他Realm,不参与具体业务。别界别界指的是师父所创造的境界。创建其他Realm非常简单,由MasterRealm的管理员创建即可。创建成功后会有一些配置选项,但一般情况下默认配置就足够了。设置Realm管理账户有两种方法可以为我之前初始化的Realmfelord.cn创建一个单独的管理员账户。使用Master用户管理,我们在MasterRealm中创建一个用户,并在其角色映射中去掉admin和create-realm角色,在ClientRoles中选择felord.cn-realm,将客户端的所有角色分配给创建的用户。例如:该用户属于Master用户,但管理felord.cnRealm。您可以通过以下格式的链接执行控制台管理操作:http://
