目录
官网地址
下载地址:https://www.keycloak.org/downloads
系统要求
这些是运行 Keycloak 身份验证服务器的要求:
-
可以在任何运行 Java 的操作系统上运行
-
Java 8 JDK
-
zip 或 gzip 和 tar
-
至少 512M 的 RAM
-
至少 1G 的磁盘空间
-
一个共享的外部数据库,如 PostgreSQL、MySQL、Oracle 等。如果你想在集群中运行,Keycloak 需要一个外部共享数据库。安装步骤
安装步骤
示例说明:系统采用腾讯云服务器的centos系统,数据库采用MySQL
- 将下载好的包上传到服务器解压,我下载的是 keycloak-15.0.2.tar.gz 解压命令
-
tar -zxvf keycloak-15.0.2.tar.gz
- 下载连接数据库的驱动,我这边用的是mysql 8.0.16所以需要下载驱动包 mysql-connector-java-8.0.26.jar 下载链接:https://search.maven.org/search?q=g:mysql%20AND%20a:mysql-connector-java
- 下载后,进入刚刚解压的文件夹,进入目录,命令如下
-
cd keycloak-15.0.2/modules/system/layers/keycloak/com
- 在此目录创建文件夹 mysql/main
-
mkdir -p mysql/main
- 在文件夹main下面创建以下2个文件
- mysql-connector-java-8.0.26.jar 上传上去即可
- module.xml 里面的内容如下
-
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.3" name="com.mysql"> <resources> <resource-root path="mysql-connector-java-8.0.26.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
修改数据源设置以使用新的JDBC驱动
-
在自己的mysql数据库中创建数据库
-
CREATE database keycloak DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
-
进入目录 keycloak-15.0.2/standalone/configuration 更改文件standalone.xml
-
寻找drivers标签,默认有一个h2数据库的配置,我们要在同级增加一个mysql的配置。驱动类查看自己版本的数据库对应的类
-
<driver name="mysql" module="com.mysql"> <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class> </driver>
寻找datasources标签,默认此处有两项datasource,我们注释掉名称为KeycloakDS的数据源,并加上mysql的。注意不要把ExampleDS也注释掉,启动会报错的。
-
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true"> <connection-url>jdbc:mysql://localhost:3306/keycloak</connection-url> <driver>mysql</driver> <pool> <max-pool-size>20</max-pool-size> </pool> <security> <user-name>root</user-name> <password>123456</password> </security> </datasource>
-
初始化keycloak管理员用户
- 进入keycloak-15.0.2/bin目录
-
./add-user-keycloak.sh -r master -u admin -p admin
-
启动Keycloak
-
./standalone.sh -Djboss.socket.binding.port-offset=100 -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0 后台启动 nohup ./standalone.sh -Djboss.socket.binding.port-offset=100 -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0 &
- -Djboss.socket.binding.port-offset 在默认端口加100 既原8080 >>8180
- -Djboss.bind.address 绑定启动服务器IP,默认为127.0.0.1,都是127是只能内部网络能访问,所以得改成 0.0.0.0
- -Djboss.bind.address.management 绑定启动服务器IP,默认为127.0.0.1,都是127是只能内部网络能访问,所以得改成 0.0.0.0
- 启动完成后,访问 http://xxxx:8180/auth/
点击这个,要是跳转页面显示 http required...什么的,在创建的数据库执行语句
update REALM set ssl_required='NONE' where id = 'master';
输入admin/admin即可登录了,需要中文页面的话,可以进行汉化