8.9. 条件流中的条件


执行要求 所述,Condition 执行只能包含在 Conditional 子流中。如果所有 Condition 执行都评估为 true,则 条件 子流将充当 必需。您可以在 Conditional 子流中处理下一个执行。如果 Conditional 子流中包含的一些执行报告为 false,则整个子流被视为 Disabled

8.9.1. 可用条件

条件 - 用户角色

此执行能够确定用户是否具有 User role 字段定义的角色。如果用户具有所需的角色,则执行被视为 true,并评估其他执行。管理员必须定义以下字段:

Alias
描述执行的名称,它将在身份验证流中显示。
用户角色
用户应必须执行此流的角色。要指定应用程序角色,语法为 appname.approle (如 myapp.myrole)。
条件 - 用户配置
这会检查是否为用户配置了流中的其他执行。Execution requirements 部分包含 OTP 表单的示例。
条件 - 用户属性

这将检查用户是否已设置所需的属性:(可选)检查也可以评估组属性。可能会对输出进行 negate 输出,这意味着用户不应具有属性。User Attributes 部分演示了如何添加自定义属性。您可以提供这些字段:

Alias
描述执行的名称,它将在身份验证流中显示。
属性名称
要检查的属性的名称。
预期属性值
属性中预期值。
包含组属性
如果 On,条件检查任何加入组是否具有与配置的名称和值匹配的一个属性:此选项可能会影响性能
negate 输出
您可以对输出进行必要处理。换句话说,不应存在属性。

8.9.2. 在条件流中明确拒绝/允许访问

您可以允许或拒绝对条件流中的资源的访问。两个 验证器拒绝访问允许访问控制 根据条件对资源的访问。

允许访问
验证器将始终成功验证。这个验证器不可配置。
拒绝访问

访问将始终被拒绝。您可以定义错误消息,它将向用户显示。您可以提供这些字段:

Alias
描述执行的名称,它将在身份验证流中显示。
错误消息
向用户显示的错误消息。错误消息可以作为特定消息或属性提供,以便将其用于本地化(例如:"您没有角色 'admin'. ", my-property-deny in message properties)为定义为属性 access-denied 的默认消息保留空白。

以下是拒绝对没有角色 role1 的所有用户的访问,并显示属性 deny-role1 定义的错误消息。这个示例包括 Condition - User RoleDeny Access executions。

浏览器流

Deny access flow

condition - 用户角色配置

Deny access role settings

Deny Access 的配置实际上容易使用。您可以指定一个任意 Alias 和所需的信息,如下所示:

Deny access execution settings

最后的内容是在登录主题 messages_en.properties (用于英语)中定义带有错误消息的属性:

deny-role1 = You do not have required role!
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat