第 9 章 JBoss EAP 中的 OpenID Connect
使用 JBoss EAP 原生 OpenID Connect (OIDC)客户端通过外部 OpenID 供应商保护应用程序。OIDC 是一个身份层,它允许客户端(如 JBoss EAP)根据 OpenID 供应商身份验证验证用户身份。例如,您可以使用 Red Hat Single Sign-On 作为 OpenID 供应商来保护 JBoss EAP 应用程序。
9.1. JBoss EAP 中的 OpenID Connect 配置 复制链接链接已复制到粘贴板!
当您使用 OpenID 供应商保护应用程序时,您不需要在本地配置任何安全域资源。elytron-oidc-client
子系统在 JBoss EAP 中提供原生 OpenID Connect (OIDC)客户端,以与 OpenID 供应商连接。JBoss EAP 根据您的 OpenID 提供程序配置自动为您的应用程序创建虚拟安全域。
建议您在 Red Hat Single Sign-On 中使用 OIDC 客户端。如果可将其他 OpenID 供应商配置为使用 JSON Web 令牌(JWT)的访问令牌,并可配置为使用 RS256、RS384、RS512、ES256、ES384 或 ES512 签名算法。
要启用 OIDC 的使用,您可以配置 elytron-oidc-client
子系统或应用程序本身。JBoss EAP 激活 OIDC 身份验证,如下所示:
-
当您将应用程序部署到 JBoss EAP 时,
elytron-oidc-client
子系统会扫描部署,以检测是否需要 OIDC 身份验证机制。 -
如果子系统在
elytron-oidc-client
子系统或应用程序部署描述符中检测到部署的 OIDC 配置,JBoss EAP 为应用启用 OIDC 身份验证机制。 -
如果子系统在两个位置检测到 OIDC 配置,则
elytron-oidc-client
子系统secure-deployment
属性中的配置优先于应用程序部署描述符中的配置。
使用 Red Hat Single Sign-On 保护应用程序 keycloak-client-oidc
层已在 JBoss EAP XP 4.0.0 中弃用。使用 elytron-oidc-client
子系统提供的原生 OIDC 客户端。
部署配置
要使用部署描述符使用 OIDC 保护应用程序,请更新应用程序的部署配置,如下所示:
在
WEB-INF
目录中创建一个名为oidc.json
的文件,其中包含 OIDC 配置信息。oidc.json
内容示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在应用程序部署描述符
web.xml
文件中将auth-method
属性设置为OIDC
。
部署描述符更新示例
<login-config> <auth-method>OIDC</auth-method> </login-config>
<login-config>
<auth-method>OIDC</auth-method>
</login-config>
子系统配置
您可以通过使用以下方法配置 elytron-oidc-client
子系统来保护使用 OIDC 的应用程序:
- 如果您为每个应用程序使用相同的 OpenID 供应商,请为多个部署创建一个单一配置。
- 如果您将不同的 OpenID 供应商用于不同的应用程序,请为每个部署创建不同的配置。
单个部署的 XML 配置示例:
要使用同一 OpenID 供应商保护多个应用程序,请单独配置 提供程序
,如下例所示: