入门指南
用于 Red Hat Single Sign-On 7.5
摘要
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 安装 Red Hat Single Sign-On 的示例实例 复制链接链接已复制到粘贴板!
这部分论述了如何在单机模式中安装并启动 Red Hat Single Sign-On 服务器,设置初始 admin 用户,并登录到 Red Hat Single Sign-On Admin Console。
其他资源
此安装旨在练习使用红帽单点登录。有关在生产环境中安装和所有产品功能的完整详情,请参阅 Red Hat Single Sign-On 文档中的其他指南。
1.1. 安装 Red Hat Single Sign-On 服务器 复制链接链接已复制到粘贴板!
对于这个 Red Hat Single Sign-On 实例示例,这个过程涉及独立模式的安装。服务器下载 ZIP 文件包含运行 Red Hat Single Sign-On 服务器的脚本和二进制文件。您可以在 Linux 或 Windows 上安装服务器。
流程
- 访问红帽客户门户。
- 下载 Red Hat Single Sign-On Server: rh-sso-7.5.zip
- 将文件放在您选择的目录中。
使用适当的
unzip实用程序(如 unzip、tar 或 Expand-Archive)解包 ZIP 文件。Linux/Unix
unzip rhsso-7.5.zip tar -xvzf rh-sso-7.5.tar.gz
$ unzip rhsso-7.5.zip or $ tar -xvzf rh-sso-7.5.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows
> Expand-Archive -Path 'C:Downloads\rhsso-7.5.zip' -DestinationPath 'C:\Downloads'
> Expand-Archive -Path 'C:Downloads\rhsso-7.5.zip' -DestinationPath 'C:\Downloads'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. 启动 Red Hat Single Sign-On 服务器 复制链接链接已复制到粘贴板!
您会在安装它的系统中启动服务器。
前提条件
- 您会在 Red Hat Single Sign-On 服务器安装过程中看到任何错误。
流程
-
转到服务器分发的
bin目录。 运行
独立引导脚本。Linux/Unix
cd bin ./standalone.sh
$ cd bin $ ./standalone.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows
> ...\bin\standalone.bat
> ...\bin\standalone.batCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. 创建 admin 帐户 复制链接链接已复制到粘贴板!
在使用 Red Hat Single Sign-On 前,您需要创建一个 admin 帐户,用于登录 Red Hat Single Sign-On 管理控制台。
前提条件
- 当您启动 Red Hat Single Sign-On 服务器时,您看到了任何错误。
流程
在 Web 浏览器中打开 http://localhost:8080/auth。
欢迎页面将打开,确认服务器正在运行。
欢迎页面
- 输入用户名和密码来创建初始 admin 用户。
1.4. 登录到 admin 控制台 复制链接链接已复制到粘贴板!
创建初始 admin 帐户后,您可以登录 admin 控制台。在这个控制台中,您可以添加用户并注册应用程序,使其受 Red Hat Single Sign-On 的安全。
前提条件
- 您有一个 admin 帐户,用于 admin 控制台。
流程
点击 Welcome 页面上的 Administration Console 链接,或直接进入 http://localhost:8080/auth/admin/ (控制台 URL)。
注意管理控制台通常被称为 Red Hat Single Sign-On 文档中的短期的管理控制台。
输入您在 Welcome 页面上创建的用户名和密码,以打开 admin 控制台。
管理控制台登录屏幕
此时会出现管理控制台的初始屏幕。
管理控制台
后续步骤
现在,您可以登录到 admin 控制台,可以开始创建域,以供管理员创建用户并为其提供对应用程序的访问权限。如需了解更多详细信息 ,请参阅创建域和用户。
第 2 章 创建域和用户 复制链接链接已复制到粘贴板!
Red Hat Single Sign-On 管理控制台的第一个使用是创建域并在该域中创建用户。您可以使用该用户登录到新域,并访问所有用户有权访问的内置帐户控制台。
2.1. realms 和用户 复制链接链接已复制到粘贴板!
当您登录到 admin 控制台时,您位于一个 realm 中,这是您管理对象的空间。存在两种类型的域:
-
Master realm- 首次启动 Red Hat Single Sign-On 时为您创建此域。它包含您在第一次登录时创建的 admin 帐户。您只使用此域来创建其他域。 -
其他域- 这些域由 master 域中的管理员创建。在这些域中,管理员创建用户和应用程序。应用程序由用户所有。
2.2. 创建域 复制链接链接已复制到粘贴板!
作为 master 域中的 admin,您将创建管理员创建用户和应用的域。
前提条件
- 安装了 Red Hat Single Sign-On。
- 您有 admin 控制台的初始 admin 帐户。
流程
- 进入 http://localhost:8080/auth/admin/,再使用 admin 帐户登录 Red Hat Single Sign-On 管理控制台。
- 在 Master 菜单中,单击 Add Realm。当您登录到 master 域时,此菜单将列出所有其他域。
在 Name 字段中输入
demo。新域
注意realm 名称是区分大小写的,因此请注意您使用的大小写。
点 Create。
此时会打开主管理控制台页面,域设为
demo。演示域
-
在管理
master域和您刚才创建的域之间的切换,方法是单击 Select realm 下拉列表中的条目。
2.3. 创建用户 复制链接链接已复制到粘贴板!
在 demo 域中,您可以为该新用户创建一个新用户和一个临时密码。
流程
- 从菜单中,单击 Users 以打开用户列表页面。
- 在空用户列表的右侧,单击 Add User 以打开 Add user 页面。
在
Username字段中输入名称。这是唯一的必填字段。
添加用户页面
将 电子邮件验证 切换为 On,然后单击保存。
新用户的管理页面将打开。
- 点 Credentials 选项卡为新用户设置临时密码。
- 键入新密码并确认。
点 Set Password 将用户密码设置为您指定的新密码。
管理凭证页面
注意此密码是临时的,用户在第一次登录时需要更改密码。如果要创建永久的密码,请将 Temporary 开关设置为 Off,然后单击 Set Password。
2.4. 登录到帐户控制台 复制链接链接已复制到粘贴板!
realm 中的每个用户都可以访问帐户控制台。您可以使用此控制台更新您的配置集信息并更改凭证。现在,您可以使用您创建的域中的该用户测试登录。
流程
- 打开用户菜单并选择 Sign Out,从管理控制台注销。
-
进入 http://localhost:8080/auth/realms/demo/account 并以您刚刚创建的用户身份登录您的
demo域。 当要求您提供新密码时,请输入一个可以记住的密码。
更新密码
为此用户打开帐户控制台。
帐户控制台
- 使用任何值完成必填字段,以使用此页面进行测试。
后续步骤
现在,您已准备好进行最终过程,这是保护在 JBoss EAP 上运行的示例应用程序。请参阅 保护示例应用程序。
第 3 章 保护示例应用程序 复制链接链接已复制到粘贴板!
现在,您有一个 admin 帐户、一个域和用户,您可以使用 Red Hat Single Sign-On 来保护 JBoss EAP servlet 应用示例。安装 JBoss EAP 客户端适配器,在管理控制台中注册应用程序,修改 JBoss EAP 实例以使用 Red Hat Single Sign-On,并使用带有一些示例代码的红帽单点登录来保护应用。
前提条件
- 您需要调整红帽单点登录使用的端口,以避免与 JBoss EAP 产生端口冲突。
3.1. 调整 Red Hat Single Sign-On 使用的端口 复制链接链接已复制到粘贴板!
本指南中的说明适用于在红帽单点登录服务器相同的计算机上运行 JBoss EAP。在这种情形中,即使 JBoss EAP 捆绑了红帽单点登录,但您不能将 JBoss EAP 用作应用容器。您必须为您 servlet 应用运行单独的 JBoss EAP 实例。
为避免端口冲突,您需要不同的端口来运行 Red Hat Single Sign-On 和 JBoss EAP。
前提条件
- 您有一个 admin 帐户,用于 admin 控制台。
- 您创建了演示域。
- 您在 demo 域中创建了用户。
流程
- 从红帽客户门户下载 JBoss EAP 7.3。
解压下载的 JBoss EAP。
unzip <filename>.zip
$ unzip <filename>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 更改到 Red Hat Single Sign-On root 目录。
为
jboss.socket.binding.port-offset系统属性提供值,启动 Red Hat Single Sign-On 服务器。这个值添加到 Red Hat Single Sign-On 服务器打开的每个端口的基本值中。在本例中,100 是值。Linux/Unix
cd bin ./standalone.sh -Djboss.socket.binding.port-offset=100
$ cd bin $ ./standalone.sh -Djboss.socket.binding.port-offset=100Copy to Clipboard Copied! Toggle word wrap Toggle overflow Windows
> ...\bin\standalone.bat -Djboss.socket.binding.port-offset=100
> ...\bin\standalone.bat -Djboss.socket.binding.port-offset=100Copy to Clipboard Copied! Toggle word wrap Toggle overflow Windows Powershell
> ...\bin\standalone.bat -D"jboss.socket.binding.port-offset=100"
> ...\bin\standalone.bat -D"jboss.socket.binding.port-offset=100"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认 Red Hat Single Sign-On 服务器正在运行。前往 http://localhost:8180/auth/admin/。
如果打开了管理控制台,您已准备好安装客户端适配器,使 JBoss EAP 能够与红帽 Sign-On 配合使用。
3.2. 安装 JBoss EAP 客户端适配器 复制链接链接已复制到粘贴板!
当 JBoss EAP 和红帽单点登录安装在同一机器上时,JBoss EAP 需要进行一些修改。要进行这个修改,请安装 Red Hat Single Sign-On 客户端适配器。
前提条件
- 已安装 JBoss EAP。
-
如果您自定义了此文件,则具有
../standalone/configuration/standalone.xml文件的备份。
流程
- 从红帽客户门户下载 EAP 7 的 客户端适配器。
- 更改到 JBoss EAP 的根目录。
在此目录中解压下载的客户端适配器。例如:
unzip <filename>.zip
$ unzip <filename>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更改到 bin 目录。
cd bin
$ cd binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为您的平台运行适当的脚本。
注意如果您收到
未找到的文件,请确保在上一步中使用了unzip。这种提取方法会在正确的位置安装文件。Linux/Unix
./jboss-cli.sh --file=adapter-elytron-install-offline.cli
$ ./jboss-cli.sh --file=adapter-elytron-install-offline.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows
> jboss-cli.bat --file=adapter-elytron-install-offline.cli
> jboss-cli.bat --file=adapter-elytron-install-offline.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此脚本对
…/standalone/configuration/standalone.xml文件进行必要的编辑。启动应用服务器。
Linux/Unix
./standalone.sh
$ ./standalone.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows
> ...\standalone.bat
> ...\standalone.batCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 注册 JBoss EAP 应用程序 复制链接链接已复制到粘贴板!
现在,您可以在 Red Hat Single Sign-On 管理控制台中定义并注册客户端。
前提条件
- 已安装客户端适配器以用于 JBoss EAP。
流程
- 使用 admin 帐户登录到 admin 控制台 :http://localhost:8180/auth/admin/
-
在左侧下拉列表中,选择
Demorealm。 点左侧菜单中的
Clients打开 Clients 页面。客户端
- 在右侧,点 Create。
在 Add Client 对话框中,通过完成字段来创建名为 vanilla 的客户端,如下所示:
添加客户端
- 点 Save。
- 在显示的 Vanilla 客户端页面中,单击 Installation 选项卡。
选择 Keycloak OIDC JSON 生成您稍后所需的文件。
Keycloak.json 文件
- 点 Download 将 Keycloak.json 保存到可在以后找到的位置。
选择 Keycloak OIDC JBoss 子系统 XML 来生成 XML 模板。
模板 XML
- 单击 Download 以保存供下一流程使用的副本,该副本涉及 JBoss EAP 配置。
3.4. 修改 JBoss EAP 实例 复制链接链接已复制到粘贴板!
在被红帽单点登录保护前,JBoss EAP servlet 应用需要额外的配置。
前提条件
- 您在 demo 域中创建了名为 vanilla 的客户端。
- 已为此客户端保存了一个模板 XML 文件。
流程
-
转到 JBoss EAP 根目录中的
独立/配置目录。 打开
standalone.xml文件并搜索以下文本:<subsystem xmlns="urn:jboss:domain:keycloak:1.1"/>
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 XML 条目从 self-closing 改为使用对打开和关闭标签,如下所示:
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> </subsystem>
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> </subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 XML 模板的内容粘贴到 <
subsystem> 元素中,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
WAR MODULE NAME.war更改为vanilla.war:<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> <secure-deployment name="vanilla.war"> ... </subsystem>
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> <secure-deployment name="vanilla.war"> ... </subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启应用服务器。
3.5. 安装示例代码来保护应用程序 复制链接链接已复制到粘贴板!
最后的步骤是通过从 https://github.com/redhat-developer/redhat-sso-quickstarts 仓库安装一些示例代码来保证这个应用程序的安全。快速入门与最新的 Red Hat Single Sign-On 发行版本一起工作。
示例代码是 app-profile-jee-vanilla quickstart。它演示了如何更改具有基本身份验证保护的 Jakarta EE 应用,而不更改 WAR。Red Hat Single Sign-On 客户端适配器子系统更改了身份验证方法并注入配置。
前提条件
您已在机器上安装了以下内容,并可在 PATH 中可用。
- Java JDK 8
- Apache Maven 3.1.1 或更高版本
- Git
您有一个 keycloak.json 文件。
流程
- 确保您的 JBoss EAP 应用服务器已经启动。
使用以下命令下载代码并更改目录:
git clone https://github.com/redhat-developer/redhat-sso-quickstarts cd redhat-sso-quickstarts/app-profile-jee-vanilla/config
$ git clone https://github.com/redhat-developer/redhat-sso-quickstarts $ cd redhat-sso-quickstarts/app-profile-jee-vanilla/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
keycloak.json文件复制到当前目录中。 -
向上移到
app-profile-jee-vanilla目录。 使用以下命令安装代码。
mvn clean wildfly:deploy
$ mvn clean wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认应用安装是否成功。进入 http://localhost:8080/vanilla,其中显示登录页面。
登录页面确认成功
使用您在 demo 域中创建的帐户登录。
demo 域的登录页面
这时将显示一条消息,表明您已成功完成了 Red Hat Single Sign-On 以保护示例 JBoss EAP 应用。祝贺您!
完成成功