Keycloak服务器安装和配置

安装地址:https://www.keycloak.org/archive/downloads-4.4.0.html

参考文档:https://www.keycloak.org/docs/latest/server_installation/index.html#guide-overview

 

解压文件:
分发目录结构:

目录解释

  • bin: 包含启动服务和管理操作的脚本
  • domain: 在domain模式下的keycloak的配置文件和工作目录
  • standalone:包含在standalone模式下的keycloak的配置文件和工作目录
    后端类库
  • modules:服务器使用的JAVA库
    前端展示:
  • themes:服务器显示的所有css,img
  • welcome-content:服务器显示的模板和html类文件(实际上使用的是ftl模板)

 

操作模式

Standalone Mode:
Standalone模式仅在您要运行一个且仅运行一个Keycloak服务器实例时才有用。
该模式下无法进群部署,而且无法使用分布式缓存。
如果你的服务器运行失败,用户将无法登陆。建议不要在生产环境下面使用该模式。
模式配置:standalone文件夹下的configuration下的standalone.xml来配置。
目前使用standalone模式进行测试。
Standalone Clustered Mode
独立集群模式可用于集群部署。该模式要求在每个机器拥有keycloak分发的副本。该模式一开始部署非常简单,但在之后可能变得非常麻烦。
模式配置:
该发行版具有大多数预先配置的应用服务器配置文件,用于在群集中运行。它具有网络,数据库,缓存和发现的所有特定基础结构设置。如果在群集中没有配置共享数据库连接,将无法运行。同时你应该部署某种类型的负载均衡器。
配置文件为:standalone-ha
Domain Clustered Mode
域模式是一种集中管理和发布服务器配置的方法。
随着群集规模的扩大,以标准模式运行群集会很快变得更加严重。每次需要进行配置更改时,都要在群集中的每个节点上执行此操作。域模式通过提供存储和发布配置的中心位置来解决此问题。设置起来可能相当复杂,但最终还是值得的。此功能内置于Keycloak派生的WildFly 服务器中。
以下是在域模式下运行的一些基本概念。
域控制器
域控制器是一个负责存储,管理和发布集群中每个节点的常规配置的过程。此过程是集群中节点获取其配置的中心点。主控制器主机控制器负责管理特定计算机上的服务器实例。您将其配置为运行一个或多个服务器实例。域控制器还可以与每台计算机上的主机控制器进行交互以管理群集。为了减少运行进程的数量,域控制器还充当其运行的计算机上的主机控制器。
域名简介
域配置文件是一组命名的配置,可供服务器用于引导。域控制器可以定义不同服务器使用的多个域配置文件。
服务器组
服务器组是服务器的集合。它们作为一个进行管理和配置。您可以将域配置文件分配给服务器组,该组中的每个服务都将使用该域配置文件作为其配置。
在域模式下,域控制器在主节点上启动。群集的配置驻留在域控制器中。接下来,在群集中的每台计算机上启动主机控制器。每个主机控制器部署配置指定将在该计算机上启动的Keycloak服务器实例数。当主机控制器启动时,它会启动与配置完成时一样多的Keycloak服务器实例。这些服务器实例从域控制器中提取其配置。
Cross-Datacenter Replication Mode

standalone模式下集成MYSQL

1.创建keycloak数据库
2.在keycloak目录,创建红色路径 ..\keycloak 4.4.0.Final\modules\system\layers\base\com\mysql\main
3.下载MySQL 驱动并复制到上面路径
4.添加Module.xml文件在该目录下
<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.3" name="com.mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.40.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>

  

5.修改standalone.xml文件:
找到: <subsystem xmlns="urn:jboss:domain:datasources:5.0">

添加DataSource:

<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" use-java-context="true">
                        <connection-url>jdbc:mysql://localhost:3306/keycloak?useSSL=false&tcpRcvBuf=102400000</connection-url>
                        <driver-class>com.mysql.jdbc.Driver</driver-class>    
                        <driver>mysql</driver>
                        <security>
                            <user-name>root</user-name>
                            <password>root</password>
                        </security>
</datasource>
<drivers>
                    <driver name="mysql" module="com.mysql">
                    <!-- <driver-class>com.mysql.jdbc.Driver</driver-class>     -->
                        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                    </driver>

</drivers>

  在/bin目录下启动standalone.bat。

 
posted @ 2019-01-17 15:21  吃土豆鸭  阅读(4453)  评论(1编辑  收藏  举报