在 ABAP Development Tools 里把一个 Analytical Query 做成 Service Definition,再创建一个InA - UI类型的 Service Binding,看到服务已经成功激活时,很容易产生一种错觉,开发工作似乎已经结束了。CDS Query 已经存在,Service Definition 也已经存在,Service Binding 甚至已经能够生成外部服务名称,从纯粹的数据建模角度看,这套分析模型确实已经具备被消费的条件。但真正换成普通 Business User 登录 SAP Fiori Launchpad,或者从分析型 Fiori 应用访问这个 Query 时,事情往往没有这么简单。SAP ABAP Cloud 的安全模型并不因为某个 Service Binding 已经激活,就自动认为所有业务用户都可以访问它。服务是否存在,与某个具体用户是否拥有启动这个服务的权限,是两件完全不同的事情。位于两者之间的桥梁,就是 Identity and Access Management,也就是通常看到的 IAM。在 ABAP Cloud 和 SAP S/4HANA Cloud 的开发模型里,IAM 并不是传统意义上单纯维护用户密码、登录身份或者单点登录的工具。对于开发人员来说,更重要的是理解一个专门的开发对象,IAM App。SAP 官方把 IAM App 用来描述某个业务应用或者业务服务所需要的访问权限。一个服务从技术上开发完成以后,要真正进入业务用户的授权体系,通常还要经过 IAM App、Business Catalog、Business Role、Business User 这一条链路。SAP