第 2 章 使用单点登录保护在 JBoss EAP 上部署的应用程序
您可以使用单点登录(SSO)保护应用,将身份验证委派给 SSO-provider,如红帽构建的 Keycloak。您可以使用 OpenID Connect (OIDC)或安全断言标记语言 v2 (SAML v2)作为 SSO 协议。
要使用 SSO 保护应用程序,请按照以下步骤执行:
- 创建一个示例应用,以使用单点登录进行安全 :使用此流程创建一个简单的 web-application 以通过 SSO 保护。如果您已有使用 SSO 保护的应用,请跳过这一步。
- 在 Red Hat build of Keycloak 中创建一个 realm 和用户
使用 OIDC 或 SAML 协议使用 SSO 保护应用程序:
2.1. 创建示例应用程序以使用单点登录安全 复制链接链接已复制到粘贴板!
创建一个 web 应用程序以在 JBoss EAP 上部署,并使用带有 OpenID Connect (OIDC)或安全断言标记语言(SAML)的单点登录(SSO)加以保护。
以下流程仅作为示例提供。如果您已有一个要保护的应用程序,您可以跳过这些,并直接进入 在红帽构建的 Keycloak 中创建域和用户。
2.1.1. 为 web 应用程序开发创建一个 Maven 项目 复制链接链接已复制到粘贴板!
要创建一个 web 应用,请创建一个具有所需依赖项和目录结构的 Maven 项目。
以下流程仅作为示例提供,不应在生产环境中使用。有关为 JBoss EAP 创建应用程序的详情,请参考 为 JBoss EAP 部署开发应用程序。
先决条件
- 您已安装了 Maven。如需更多信息,请参阅 下载 Apache Maven。
流程
使用
mvn
命令建立一个 Maven 项目。该命令创建项目的目录结构以及pom.xml
配置文件。语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入到应用程序根目录:
语法
cd <name-of-your-application>
$ cd <name-of-your-application>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
cd simple-webapp-example
$ cd simple-webapp-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将生成的
pom.xml
文件的内容替换为以下文本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在应用程序根目录中,输入以下命令:
mvn install
$ mvn install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到类似如下的输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.2. 创建一个 Web 应用程序 复制链接链接已复制到粘贴板!
创建一个 Web 应用程序,其中包含一个 servlet,它将返回从登录的用户主体中获取的用户名。如果没有登录的用户,servlet 将返回文本"NO AUTHENTICATED USER"。
在此过程中,<application_home> 指向包含应用程序 pom.xml
配置文件的目录。
先决条件
您已创建了一个 Maven 项目。
如需更多信息,请参阅为 web 应用程序开发创建一个 Maven 项目。
- JBoss EAP 正在运行。
流程
创建一个用于存储 Java 文件的目录。
语法
mkdir -p src/main/java/<path_based_on_artifactID>
$ mkdir -p src/main/java/<path_based_on_artifactID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
mkdir -p src/main/java/com/example/app
$ mkdir -p src/main/java/com/example/app
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前往新目录。
语法
cd src/main/java/<path_based_on_artifactID>
$ cd src/main/java/<path_based_on_artifactID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
cd src/main/java/com/example/app
$ cd src/main/java/com/example/app
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建一个
securedServlet.java
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在应用程序根目录中,使用以下命令编译应用程序:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署应用。
mvn wildfly:deploy
$ mvn wildfly:deploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在浏览器中,导航到
http://localhost:8080/simple-webapp-example/secured
。您会收到以下信息:
Secured Servlet Current Principal 'NO AUTHENTICATED USER'
Secured Servlet Current Principal 'NO AUTHENTICATED USER'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因为没有添加验证机制,所以您可以访问应用程序。