Link Search Menu Expand Document
  1. 什么是策略
  2. 策略用例
    1. 控制谁可以登录你的应用
    2. 设定用户如何才能访问应用
    3. 设定何时进行MFA的登记
    4. 设置密码的策略
    5. 对API的访问进行限制
  3. 策略的工作模式
    1. 策略执行
    2. 默认策略

什么是策略

策略由一组规则组成,可帮助定义对于应用程序和 API 的访问的控制逻辑。根据安全或者业务的需要,可以自定义限制访问的条件,根据用户、组成员身份、设备、位置或时间作为访问控制的条件。

比如,根据不同应用敏感程度,设计不同的身份验证步骤,对于敏感的应用、或者可疑的身份,需要输入OTP或者SMS 一次性密码进行MFA的身份验证才能访问应用。

除此之外,策略还有更多的用途:

  • 通过在策略中设置授权获取的条件,处理复杂逻辑的授权规则(通常授权是件复杂的事情)
  • 在访问特定 应用程序之前必须执行的额外身份验证级别
  • 根据风险情况,设置多种拒绝访问的条件(可设置和维护例外用户列表)
  • 更改访问令牌的返回范围(Scopes),并使用inline hooks向Access token 和ID Token添加声明(Claims)(针对复杂场景的授权,这种处理方式很优雅)
  • 设置通过 API 通知其他系统的条件
  • 与外部数据库进行关联,在外部数据库或 API 中查找用户信息,然后将该数据添加到用户对象。

XAuth支持以下的策略类型:

  • XAuth登录策略:用于控制谁可以登录,在何种环境下允许用户登录 XAuth,是否需要MFA 的挑战,以及登录后允许的保持登录状态的时间。
  • 应用登录策略:在访问应用程序之前,判断是否需要执行的额外身份验证。
  • MFA策略:控制用户可以使用哪些 MFA 的方法,以及设置用户在什么时间去注册是哪种因素。
  • 密码策略:根据不同的用户,给予不同的密码长度和复杂度,密码的有效期。以及账户锁定和解锁的条件,包括用户在何种环境下允许自助的去进行账户恢复的操作。
  • IDP路由策略:存在多个IDP服务时,用户尝试登录时,路由策略根据物理位置、终端、应用、用户等条件,将用户路由设定的IDP。
  • OAuth 授权策略:根据特定客户端、用户、请求的授权范围的组合条件,给予规则定义的特定令牌,包括令牌生命周期的设定。

策略用例

控制谁可以登录你的应用

XAuth登录策略控制可以限制用户登录XAuth 的方式。例如,当您需要限制只有公司内部网络的用户才可以访问您的应用程序,或者您需要禁止组织中的某些角色访问您的应用时,可以通过添加登录策略中的访问规则来实现。

设定用户如何才能访问应用

除了可以设置XAuth的登录策略之外,每个应用程序都有一个登录策略,用于对于一些敏感的应用,可以配置在访问之前执行的额外身份验证级别。例如,添加规则以控制用户每次/每天/每月登录该应用时,进行MFA的认证。

设定何时进行MFA的登记

根据业务需要,您还可以通过创建 MFA 注册策略来控制用户何时需要去登记MFA。可以设置提示用户在他们第一次登录时注册一个MFA的因素,或者定义触发额外身份验证挑战的条件时,例如当用户尝试从新的国家/地区访问您的应用程序时,需要登记MFA。

设置密码的策略

提供了对用户密码长度和复杂性要求的支持,以及必须更改密码的频率。

对API的访问进行限制

对于API的访问控制,是微服务经常需要考虑的问题,当您想根据调用应用程序、根据用户的角色来限制对 API 的访问时,您可以创建API的访问策略来执行此操作。

当然,除了使用任何 XAuth 授权服务器创建的标准的Oauth Scope和Claims之外,如果您还需额外定义的范围时,通过访问策略的配置,是一种非常优雅的选择。您可以通过创建自定义范围以及将它们与用户信息相关联的相应声明来为用户返回其配置文件信息。

策略的工作模式

特定策略类型的策略设置由一个或多个策略对象组成,每个策略对象包含一个或多个规则。

策略和规则包含了在特定时间、适用于特定用户的条件下执行的动作。

策略通常由可应用于包含的范围,如所有人、部分组、部分应用。

规则包括地点和环境等条件,例如地理位置或用户是否在公司网络上,以及执行的动作。

不同的策略类型控制不同操作对象。所有策略的底层,共享一个通用框架、消息结构和 API,但具有不同的策略设置和规则数据。

策略执行

当检索到策略时,就会进行策略的评估,评估的顺序如下:

  • 按照策略在策略列表中出现的顺序(从上往下的顺序),评估应当执行哪一条策略。

  • 评估策略中的该策略关联的条件,
    • 如果不能满足,则考虑策略列表中的下一个策略。
    • 如果可以满足条件,则按照该策略下规则列表中的规则优先级,评估该策略关联下的每个规则。
  • 评估与规则关联的每个条件:
    • 如果满足与规则关联的所有条件,关联策略中的规则执行该规则下包含的执行动作。
    • 如果没有任何规则具有可以满足的条件,则考虑策略列表中的下一个策略。

如果策略中没有包含规则,则不会被评估

默认策略

系统为每种类型的策略自动创建了一个默认策略。这可确保在所有情况下始终有适用于用户的策略。

默认策略是必需的,不能删除

默认策略始终是优先级顺序中的最后一个策略,任何添加的相同类型的策略都具有更高的优先级。默认策略也始终有一个无法删除的默认规则,并且该规则始终是优先级顺序中的最后一个规则。将任何规则添加到默认策略时,它们的优先级高于默认规则。 system 属性在系统策略上设置为 TRUE,这会标记那些无法删除的策略。