[Keycloak] 初探Keycloak

玩起来有点像是以前碰过的IdentityService

不需要自己实现验证/授权相关的实做逻辑,交给他就行了!

不过 Keycloak 跟 IdentityService 不同的是他不需要依附在.net身上

作为一个独立的服务,并且提供更完整的功能

这篇主要会把官方的介绍,浓缩一些认为重要的内容带进来

以及照着官方的练习跟着实做

功能

keycloak的重点在身份验证和授权,所以相关功能肯定有的

  • 单一登入
    • 透过keycloak进行身份验证,各个应用程式不用各自处理登入/登出跟验证服务
  • 社交网站登入
    • 例如 Google、Facebook,只有想不到没有做不到
  • User Federation
    • 将外部数据视为Keycloak的储存后端,依照需求载入或是同步到Keycloak
  • 支持 OpenID Connect、OAuth 2.0、SAML

也提供了强大UI后台,免除自己刻画面或是直接动资料的困扰

  • Admin UI
    • 强大的UI工具,可以管理keycloak大多数的设定

名词

先认识一下名词,事后在操作才不会误会

Keycloak中,最大的单位是 Realm,用来区分不同的领域(租户),各自隔离且独立

每个 Realm 底下可以有各自的:

  • Client 应用程式
  • User 使用者

Keycloak

首先最重要的步骤,先把Keycloak run 起来,我选择用 podman 执行一个容器

getting-started-podman

Podman

podman run -p 8080:8080 -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:26.1.0 start-dev
  • 指定 port 8080
  • 指定 admin 的帐密
  • 使用版本 26.1.0

执行后开启 localhost:8080,用 admin 登入

admin登入后,会提示应该要建立自己的使用者帐号,并且移除admin这个帐号

新增一个 user,并且设定Password(Credentials)和权限给他(Role mapping)

这边要注意,左上角的 filter 要选择 Filter by realm roles 才有admin相关的权限

新增后就可以尝试登入,确认权限没问题后,就可以把admin给移除了

接着回到realm,预设会有一个 Realm Master,根据的官方描述,

Master 是用来管理Keycloak的地方,不是用来管理应用程式

所以我们要新增一个用来管理应用程式的realm

Realm

左上角的 master 点开,就有一个 Create Realm

新增一个 realm MyRealm

我希望可以透过应用程式访问 Keycloak

所以分别要建立 ClientUser

Client

新增一个client MyClient

Client Type选择 OpenID Connect

启用 Standard flowDirect access grants,建立

(后面测试的需要,Valid redirect URIs 需要设定为 https://www.keycloak.org/app/*

User

现在有Client了,但是没有使用者,接着新增User

新增一个 user MyUser

Test

接着可以在Keyclock的测试网站测试登入能不能成功

https://www.keycloak.org/app/

参考资料

Keycloak

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章