在Docker上安装keycloak及简单使用

一、keycloak 是什么

keycloak  是一个开源的、面向现代应用和服务的 IAM(身份认证和访问控制)解决方案。它可以很容易地保护应用程序和服务,而几乎没有代码。

主要功能:

  • SSO

单点登录(Single-Sign On),支持 OpenID Connect、OAuth 2.0、SAML 2.0 标准协议。

  • Identity Brokering and Social Login

通过配置,可实现对不同身份认证服务的集成,通过这些身份认证服务登录应用。如 GitHub、Google 等,开源社区也有人提供了微信集成方案。

  • User Federation

用户联合,提供了对 LDAP、Active Directory、Kerberos 的集成方案。

  • Client Adapters

不同平台多种语言的支持,Java、Python、Go、Node.js、Spring、Quarkus 等。

  • 后台管理

提供了多种语言的后台管理界面,如果想偷懒的话改改图标定制个主题就能拿来用。同时还有 CLI 、SDK 和 RESTful API。

  • 授权服务

提供基于 RBAC、ABAC、UBAC 等多种策略的授权功能。

  • 其他常用功能

密码策略、暴力检测、MFA、日志审计。

二、启动keycloak

开始之前,确保已经安装Docker。

从终端开启 keycloak,命令如下:

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:18.0.0 start-dev

以上命令将启动 Keycloak ,并暴露在本地端口8080上。 该命令还将创建一个带有初始用户名为 admin 和密码为 admin 的用户。

三、应用示例

(1)登录管理控制台

去Keycloak管理控制台并使用之前创建的用户名和密码登录。登录后界面如下:

 图中 1 为地址,2 为 keycloak 管理控制台入口。

(2)创建一个realm

在 keycloak 中,一个 realm 相当于一个租户。它允许创建独立的应用程序和用户组。master 是keycloak 中默认的 realm,master 是专用于管理 keycloak的,不建议用于自己的应用程序。要应用于自己的应用程序时,一般建立一个指定名称的 realm。创建 realm 的步骤如下:

1、打开Keycloak管理控制台。

2、将鼠标移到左上角标有 Master 的下拉框处,在下拉处可以看到 Add realm 按钮,点击该按钮,可以看到如下界面:

3、在右侧 Add realm 界面的 Name 处填写自己相应建立的 realm  的名称,例如: myrealm。

4、点击 Create 按钮创建。

(3)创建一个user

在新创建的 realm 中没有用户,需要先创建一个,创建步骤如下:

1、打开Keycloak管理控制台。

2、点击左侧菜单中的 Users,在弹出的右侧面板中点击 Add user,如下图:

3、在 Add user 面板中,填写类似如下的示例信息:

Username:myuser

First Name:my

Last Name:user

4、点击 Save 按钮。

5、保存成功后,设置初始密码,操作如下:

1、在出现界面点击 Credentials,出现如下界面。

 2、设置密码,设置完后,Temporary 处点击为 OFF。

3、点击 Set Password 按钮完成密码设置。

(4)配置第一个示例应用程序

现在尝试配置第一个应用程序。 第一步是用你的 Keycloak 实例注册一个应用程序,如下:

1、打开Keycloak管理控制台。

2、点击左侧的 Clients,在右侧的弹出界面点击 Create 按钮,得到 Add Client 界面。

3、在 Add Client 界面填写相关信息,示例如下:

Client ID:myclient

Client Protocol: openid-connect

Root URL:Test application - Keycloak

4、点击 Save 按钮。

 

(5)登录示例应用程序

1、打开 Test application - Keycloak 并点击 Save 以实验默认配置。

 2、点击 登录 使用之前启动的 Keycloak 服务器对此应用程序进行身份验证。

如下图:

a、点击 登录。 

b、输入用户名、命名,点击登录。

c、登录界面查看,可以看到类似 Hello, my user 字样。

 

猜你喜欢

转载自blog.csdn.net/youzhouliu/article/details/124883808
今日推荐