试穿Keycloak
本指南可帮助您在生产环境中使用Keycloak之前练习使用Keycloak对其进行评估。 它包括在独立模式下安装Keycloak服务器、创建用于管理用户和应用程序的帐户和领域以及保护WildFly服务器应用程序的说明。
安装Keycloak的示例实例
本节介绍如何以独立模式安装和启动Keycloak服务器、设置初始管理员用户以及登录Keycloak管理控制台。
安装服务器
您可以在Linux或Windows上安装服务器。 服务器下载ZIP文件包含运行Keycloak服务器的脚本和二进制文件。
-
下载keycloak-15.0.2。[zip | tar.gz]来自Keycloak下载。
-
将文件放在您选择的目录中。
-
使用适当的
解压缩
实用程序,如解压缩、tar或Expand-Archive。Linux/Unix$ 解压缩keycloak-15.0.2.zip 或者 $ tar -xvzf keycloak-15.0.2.tar.gz
窗户> 展开-存档-路径 “c: 下载 \ keycloak-15.0.2.zip”-目的地路径 “c: \ 下载”
启动Keycloak服务器
您在安装服务器的系统上启动服务器。
-
在安装Keycloak服务器期间,您没有看到任何错误。
-
去
bin
服务器分发的目录。 -
运行
独立
引导脚本。Linux/Unix$ cd bin $。/独立。sh
窗户>。.. \ bin \ 独立.bat
创建管理员帐户
在使用Keycloak之前,您需要创建一个用于登录Keycloak管理控制台的管理员帐户。
-
当您启动Keycloak服务器时,您没有看到任何错误。
-
打开http:// localhost:8080/auth在您的网络浏览器中。
欢迎页面打开,确认服务器正在运行。
欢迎页面 -
输入用户名和密码以创建初始管理员用户。
登录管理控制台
创建初始管理员帐户后,您可以登录管理控制台。 在此控制台中,您将添加用户并注册应用程序以通过Keycloak进行保护。
-
您有一个管理控制台的管理员帐户。
-
单击管理控制台上的链接欢迎页面或直接转到http:// localhost:8080/auth/admin/(控制台URL)。
在Keycloak文档中,管理控制台通常简称为管理控制台。
-
输入您在欢迎页面打开管理控制台。
管理控制台登录屏幕出现管理控制台的初始屏幕。
管理控制台
现在,您可以登录到管理控制台,您可以开始创建领域,管理员可以在其中创建用户并授予他们对应用程序的访问权限。 有关更多详细信息,请参见创建境界和用户。
创建境界和用户
Keycloak管理控制台的第一个用途是创建一个领域并在该领域中创建用户。 您使用该用户登录到您的新境界,并访问所有用户都可以访问的内置帐户控制台。
领域和用户
当您登录到管理控制台时,您将在一个领域中工作,该领域是您管理对象的空间。 存在两种类型的领域:
-
大师领域
-这个领域是在你第一次开始Keycloak时为你创建的。 它包含您在第一次登录时创建的管理员帐户。 你使用这个领域只是为了创造其他领域。 -
其他领域
-这些领域是由主领域中的管理员创建的。 在这些领域中,管理员创建用户和应用程序。 应用程序归用户所有。
创造境界
作为主领域的管理员,您可以创建管理员创建用户和应用程序的领域。
-
安装了Keycloak。
-
您拥有管理控制台的初始管理员帐户。
-
去http:// localhost:8080/auth/admin/并使用管理员帐户登录Keycloak管理控制台。
-
从大师菜单,单击添加领域。 当您登录到主领域时,此菜单列出了所有其他领域。
-
类型
演示
在名称场。一个新的领域领域名称区分大小写,因此请记下您使用的大小写。 -
点击创建。
主管理控制台页面打开,领域设置为
演示
。演示领域 -
在管理
大师
境界和您刚刚通过单击中的条目创建的境界选择领域下拉列表。
创建用户
在演示
领域,您可以创建一个新用户和该新用户的临时密码。
-
从菜单中,单击用户打开用户列表页面。
-
在空用户列表的右侧,单击添加用户打开添加用户页面。
-
在
用户名
场。这是唯一的必填字段。
添加用户页 -
翻转已验证电子邮件切换到上并点击保存。
新用户的管理页面打开。
-
单击凭据选项卡为新用户设置临时密码。
-
键入新密码并确认。
-
点击设置密码将用户密码设置为您指定的新密码。
管理凭据页面此密码是临时的,用户将被要求在第一次登录时更改它。 如果您希望创建一个持久的密码,请翻转临时切换到关并点击设置密码。
登录帐户控制台
领域中的每个用户都可以访问帐户控制台。 您使用此控制台更新您的配置文件信息并更改您的凭据。 现在,您可以在创建的领域中测试该用户的登录。
-
通过打开用户菜单并选择注销管理控制台退出。
-
去http:// localhost:8080/auth/realms/demo/account并登录到您的
演示
作为您刚刚创建的用户的领域。 -
当要求您提供新密码时,请输入您可以记住的密码。
更新密码为该用户打开帐户控制台。
帐户控制台 -
使用此页完成要测试的任何值的必填字段。
您现在已经准备好进行最后的过程,即保护在WildFly上运行的示例应用程序。 见保护示例应用程序。
保护示例应用程序
现在您有了管理员帐户、领域和用户,您可以使用Keycloak来保护示例WildFly servlet应用程序。 您安装了WildFly客户端适配器,在管理控制台中注册应用程序,修改WildFly实例以与Keycloak一起使用,并使用Keycloak与一些示例代码来保护应用程序。
-
您需要调整Keycloak使用的端口,以避免与WildFly的端口冲突。
调整Keycloak使用的端口
本指南中的说明适用于在与Keycloak服务器相同的计算机上运行WildFly。 在这种情况下,即使WildFly与Keycloak捆绑在一起,您也不能将WildFly用作应用程序容器。 您必须为您的servlet应用程序运行一个单独的WildFly实例。
为了避免端口冲突,您需要不同的端口来运行Keycloak和WildFly。
-
您有一个管理控制台的管理员帐户。
-
你创建了一个演示领域。
-
您在演示领域创建了一个用户。
-
从下载野蝇WildFly.org。
-
解压缩下载的WildFly。
$ 解压缩 <文件名>。zip
-
更改为Keycloak根目录。
-
通过为
jboss.套接字.绑定.端口偏移
系统属性。 此值将添加到Keycloak服务器打开的每个端口的基本值中。 在这个例子中,100是价值。Linux/Unix$ cd bin $。/standalone.sh -Djboss.socket.binding.port-offset = 100
窗户>。.. \ bin \ standalone.bat -Djboss.套接字.绑定.端口偏移 = 100
视窗Powershell>。.. \ bin \ standalone.bat -D "jboss.套接字.绑定.端口偏移 = 100"
-
确认Keycloak服务器正在运行。 去http:// localhost:8180/auth/admin/。
如果打开管理控制台,则可以安装客户端适配器,该适配器使WildFly可以与Keycloak一起使用。
安装WildFly客户端适配器
当WildFly和Keycloak安装在同一台机器上时,WildFly需要进行一些修改。 要进行此修改,请安装一个Keycloak客户端适配器。
-
已安装WildFly。
-
你有一个备份
。./独立/配置/独立.xml
文件,如果您已自定义此文件。
-
下载WildFly OpenID连接客户端适配器分发来自keycloak.org。
-
更改为WildFly的根目录。
-
解压缩此目录中下载的客户端适配器。 例如:
$ 解压缩 <文件名>。zip
-
更改为bin目录。
$ cd bin
-
为您的平台运行适当的脚本。
如果你收到一个
找不到文件
,请确保您使用了解压缩
在上一步中。 这种提取方法将文件安装在正确的位置。Linux/Unix上的WildFly 10$。/jboss-cli.sh-file = adapter-install-offline.cli
窗户上的野蝇10> jboss-cli.bat -- file = adapter-install-offline.cli
Linux/Unix上的Wildfly 11$。/jboss-cli.sh-file = adapter-elytron-install-offline.cli
窗口上的野蝇11> jboss-cli.bat -- file = adapter-elytron-install-offline.cli
此脚本对
…/独立/配置/独立.xml
文件。 -
启动应用程序服务器。
Linux/Unix$。/独立。sh
窗户>。.. \ 独立蝙蝠
注册WildFly应用程序
您现在可以在Keycloak管理控制台中定义和注册客户端。
-
您安装了一个客户端适配器来与WildFly一起工作。
-
使用您的管理员帐户登录到管理控制台:http:// localhost:8180/auth/admin/
-
在左上角的下拉列表中,选择
演示
境界。 -
点击
客户
在左侧菜单中打开 “客户端” 页面。客户 -
在右侧,单击创建。
-
在 “添加客户端” 对话框中,创建一个名为香草通过完成如下所示的字段:
添加客户端 -
点击保存。
-
在香草出现的客户端页面,单击安装tab。
-
选择KeycloakOIDC JSON生成您在以后的过程中需要的文件。
Keycloak.json文件 -
点击下载保存Keycloak。json在一个你以后可以找到的地方。
-
选择Keycloak OIDC JBoss子系统XML生成XML模板。
模板XML -
点击下载保存副本以供下一个过程使用,该过程涉及WildFly配置。
修改WildFly实例
WildFly servlet应用程序需要额外的配置,然后才能通过Keycloak进行保护。
-
您创建了一个名为香草在演示境界。
-
您为此客户端保存了一个模板XML文件。
-
去
独立/配置
WildFly根目录中的目录。 -
打开
独立。xml
文件并搜索以下文本:<子系统 xmlns=”urn:jboss: 域: keycloak:1.1”/>
-
将XML条目从自动关闭更改为使用一对打开和关闭标记,如下所示:
<子系统 xmlns=”urn:jboss: 域: keycloak:1.1”> </子系统>
-
将XML模板的内容粘贴到
<子系统>
元素,如该示例所示:<子系统 xmlns=”urn:jboss: 域: keycloak:1.1”> <安全部署 名称=”战争模块名称。战争”> <境界>演示</领域> <身份验证-服务器-网址>http:// localhost:8180/auth</身份验证-服务器-网址> <公共客户端>真</公共客户端> <ssl-必需>外部</ssl-必需> <资源>香草</资源> </安全部署> </子系统>
-
更改
战争模块名称。战争
到香草。战争
:<子系统 xmlns=”urn:jboss: 域: keycloak:1.1”> <安全部署 名称=”香草。战争”> ... </子系统>
-
重新启动应用程序服务器。
安装示例代码以保护应用程序
最后一个过程是通过安装一些示例代码来使这个应用程序安全https://github.com/keycloak/ Keycloak-快速入门存储库。 快速入门与最新的Keycloak版本一起工作。
示例代码是应用程序-个人资料-吉-香草快速入门。 它演示了如何在不更改WAR的情况下更改通过基本身份验证保护的JavaEE应用程序。 Keycloak客户端适配器子系统更改身份验证方法并注入配置。
您的计算机上安装了以下内容,并且可以在您的路径中使用。
-
Java JDK 8
-
Apache Maven 3.1.1或更高版本
-
Git
你有一个Keycloak。json文件。
-
确保您的WildFly应用程序服务器已启动。
-
下载代码并使用以下命令更改目录。
$ git克隆https://github.com/keycloak/ keycloak-快速入门 $ cdKeycloak-快速入门/应用-配置文件-jee-香草/配置
-
复制
Keycloak。json
文件到当前目录。 -
将一个级别向上移动到
应用程序-个人资料-吉-香草
目录。 -
使用以下命令安装代码。
$ mvn清洁野蝇: 部署
-
确认应用程序安装成功。 去http:// localhost:8080/vanilla显示登录页面的地方。
确认成功的登录页面 -
使用您在演示领域中创建的帐户登录。
登录页面到演示领域出现一条消息,表明您已成功使用Keycloak保护示例WildFly应用程序。 恭喜你!
完全成功