Linux安装KeyCloak

本文详细介绍KeyCloak的安装及配置过程,包括如何切换到MySQL数据库、初始化管理员用户等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

最近工作中需要用KeyCloak作为中间件来进行钉钉和公司开发的内部应用进行单点登录操作,KeyCloak作为这方面的开源软件,是我的首选,本文记录一下我安装KeyCloak的全过程。


一、KeyCloak是什么?

keycloak是基于OAuth2.0的第三方验证和授权系统,提高了我们系统安全开发方面的效率。

二、使用步骤

1.下载安装包

下载安装包:

wget https://downloads.jboss.org/keycloak/4.5.0.Final/keycloak-4.5.0.Final.tar.gz

解压:

tar -zxvf keycloak-4.5.0.Final.tar.gz

2.切换数据库

Keycloak默认使用嵌入式关系数据库H2,真实生产环境肯定是不符合要求的,在其官方文档中有这么一段话

We highly recommend that you replace it with a more production ready external database. The H2 database is not very viable in high concurrency situations and should not be used in a cluster either.

说明官方也是推荐使用外部数据库作为生产环境。

2.1 下载JDBC

可从官方或maven中直接下载获取。本次使用mysql-connector-java-8.0.13.jar

2.2 将驱动打包放入Keycloak的classpath中

2.2.1 配置jar包配置文件

在路径keycloak-4.5.0.Final\modules\system\layers\keycloak下新建目录com\mysql\main,并将下载的Jar放入此目录。目录名称可随意修改,不过官方推荐使用包路径作为目录。

2.2.2 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.13.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

其中name应为包名,后文配置数据源过程中会用到此name。dependencies包含可能会用到的依赖项。

2.3 配置standalone.xml

2.3.1配置文件中声明使用的JDBC驱动

位置在keycloak-4.5.0.Final\standalone\configuration。若为集群模式编辑standalone-ha.xml。寻找drivers标签,默认有一个h2数据库的配置,我们要在同级增加一个mysql的配置。

内容如下:

<driver name="mysql" module="com.mysql">
    <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
</driver>

module即为之前module.xml中定义的name,此处的name为driver的名称,在接下来的数据源配置中会使用到。
此处注意,xa-datasource-class的路径可能会随着JDBC版本变化而变化,可从jar包中寻找到正确的路径。

2.3.2 修改数据源设置以使用新的JDBC驱动

向上寻找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>

driver处对应上面定义driver标签中的name。其余部分为基本含义,根据实际情况配置即可。

3.初始化keycloak管理员用户

keycloak-4.5.0.Final/bin/add-user-keycloak.sh -r master -u admin -p admin

默认管理员账号:admin 密码:admin。后续可修改。

4.创建数据库

首次运行前,需要提前创建数据库;

CREATE database keycloak DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;

5.启动

启动keycloak,并修改默认段,默认端口上增加100

./bin/standalone.sh -Djboss.socket.binding.port-offset=100

此过程会耗时很久,有资料说会报错,但是我没遇到。
启动成功后,查看数据库,会发现keycloak数据库中增加了几十张表。表示启动成功。

6.浏览

打开http://{服务器IP}:{端口号}/auth/
展示图片若显示本页面,说明安装成功,点击Administration Console进入登录页;
在这里插入图片描述输入第三步初始化的账号密码即可进入。
在这里插入图片描述


总结

本次安装全部介绍完毕。完结撒花。如果在安装过程中遇到问题可以留言,我们共同进步。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值