做 SAP Fiori Launchpad、SAP GUI for HTML、RAP OData 服务、CAP 应用、SAP Commerce Cloud 店铺、SAP BTP 扩展应用集成时,SSO 往往最容易被讨论。项目会议里经常会把登录链路画得很细,浏览器访问业务入口,跳到 IdP,认证成功,带着 SAML Assertion 回到 SP,ABAP 端创建 session,Fiori 页面正常打开,测试人员点几下 tile,一切看起来都很顺。真正容易被忽略的,反而是退出。在企业系统里,登录成功只是一半闭环。业务人员关闭浏览器标签页、点击 Fiori 右上角退出、从某个 SaaS 系统注销、从公司统一门户退出,这些动作在技术上不是同一个动作。浏览器里的 cookie、ABAP ICM 连接、SAP Web Dispatcher 后面的服务节点、IdP 侧的认证会话、各个 SP 自己维护的应用会话,都可能还留着。SAML 2.0 Single Log-Out,也就是 SLO,解决的正是这个问题。SLO 不是简单把当前网页跳到一个 logout URL。它的目标是在一个 SAML landscape 里,把和同一个登录身份有关的多个会话尽量干净地关闭,哪怕这些会话分散在不同域名、不同系统、不同技术栈里。对于 SAP 系统,这一点非常现实。一个典型集团客户的前端入口可能是 SAP Build Work Zone,身份源可能是 SAP Cloud Identity Services Identity Authentication,核心业务在 SAP S/4HANA On-Premise,部分扩展应用部署在 SAP BTP ABAP environment,另有 CAP 服务和 SAP Commerce Cloud。登录
SAP 场景下的 SAML 2.0 Single Log-Out,别只盯着登录,退出链路更容易出事故
做 SAP Fiori Launchpad、SAP GUI for HTML、RAP OData 服务、CAP 应用、SAP Commerce Cloud 店铺、SAP BTP 扩展应用集成时,SSO 往往最容易被讨论。项目会议里经常会把登录链路画得很细,浏览器访问业务入口,跳到 IdP,认证成功,带着 SAML Assertion 回到 SP,ABAP 端创建 session,Fiori 页面正常打开,测试人员点几下 tile,一切看起来都很顺。真正容易被忽略的,反而是退出。在企业系统里,登录成功只是一半闭环。业务人员关闭浏览器标签页、点击 Fiori 右上角退出、从某个 SaaS 系统注销、从公司统一门户退出,这些动作在技术上不是同一个动作。浏览器里的 cookie、ABAP ICM 连接、SAP Web Dispatcher 后面的服务节点、IdP 侧的认证会话、各个 SP 自己维护的应用会话,都可能还留着。SAML 2.0 Single Log-Out,也就是 SLO,解决的正是这个问题。SLO 不是简单把当前网页跳到一个 logout URL。它的目标是在一个 SAML landscape 里,把和同一个登录身份有关的多个会话尽量干净地关闭,哪怕这些会话分散在不同域名、不同系统、不同技术栈里。对于 SAP 系统,这一点非常现实。一个典型集团客户的前端入口可能是 SAP Build Work Zone,身份源可能是 SAP Cloud Identity Services Identity Authentication,核心业务在 SAP S/4HANA On-Premise,部分扩展应用部署在 SAP BTP ABAP environment,另有 CAP 服务和 SAP Commerce Cloud。登录