企业搜索模型开发完成以后,一个很容易被忽略的问题马上会出现。我们在 SAP Fiori Launchpad 中已经能够搜索到自定义业务对象,Enterprise Search Connector 也已经正常生成,索引或者基于 CDS 的查询模型本身没有问题,但此时并不能简单地认为功能已经完成。搜索能力一旦进入生产系统,真正需要处理的是另一个更现实的问题,哪些 Business User 可以使用这个搜索模型,哪些 Business User 根本不应该看到它。
以ZESH_S_DEPARTMENT这个 Enterprise Search View Entity 为例,它代表一个面向部门数据的 CDS 搜索模型。如果没有额外的访问控制,只关注搜索模型定义、搜索注解和索引生成,那么开发工作解决的只是数据如何被搜索,却没有解决谁有资格发起这样的搜索。对于企业系统来说,这两件事必须分开处理。
SAP 在 CDS-based Enterprise Search 场景中提供了一条比较完整的授权链路。开发人员负责把搜索模型与 IAM 授权对象连接起来,管理员负责把授权能力通过 Business Catalog 和 Business Role 交给真正的业务用户。SAP 官方针对ZESH_S_DEPARTMENT的示例也采用了这样的设计,通过 IAM App、IAM Business Catalog 和 Business Role 控制 Search Connector 级别的访问权限。
这里最容易混淆的是 Search Connector 级别授权与数据实例级授权。两者解决的并不是同一个问题。
Search Connector 级授权回答的是某个用户是否有资格