试穿Keycloak

本指南可帮助您在生产环境中使用Keycloak之前练习使用Keycloak对其进行评估。 它包括在独立模式下安装Keycloak服务器、创建用于管理用户和应用程序的帐户和领域以及保护WildFly服务器应用程序的说明。

安装Keycloak的示例实例

本节介绍如何以独立模式安装和启动Keycloak服务器、设置初始管理员用户以及登录Keycloak管理控制台。

安装服务器

您可以在Linux或Windows上安装服务器。 服务器下载ZIP文件包含运行Keycloak服务器的脚本和二进制文件。

程序
  1. 下载keycloak-15.0.2。[zip | tar.gz]来自Keycloak下载

  2. 将文件放在您选择的目录中。

  3. 使用适当的解压缩实用程序,如解压缩、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服务器期间,您没有看到任何错误。

程序
  1. bin服务器分发的目录。

  2. 运行独立引导脚本。

    Linux/Unix
    $ cd bin
    $。/独立。sh
    窗户
    >。.. \ bin \ 独立.bat

创建管理员帐户

在使用Keycloak之前,您需要创建一个用于登录Keycloak管理控制台的管理员帐户。

先决条件
  • 当您启动Keycloak服务器时,您没有看到任何错误。

程序
  1. 打开http:// localhost:8080/auth在您的网络浏览器中。

    欢迎页面打开,确认服务器正在运行。

    欢迎页面

    欢迎页面

  2. 输入用户名和密码以创建初始管理员用户。

登录管理控制台

创建初始管理员帐户后,您可以登录管理控制台。 在此控制台中,您将添加用户并注册应用程序以通过Keycloak进行保护。

先决条件
  • 您有一个管理控制台的管理员帐户。

程序
  1. 单击管理控制台上的链接欢迎页面或直接转到http:// localhost:8080/auth/admin/(控制台URL)。

    在Keycloak文档中,管理控制台通常简称为管理控制台。

  2. 输入您在欢迎页面打开管理控制台

    管理控制台登录屏幕

    管理控制台登录屏幕

    出现管理控制台的初始屏幕。

    管理控制台

    管理控制台

下一步

现在,您可以登录到管理控制台,您可以开始创建领域,管理员可以在其中创建用户并授予他们对应用程序的访问权限。 有关更多详细信息,请参见创建境界和用户

创建境界和用户

Keycloak管理控制台的第一个用途是创建一个领域并在该领域中创建用户。 您使用该用户登录到您的新境界,并访问所有用户都可以访问的内置帐户控制台。

领域和用户

当您登录到管理控制台时,您将在一个领域中工作,该领域是您管理对象的空间。 存在两种类型的领域:

  • 大师领域-这个领域是在你第一次开始Keycloak时为你创建的。 它包含您在第一次登录时创建的管理员帐户。 你使用这个领域只是为了创造其他领域。

  • 其他领域-这些领域是由主领域中的管理员创建的。 在这些领域中,管理员创建用户和应用程序。 应用程序归用户所有。

领域和应用

创造境界

作为主领域的管理员,您可以创建管理员创建用户和应用程序的领域。

先决条件
  • 安装了Keycloak。

  • 您拥有管理控制台的初始管理员帐户。

程序
  1. http:// localhost:8080/auth/admin/并使用管理员帐户登录Keycloak管理控制台。

  2. 大师菜单,单击添加领域。 当您登录到主领域时,此菜单列出了所有其他领域。

  3. 类型演示名称场。

    一个新的领域

    一个新的领域

    领域名称区分大小写,因此请记下您使用的大小写。
  4. 点击创建

    主管理控制台页面打开,领域设置为演示

    演示领域

    演示领域

  5. 在管理大师境界和您刚刚通过单击中的条目创建的境界选择领域下拉列表。

创建用户

演示领域,您可以创建一个新用户和该新用户的临时密码。

程序
  1. 从菜单中,单击用户打开用户列表页面。

  2. 在空用户列表的右侧,单击添加用户打开添加用户页面。

  3. 用户名场。

    这是唯一的必填字段。

    添加用户页

    添加用户页

  4. 翻转已验证电子邮件切换到并点击保存

    新用户的管理页面打开。

  5. 单击凭据选项卡为新用户设置临时密码。

  6. 键入新密码并确认。

  7. 点击设置密码将用户密码设置为您指定的新密码。

    管理凭据页面

    管理凭据页面

    此密码是临时的,用户将被要求在第一次登录时更改它。 如果您希望创建一个持久的密码,请翻转临时切换到并点击设置密码

登录帐户控制台

领域中的每个用户都可以访问帐户控制台。 您使用此控制台更新您的配置文件信息并更改您的凭据。 现在,您可以在创建的领域中测试该用户的登录。

程序
  1. 通过打开用户菜单并选择注销管理控制台退出

  2. http:// localhost:8080/auth/realms/demo/account并登录到您的演示作为您刚刚创建的用户的领域。

  3. 当要求您提供新密码时,请输入您可以记住的密码。

    更新密码

    更新密码

    为该用户打开帐户控制台。

    帐户控制台

    帐户控制台

  4. 使用此页完成要测试的任何值的必填字段。

下一步

您现在已经准备好进行最后的过程,即保护在WildFly上运行的示例应用程序。 见保护示例应用程序

保护示例应用程序

现在您有了管理员帐户、领域和用户,您可以使用Keycloak来保护示例WildFly servlet应用程序。 您安装了WildFly客户端适配器,在管理控制台中注册应用程序,修改WildFly实例以与Keycloak一起使用,并使用Keycloak与一些示例代码来保护应用程序。

先决条件
  • 您需要调整Keycloak使用的端口,以避免与WildFly的端口冲突。

调整Keycloak使用的端口

本指南中的说明适用于在与Keycloak服务器相同的计算机上运行WildFly。 在这种情况下,即使WildFly与Keycloak捆绑在一起,您也不能将WildFly用作应用程序容器。 您必须为您的servlet应用程序运行一个单独的WildFly实例。

为了避免端口冲突,您需要不同的端口来运行Keycloak和WildFly。

先决条件
  • 您有一个管理控制台的管理员帐户。

  • 你创建了一个演示领域。

  • 您在演示领域创建了一个用户。

程序
  1. 从下载野蝇WildFly.org

  2. 解压缩下载的WildFly。

    $ 解压缩 <文件名>。zip
  3. 更改为Keycloak根目录。

  4. 通过为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"
  5. 确认Keycloak服务器正在运行。 去http:// localhost:8180/auth/admin/

    如果打开管理控制台,则可以安装客户端适配器,该适配器使WildFly可以与Keycloak一起使用。

安装WildFly客户端适配器

当WildFly和Keycloak安装在同一台机器上时,WildFly需要进行一些修改。 要进行此修改,请安装一个Keycloak客户端适配器。

先决条件
  • 已安装WildFly。

  • 你有一个备份。./独立/配置/独立.xml文件,如果您已自定义此文件。

程序
  1. 下载WildFly OpenID连接客户端适配器分发来自keycloak.org

  2. 更改为WildFly的根目录。

  3. 解压缩此目录中下载的客户端适配器。 例如:

    $ 解压缩 <文件名>。zip
  4. 更改为bin目录。

    $ cd bin
  5. 为您的平台运行适当的脚本。

    如果你收到一个找不到文件,请确保您使用了解压缩在上一步中。 这种提取方法将文件安装在正确的位置。

    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

    此脚本对&hellip;/独立/配置/独立.xml文件。

  6. 启动应用程序服务器。

    Linux/Unix
    $。/独立。sh
    窗户
    >。.. \ 独立蝙蝠

注册WildFly应用程序

您现在可以在Keycloak管理控制台中定义和注册客户端。

先决条件
  • 您安装了一个客户端适配器来与WildFly一起工作。

程序
  1. 使用您的管理员帐户登录到管理控制台:http:// localhost:8180/auth/admin/

  2. 在左上角的下拉列表中,选择演示境界。

  3. 点击客户在左侧菜单中打开 “客户端” 页面。

    客户

    客户

  4. 在右侧,单击创建

  5. 在 “添加客户端” 对话框中,创建一个名为香草通过完成如下所示的字段:

    添加客户端

    添加客户端

  6. 点击保存

  7. 香草出现的客户端页面,单击安装tab。

  8. 选择KeycloakOIDC JSON生成您在以后的过程中需要的文件。

    Keycloak.json文件

    Keycloak.json文件

  9. 点击下载保存Keycloak。json在一个你以后可以找到的地方。

  10. 选择Keycloak OIDC JBoss子系统XML生成XML模板。

    模板XML

    模板XML

  11. 点击下载保存副本以供下一个过程使用,该过程涉及WildFly配置。

修改WildFly实例

WildFly servlet应用程序需要额外的配置,然后才能通过Keycloak进行保护。

先决条件
  • 您创建了一个名为香草演示境界。

  • 您为此客户端保存了一个模板XML文件。

程序
  1. 独立/配置WildFly根目录中的目录。

  2. 打开独立。xml文件并搜索以下文本:

    <子系统 xmlns=urn:jboss: 域: keycloak:1.1/>
  3. 将XML条目从自动关闭更改为使用一对打开和关闭标记,如下所示:

    <子系统 xmlns=urn:jboss: 域: keycloak:1.1>
    </子系统>
  4. 将XML模板的内容粘贴到<子系统>元素,如该示例所示:

    <子系统 xmlns=urn:jboss: 域: keycloak:1.1>
      <安全部署 名称=战争模块名称。战争>
        <境界>演示</领域>
        <身份验证-服务器-网址>http:// localhost:8180/auth</身份验证-服务器-网址>
        <公共客户端></公共客户端>
        <ssl-必需>外部</ssl-必需>
        <资源>香草</资源>
      </安全部署>
    </子系统>
  5. 更改战争模块名称。战争香草。战争:

    <子系统 xmlns=urn:jboss: 域: keycloak:1.1>
      <安全部署 名称=香草。战争>
      ...
    </子系统>
  6. 重新启动应用程序服务器。

安装示例代码以保护应用程序

最后一个过程是通过安装一些示例代码来使这个应用程序安全https://github.com/keycloak/ Keycloak-快速入门存储库。 快速入门与最新的Keycloak版本一起工作。

示例代码是应用程序-个人资料-吉-香草快速入门。 它演示了如何在不更改WAR的情况下更改通过基本身份验证保护的JavaEE应用程序。 Keycloak客户端适配器子系统更改身份验证方法并注入配置。

先决条件

您的计算机上安装了以下内容,并且可以在您的路径中使用。

  • Java JDK 8

  • Apache Maven 3.1.1或更高版本

  • Git

你有一个Keycloak。json文件。

程序
  1. 确保您的WildFly应用程序服务器已启动。

  2. 下载代码并使用以下命令更改目录。

    $ git克隆https://github.com/keycloak/ keycloak-快速入门
    $ cdKeycloak-快速入门/应用-配置文件-jee-香草/配置
  3. 复制Keycloak。json文件到当前目录。

  4. 将一个级别向上移动到应用程序-个人资料-吉-香草目录。

  5. 使用以下命令安装代码。

    $ mvn清洁野蝇: 部署
  6. 确认应用程序安装成功。 去http:// localhost:8080/vanilla显示登录页面的地方。

    确认成功的登录页面

    确认成功的登录页面

  7. 使用您在演示领域中创建的帐户登录。

    登录页面到演示领域

    登录页面到演示领域

    出现一条消息,表明您已成功使用Keycloak保护示例WildFly应用程序。 恭喜你!

    完全成功

    完全成功