Keycloak 入门

1. 研究 Keycloak 的理由

keycloak 只能看,不能用,因为设计的太麻烦了。 这个网址有详细的说明https://keycloak.redhtc.com/

1.1 Spring 推荐

Spring 不提供认证服务,推荐大家可以用这个试试。

Spring 的oAuth2的演变路径,最初是Spring security oauth,然后Spring cloud中引用这个包进行oauth2的认证服务器,网上好多视频都是基于这个为基础的。 2019 年,Spring 宣布,Spring security oauth将会被废弃,其中的功能分为两部分:

  • 权限认证服务器:Spring Authorization Server
  • 客户端:Spring security oauth2

其实 Spring 刚开始是不想开发Spring Authorization Server,推荐了KeycloakUAA,后来社区里面呼吁,就立项Spring Authorization Server,但是开发进度堪比蜗牛,一年多了,版本还是 0.1.2。文档,例子都没有,看来 Spring 真的是要放弃认证服务器了。

1.2 功能全

红帽子维护,开源,功能全,几乎包含了能想到的所有功能,如果想充分使用起来,至少要看一周的文档。当然实际情况下,只会用到其中 5%的功能。

1.3 参考文档

2 快速安装

下面只给出一个例子,实际项目中,是会不这么操作的。

使用 Docker 进行安装,这里给出了官网的一个例子。实际上的安装要复杂的多,这里就做一个快速开始。

docker run -p 8080:8080 -e KEYCLOAK_USER=admin
-e KEYCLOAK_PASSWORD=admin jboss/keycloak

点击查看管理界面

3. 正式安装

3.1 配置 Mysql

首先要在数据库中创建一个空的数据库

Create Database If Not Exists keycloak;

然后在 docker compose 中生成这个容器

#keycloak
keycloak:
hostname: keycloak
build: ./keycloak
ports:
- 18080:8080
depends_on:
- mysql
restart: always
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: fanhl
DB_VENDOR: mysql
DB_ADDR: mysql
DB_USER: ${DB_USER}
DB_PASSWORD: ${DB_PASS}
DB_DATABASE: keycloak
volumes:
- /etc/localtime:/etc/localtime:ro

3.2 中文配置

选择默认的是中文就可以了。