3.8. Red Hat Single Sign-On 客户端
客户端是请求用户身份验证的红帽单点登录实体。客户端可以是请求 Red Hat Single Sign-On 的应用程序来提供用户身份验证,或者可以发出访问令牌的请求来代表经过身份验证的用户启动服务。如需更多信息,请参阅 Red Hat Single Sign-On 文档中的管理客户端一章。
Red Hat Single Sign-On 提供 OpenID-Connect 和 SAML 客户端协议。
OpenID-Connect 是首选协议,使用三种不同的访问类型:
- 公共 :对于直接在浏览器中运行的 JavaScript 应用程序,无需服务器配置。
- 机密 :用于服务器端客户端(如 EAP Web 应用)需要执行浏览器登录。
- 仅限 bearer-only :对允许 bearer 令牌请求的后端服务使用。
需要在应用程序 web.xml 文件的 < ;auth-method > 键中指定客户端类型。此文件在部署时由镜像读取。将 < auth-method> 元素的值设置为:
- 适用于 OpenID Connect 客户端的 KEYCLOAK。
- KEYCLOAK-SAML 用于 SAML 客户端。
以下是用来配置 OIDC 客户端的应用程序 web.xml 的示例片段:
... <login-config> <auth-method>KEYCLOAK</auth-method> </login-config> ...
...
<login-config>
<auth-method>KEYCLOAK</auth-method>
</login-config>
...
3.8.1. 自动和手动 Red Hat Single Sign-On 客户端注册方法 复制链接链接已复制到粘贴板!
客户端应用程序可使用特定于 eap64-sso-s2i、eap71-sso-s2i、Datavirt63-secure-s2i 和 datavirt63-secure-s2i 的变量传递的凭证自动注册到 Red Hat Single Sign-On 域。
另外,您可以通过配置和导出 Red Hat Single Sign-On 客户端适配器来手动注册客户端应用程序,并将其包括在客户端应用程序配置中。
3.8.1.1. 自动 Red Hat Single Sign-On 客户端注册 复制链接链接已复制到粘贴板!
自动 Red Hat Single Sign-On 客户端注册是由特定于 eap64-sso-s2i、 eap71-sso-s2i 和 datavirt63-secure-s2i 模板的单点登录环境变量来确定。然后,模板中提供的 Red Hat Single Sign-On 凭证用于在部署客户端应用程序期间将客户端注册到 Red Hat Sign-On realm。
Red Hat Single Sign-On 环境变量包括在 eap64-sso-s2i、eap71-sso-s2i 和 datavirt63-secure-s2i 模板有:
变量 | Description |
---|---|
HOSTNAME_HTTP | http 服务路由的自定义主机名。保留 <application-name>.<project>.<default-domain-suffix> 的默认主机名的空白 |
HOSTNAME_HTTPS | https 服务路由的自定义主机名。保留 <application-name>.<project>.<default-domain-suffix> 的默认主机名的空白 |
SSO_URL | Red Hat Single Sign-On web 服务器身份验证地址:https://secure-sso- <project-name> . <hostname>/auth |
SSO_REALM | 为此流程创建的 Red Hat Single Sign-On 域。 |
SSO_USERNAME | realm 管理用户 的名称。 |
SSO_PASSWORD | 用户的密码。 |
SSO_PUBLIC_KEY | 域生成的公钥。它位于 Red Hat Single Sign-On 控制台的 Realm Settings 的 Keys 选项卡中。 |
SSO_BEARER_ONLY | 如果设置为 true,则 OpenID Connect 客户端以 bearer-only 的形式注册。 |
SSO_ENABLE_CORS | 如果设置为 true,则 Red Hat Single Sign-On adapter 启用 Cross-Origin Resource Sharing (CORS)。 |
如果 Red Hat Single Sign-On 客户端使用 SAML 协议,则需要配置以下附加变量:
变量 | Description |
---|---|
SSO_SAML_KEYSTORE_SECRET | 用于访问 SAML 密钥存储的机密。默认值为 sso-app-secret。 |
SSO_SAML_KEYSTORE | SAML 密钥存储机密中的密钥存储文件名.默认为 keystore.jks。 |
SSO_SAML_KEYSTORE_PASSWORD | SAML 的密钥存储密码。默认为 mykeystorepass。 |
SSO_SAML_CERTIFICATE_NAME | 用于 SAML 的键/证书的别名。默认值为 jboss。 |
请参阅 工作流示例:在 Red Hat Single Sign-On with OpenID-Connect Client 的 Red Hat Single Sign-On 中自动注册 EAP 应用程序,以获取使用 OpenID-Connect 客户端自动客户端注册方法的端到端示例。
3.8.1.2. 手动 Red Hat Single Sign-On 客户端注册 复制链接链接已复制到粘贴板!
手动 Red Hat Single Sign-On 客户端注册是通过客户端应用程序 ... /configuration/ 目录中是否存在部署文件来确定。这些文件从 Red Hat Single Sign-On Web 控制台中的客户端适配器导出。此文件的名称与 OpenID-Connect 和 SAML 客户端不同:
OpenID-Connect | ../configuration/secure-deployments |
SAML | ../configuration/secure-saml-deployments |
在部署应用程序时,这些文件被复制到 standalone-openshift.xml 中的 Red Hat Single Sign-On 适配器配置部分。
有两种将 Red Hat Single Sign-On 适配器配置传递给客户端应用程序的方法:
- 修改部署文件,使其包含 Red Hat Single Sign-On 适配器配置,以便在部署时将其包含在 standalone-openshift.xml 文件中,或者
- 在客户端应用程序的 ../WEB-INF 目录中,手动包含 OpenID-Connect keycloak.json 文件,或将 SAML keycloak-saml.xml 文件包含。
请参阅 工作流示例: 手动配置应用程序以使用 Red Hat Single Sign-On 身份验证,使用 SAML 客户端作为手动红帽单点登录客户端注册方法的端到端示例。