9.2. 声明信息点


申索信息点(CIP)负责解决这些声明并将这些声明推送到红帽单点登录服务器,以提供访问上下文到策略的更多信息。它们可以定义为 policy-enforcer 的配置选项,以便解析来自不同来源的声明,例如:

  • HTTP 请求(参数、标头、正文等)
  • 外部 HTTP 服务
  • 配置中定义的静态值
  • 实施 Claim Information Provider SPI

在向 Red Hat Single Sign-On 服务器推送声明时,策略只能针对用户是谁,也可以通过将上下文和内容纳入帐户,具体取决于什么人、原因、何时以及给定事务。它们都是基于上下文的授权,以及如何使用运行时信息来支持精细的授权决策。

9.2.1. 从 HTTP 请求获取信息

下面是几个示例演示了如何从 HTTP 请求中提取声明:

keycloak.json

"policy-enforcer": {
    "paths": [
      {
        "path": "/protected/resource",
        "claim-information-point": {
          "claims": {
            "claim-from-request-parameter": "{request.parameter['a']}",
            "claim-from-header": "{request.header['b']}",
            "claim-from-cookie": "{request.cookie['c']}",
            "claim-from-remoteAddr": "{request.remoteAddr}",
            "claim-from-method": "{request.method}",
            "claim-from-uri": "{request.uri}",
            "claim-from-relativePath": "{request.relativePath}",
            "claim-from-secure": "{request.secure}",
            "claim-from-json-body-object": "{request.body['/a/b/c']}",
            "claim-from-json-body-array": "{request.body['/d/1']}",
            "claim-from-body": "{request.body}",
            "claim-from-static-value": "static value",
            "claim-from-multiple-static-value": ["static", "value"],
            "param-replace-multiple-placeholder": "Test {keycloak.access_token['/custom_claim/0']} and {request.parameter['a']} "
          }
        }
      }
    ]
  }
Copy to Clipboard Toggle word wrap

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部