第 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-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将生成的
pom.xml文件的内容替换为以下文本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在应用程序根目录中,输入以下命令:
mvn install
$ mvn installCopy 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/appCopy 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/appCopy 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:deployCopy 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 因为没有添加验证机制,所以您可以访问应用程序。