2.6. 建议


本节介绍了使用红帽构建的 Keycloak 保护应用程序时的一些建议。

2.6.1. 验证访问令牌

如果您需要手动验证红帽构建的 Keycloak 发布的访问令牌,您可以调用 Introspection Endpoint。这种方法的缺点是您必须对红帽构建的 Keycloak 服务器进行网络调用。如果您同时存在太多验证请求,这可能会较慢,并可能过载服务器。红帽构建的 Keycloak 发布访问令牌是 JSON Web 令牌(JWT) 数字签名,并使用 JSON Web 签名(JWS) 进行编码。由于它们以这种方式编码,因此您可以使用发布域的公钥在本地验证访问令牌。您可以在验证代码中硬编码域的公钥,也可以使用嵌入在 JWS 中的密钥 ID (KID) 的证书端点 查找并缓存公钥。根据您采用什么语言,有许多第三方库存在,它们可帮助您进行 JWS 验证。

2.6.2. 重定向 URI

在使用基于重定向的流时,请务必为客户端使用有效的重定向 uris。重定向 uris 应尽量具体。这特别适用于客户端(公共客户端)应用程序。无法这样做可能会导致:

  • 打开重定向 - 这使攻击者能够创建像来自您的域的 欺骗链接
  • 未授权条目 - 当用户已通过红帽构建的 Keycloak 进行身份验证时,攻击者可以使用一个公共客户端,其中 redirect uris 没有正确配置,在没有用户不了解的情况下通过重定向用户来获取访问权限。

在生产中,Web 应用始终对所有重定向 URI 使用 https。不允许重定向到 http。

还有一些特殊的重定向 URI:

http://127.0.0.1
此重定向 URI 对原生应用很有用,并允许原生应用在可用于获取授权代码的随机端口上创建 Web 服务器。此重定向 uri 允许任何端口。请注意,对于原生应用,每个 OAuth 2.0不建议使用 localhost,应改为使用 IP 字面 127.0.0.1
urn:ietf:wg:oauth:2.0:oob
如果您无法在客户端(或浏览器不可用)中启动 Web 服务器,您可以使用特殊的 urn:ietf:wg:oauth:2.0:oob redirect uri。当使用此 redirect uri 时,红帽构建的 Keycloak 会显示带有标题和页面中的代码的页面。应用可以检测浏览器标题已更改,或者用户可以手动将代码复制并粘贴到应用中。使用这个重定向 uri,用户可以使用不同的设备获取代码来粘贴到应用程序。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat