聚合安全性

Sterling™ Call Center 的 API 安全性已关闭。 相反,在聚合层中实现了类似的功能。

控制来自客户机的 API 调用的访问对于 Web 应用程序至关重要。 在 Sterling Call Center中,不会直接实施 API 安全性。 而是限制从聚合层进行 API 访问。 在当前框架中,将针对来自客户机的 API 调用公开以下过程:
  • 每个混搭(API)调用都是通过控制器(初始化或行为 URL 完成的。
  • 所有控制器 URL 都将执行公共 struts 操作。
  • 作为 Controller URL 输入的一部分,将发送所有聚合输入。
  • 后端控制器实现将获取所有输入,并调用输入中的相应聚合。
由于对应用程序关闭了 API 安全性,因此通过以下方式进行 API 调用是安全的:
  • 将验证每个聚合调用,以确保当前用户具有调用聚合所需的许可权。
  • 将针对聚合定义中定义的输入模板验证每个聚合输入,以便客户机不会传递可能导致安全漏洞的不需要的输入。
  • API 调用的输出由聚合定义中的输出模板控制,无法从客户机进行操作。
要使 Sterling Call Center 安全,请实施聚合安全性功能:
  • 所有聚合定义都有多个关联的 AternateResourceId,用于定义有权调用当前聚合的资源。
    • 可以从多个屏幕或模块调用单个聚合。 因此,此类聚合具有多个关联的 AlternateResourceId
    • 公共聚合或数据提供程序聚合与应用程序 ResourceId - ISCCSSYS002相关联,将向所有用户授予该应用程序的许可权。
  • Mashup 定义中任何 API 调用的输入模板都具有限制性和可控性,仅允许可作为输入传递到当前 mashup 调用的属性。
    • 如果用户没有查看特定数据的许可权,那么必须通过使用定制聚合来谨慎处理从依赖于许可权的不同屏幕或模块调用相同聚合的场景,以便仅允许特定场景的特定输入。 例如,在 " 添加产品 " 屏幕中调用的用于添加产品的聚合也会调用以覆盖价格。 但是,改写价格功能由许可权控制。 因此,对于此场景,后端中应该有一个定制聚合,并且后端类应该验证用户是否具有覆盖价格的许可权,然后在 changeOrder API 调用中仅允许覆盖价格属性。
平台类 SCUIXAPIActionUtils (方法 validateMashupInput) 负责对聚合调用执行输入模板验证:
  • 聚合定义中的输入模板应该与聚合层传递到 API 调用的模板相同,包括聚合层中添加的任何公共属性。
  • 用于验证输入的聚合安全性功能具有以下方式。
    • 错误 (缺省值): 任何违例都显示为错误。
    • DEBUG: 任何违例都将记录为日志中的错误,但 mashup 调用将通过。
    • NONE: 不会对来自聚合层的 API 调用进行输入验证。
可以将上下文参数 scui-xapi-mashup-security-mode 设置为其中一种方式。 缺省方式为 ERROR。

平台聚合帮助程序类负责对聚合定义中定义的 AlternateResourceId执行聚合调用授权。 如果 mashup 定义中定义的任何一个 resourceIds 具有调用此 mashup 的许可权,那么将执行 mashup 调用。