12.7.3. 架构
客户端策略由四个构建块组成:Condition、Executor、Profile 和 Policy。
12.7.3.1. 状况
条件决定了策略在采用以及何时采用策略的客户端。在客户端请求过程中(OIDC 授权请求、令牌端点请求等)检查了客户端创建/更新的一些条件。该条件检查是否满足指定的条件。例如,一些条件会检查客户端的访问类型是否机密。
该条件不能单独使用。它可用于之后介绍的策略。???
条件可以与其他可配置提供程序相同。可以配置的内容取决于每个条件的性质。
提供了以下条件:
- 创建/发布客户端的方法
- 动态客户端注册(匿名或带有初始访问令牌的验证或注册访问令牌)
- admin REST API (Admin 控制台等)
因此,在创建客户端时,当这个客户端由 OIDC Dynamic Client Registration 创建而不初始访问令牌(Anonymous Dynamic Client Registration)创建此客户端时,可将条件配置为评估为 true。因此,可以使用这个条件来确保通过 OIDC Dynamic Client Registration 注册的所有客户端都兼容 FAPI。
- 客户端的作者(根据特定角色或组存在)
- 在 OpenID Connect 动态客户端注册中,客户端的作者是验证获得访问令牌的最终用户,用来生成新客户端,而不是实际通过访问令牌访问注册端点的现有客户端的服务帐户。在由 Admin REST API 注册时,客户端作者是作为红帽单点登录管理员的最终用户。
- 客户端访问类型(机密、公共、仅 bearer-only)
- 例如,当客户端发送授权请求时,如果这个客户端保密,则采用策略。
- 客户端范围
-
如果客户端有特定的客户端范围(默认或者作为当前请求中使用的可选范围),评估为 true。这可用于确保使用范围为
fapi-example-scope
的 OIDC 授权请求需要符合 FAPI。 - 客户端角色
- 适用于具有指定名称的客户端角色
- 客户端域名、主机或 IP 地址
- 用于客户端的特定域名。或者对于管理员从特定主机或 IP 地址注册/更新客户端时的情况。
- 任何客户端
- 此条件始终评估为 true。它可用于确保特定域中的所有客户端都兼容 FAPI。