尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SAP Business Catalogs:Fiori权限配置与磁贴管理的关键枢纽

SAP Business Catalogs:Fiori权限配置与磁贴管理的关键枢纽 做了好几年SAP权限项目我一直觉得很多同行把Identity and Access ManagementIAM理解窄了——以为只要会用PFCG塞事务代码、调几个权限对象就算入门。可真到S/4HANA和Fiori环境里这些人往往会栽在同一件事上Business Catalogs。用户登录Fiori Launchpad后那些磁贴能不能被看到、点开之后有没有权限几乎全由业务目录说了算。这篇文章我就把Business Catalogs从定位、结构到实战用法完整拆一遍重点讲清楚为什么权限管理员必须先懂它以及日常维护里那些八九成会踩的坑给正在做S/4HANA权限迁移、Fiori环境维护的Basis顾问、权限顾问和IT运维同学做个参考。1. 业务目录在SAP IAM体系里的定位权限管理员必须先理解它1.1 传统权限模型的困境与业务目录的破局点过去在ECC时代SAP权限管理基本就是PFCG一台戏建角色、往菜单里塞事务代码、通过权限对象控制操作范围、生成参数文件、再分配给用户。这套模型在GUI时代完全够用因为菜单和权限是强绑定的——你给用户一个事务代码他就能进那个事务菜单树长什么样基本等于权限边界。但到了Fiori时代这套老办法开始失灵。用户看到的不是事务代码而是一块块磁贴磁贴背后连着Fiori应用、OData服务、目标映射权限分散在UI5前端逻辑、后端授权检查、OData服务本身的访问控制等多个层面。如果还按老思路用Launchpad Designer手工一块块配磁贴几十个用户、上百个应用维护量直接爆炸而且权限和界面内容永远是两套数据出问题你根本不知道是该查角色还是查磁贴配置。Business Catalogs就是SAP针对这个痛点给出的标准答案。它把Maggie能干什么和Maggie能看到什么统一到一个中间层里。一个业务目录内聚了三样东西可见性哪些Fiori应用可以出现在Lauchpad、可执行性打开这些应用所需的基础权限对象、可管理性这个目录可以被哪些业务角色引用。一句话总结业务目录是SAP IAM体系里连接身份与应用体验的枢纽。1.2 IAM三角关系用户、业务角色、业务目录怎么配合在S/4HANA的IAM体系里有三个对象是权限顾问每天都要打交道的用户User就是SU01里的账号代表一个具体的人或服务账号承载身份属性部门、邮箱、有效起始日期等。业务角色Business Role在PFCG里维护是权限分配的基本单元。一个业务角色绑定一个岗位职责比如销售订单查询员采购审批经理。业务目录Business Catalog应用的集合包决定了这个角色对应的Fiori空间里会出现哪些磁贴、以及应用的基础授权。分配链路非常清晰用户挂角色角色挂目录目录带应用。这条链路一旦打通你再也不会在磁贴为什么看不到和点开为什么没权限两个问题之间反复横跳因为出问题时可以直接沿着链路定位。1.3 适合谁来读这篇文章如果你正在做S/4HANA升级或新实施需要在Fiori里给十几个岗位设计角色这篇内容对你直接有用如果你是Fiori管理员经常收到用户我多了个磁贴/少了个磁贴的信息这里的排查链路能帮你少走弯路就算你只是刚入行的SAP顾问把业务目录的运作逻辑吃透也是个非常好的切入点——它不像ABAP那样深但清晰地展示了现代SAP权限体系的骨架。2. 解剖业务目录目录、组、应用引用的三层结构2.1 目录内部到底装了些什么很多同事第一次打开业务目录时看到的只是一个ID、一段描述、一组列表并不知道里面什么结构。实际上一个标准的业务目录由下面这些元素组成层级名称作用第一层Business Catalog业务目录整个应用的集合包以目录ID为唯一标识第二层Group业务组把目录里相关应用按业务场景进一步分组比如订单处理库存查询第三层App Reference应用引用/磁贴单个Fiori应用的启动入口包含标题、图标、语义对象、动作、目标URL和参数光看目录本身你会发现它更像一个内容清单真正执行的时候每个应用引用会通过语义对象Semantic Object和动作Action告诉Launchpad这个磁贴点击后要触发哪个应用、往哪个目标URL跳转。这套语义对象动作的机制是Fiori支持跨系统导航的关键也是业务目录和传统事务代码菜单最大的差异点——它不再被绑死在单个系统的事务代码上。2.2 业务目录和权限对象的绑定关系业务目录里除了内容还隐藏着第二层价值权限预置。SAP在发布标准业务目录时会同时定义好打开这些应用所需的基本权限对象和部分推荐授权值。也就是说当你把一个目录分配给PFCG角色时系统不会只把磁贴带进去还会把这些权限对象一起带入角色的授权页签。注意我用的是部分推荐授权值这个词。业务目录解决的是应用能跑的基础授权但组织级别比如销售组织VKORG、公司代码BUKRS和敏感业务权限比如金额上限、特殊审批标志通常不会自动填好需要在业务角色层面单独确认。这也是很多新手最容易犯的错——以为分配目录就万事大吉结果用户进去之后还是SU53一片红。2.3 查看业务目录的标准工具日常维护中我建议先把这几个入口用熟/UI2/FLPD_CONFFiori Launchpad内容配置器可以查看系统里所有目录、组、磁贴也能新建自定义目录。老版本系统里可能是/UI2/FLPD_CUST大部分S/4HANA版本两者至少有一个能用。PFCG角色维护界面在菜单或业务目录区域可以按关键字搜索并添加目录是最常用的目录角色绑定入口。运维人员也可以直接从Fiori的App Finder出发反查某个应用属于哪个目录尤其在接收业务部门的我要这个应用需求时这一招非常快。2.4 自定义目录与标准目录的分工SAP标准目录通常以SAP_开头随产品版本升级自动更新权限对象由官方定义。自定义目录一般建议用Z_开头用于装自研应用或标准目录里没有的第三方应用组合。两者完全可以放进同一个业务角色里共存互不干扰。有一点必须强调标准目录是只读资产除非通过官方扩展工具否则不要去改里面的磁贴和组。因为每次升级标准目录都会被SAP用新版本覆盖你手工加的磁贴轻则丢失、重则引发内容冲突。自定义需求一律往自定义目录里放这是最稳的边界原则。3. 实战操作基于业务目录从零到一搭一个可用的Fiori业务角色3.1 一个典型场景给销售订单查询员建角色我拿一个最常见的场景来走一遍某公司需要给销售支持人员配一个角色只允许查看销售订单不允许修改价格、不允许删除订单。过去做法是建个角色塞VA03事务代码再慢慢调V_VBA、S_L6A0这些权限对象。现在有了业务目录流程会清晰很多。3.2 六步实操从建用户到Fiori验证把用户准备好SU01创建或确认测试用户分配好用户类型。如果要严格走企业流程可以先建一个测试员工用户不要直接拿开发机SAP_ALL账号测试。PFCG创建业务角色事务代码PFCG角色名按规范建议用ZR_开头比如ZR_SD_ORDER_VIEW。在角色标签页填描述为销售订单查询员。分配业务目录这是最关键的一步。在PFCG角色维护界面进入菜单页签选择添加Fiori应用系统会弹出业务目录选择窗口。用关键字搜Sales Order或销售订单通常会看到SAP_SD_BC前缀的系列目录。勾选需要的目录后系统会自动把目录下的组和磁贴带进角色菜单。如果你们启用了新版的业务目录页签也可以直接输入目录ID完成同样效果。检查并补全权限进入授权页签点手动更新或生成系统会把目录预置的权限对象带进来。此时注意看是否存在敏感权限对象比如允许修改定价的权限按需求删掉或限制授权值组织级别的值是否为空销售场景通常需要分配销售组织、分销渠道、产品线。在组织结构页签里填写对应值比如VKORG1000。生成参数文件并分配用户PFCG界面点击保存系统会提示是否生成参数文件确认生成。然后在用户页签里添加测试用户或直接用SU01给用户分配这个角色。Fiori Launchpad上验证用户登录Fiori前端刷新页面应该能看到对应磁贴。点击磁贴如果出现权限不足马上SU53查看失败对象逐项补全后再测。3.3 为什么是先目录、后角色而不是手工配磁贴我见过不少项目还是用Launchpad Designer一个一个手动建磁贴、建组然后单独给用户开权限。这样做眼前确实可控但维护后患很大第一一个应用在多个角色里出现你要重复建很多次磁贴第二权限和磁贴是两套数据升级或新增应用时经常出现磁贴有了但权限没开或反过来第三审计上非常难看说不清到底谁因为什么角色看到了什么。用业务目录之后这些事全被收敛了应用版本升级目录里磁贴由SAP统一刷新权限对象跟着目录走角色分配时自动带入审计时直接拉用户-角色-目录清单就能说清楚。把时间花在选目录、调组织级别上比花在手工配磁贴上值得多。3.4 职责边界对照表层面负责内容维护工具业务目录应用可见性、基础授权对象/UI2/FLPD_CONF、Fiori目录管理业务角色目录组合、组织级别、敏感权限、用户分配PFCG、SU01空间与页面磁贴在Launchpad上的布局Fiori Launchpad Designer用户身份账号基础信息、有效期SU01分清楚这四层边界后日常问题基本能一眼定位界面布局乱找空间配置功能缺磁贴找业务目录点开报错找角色权限账号失效找SU01。4. 踩坑实录目录分配了但用户看不到应用的完整排查链路4.1 我在项目中见过的三类症状先列出最常见的现场症状看看你有没有遇到过症状A角色和目录都分配了用户登录Fiori后就是看不到某些磁贴。症状B磁贴出现了点进去就报权限不足页面白底加一串错误码。症状C磁贴出现了点了也不报错但页面半天打不开最后404或502。这三种症状对应的排查链路完全不同。最忌讳的是不看具体情况一上来就清缓存、重置角色白白浪费时间。4.2 症状A的排查链路目录没活到用户眼前先确认链路是否完整SU01检查用户角色分配双击用户进角色页签确认目标角色挂在用户名下。这里有个小坑如果用户是通过多个角色叠加获得权限注意看是否只有一个角色带目录另一个角色虽然给了权限对象但没带目录。PFCG检查角色与目录的关联进入角色查看菜单或业务目录页签确认目录确实已添加。有时候管理员在测试阶段删掉过一次目录保存后又忘记重新加回来。检查目录激活状态在/UI2/FLPD_CONF或其他目录管理器中打开这个目录状态必须是激活Active。新传输过来的目录如果还没激活角色分配的只是空壳磁贴自然不出现。重新生成角色参数文件目录分配动作发生之后角色参数文件不会自动更新必须重新保存并生成profile。你可以去SU01里看用户的参数文件页签确认里面包含的角色参数文件时间戳是最新的。清理客户端缓存Fiori Launchpad对磁贴内容有强缓存用户端最好在Launchpad右上角菜单里做一次刷新或者CtrlF5强制刷新。把上面五步跑完大部分看不到磁贴的问题都能解决。我印象最深的一次案例是客户抱怨一个经理角色少了采购审批磁贴我层层查下来目录激活了、profile也生成了最后发现是那位经理长期不关浏览器Fiori前端缓存的旧版本里根本没这个目录。清一次缓存磁贴当场出现。4.3 症状B的排查链路磁贴有了权限还缺一块当磁贴能显示但点击报权限不足时问题基本落在授权对象上第一步永远是SU53。让用户在报错场景下打开SU53如果不是管理员可以让顾问持有用户身份去复现看系统返回的权限对象、字段名和当前值。区分两类权限缺失缺的是基础授权对象说明角色创建时目录预置的权限被误删或没带全。回到PFCG角色的授权页签补上对应权限对象并重新生成。缺的是组织级别字段比如销售组织VKORG、公司代码BUKRS没有值。此时在角色组织结构页签补全重新生成profile。检查OData服务是否激活Fiori应用前后端通信依赖Gateway服务。有些场景下后端授权看着没问题但OData服务压根没在/IWFND/MAINT_SERVICE里激活用户点进来就会因为服务不可用而表现成权限失败。这类问题在SU53里通常看不到明确对象反而在Gateway错误日志里能看到SERVICE_NOT_FOUND。4.4 症状C的排查链路导航与后端服务症状C往往是最难啃的硬骨头因为它在权限体系之外如果目标URL指向其他系统比如从S/4HANA跳转到BTP应用检查目标系统是否注册了可信任的OAuth、配置了正确的导航目标。如果是同一个系统内的应用多半是Gateway服务未注册或后端组件未激活。用/IWFND/MAINT_SERVICE重新激活服务必要时用/IWFND/CACHE_CLEANUP清理Gateway元数据缓存。套用了SSL/Web Dispatcher架构的环境还要检查路径重写规则Fiori应用对外暴露的URL和后端实际服务路径不一致也会造成404。4.5 一张表帮你快速定位症状最可能的原因第一步动作完全没磁贴目录未激活或角色未分配查目录激活状态和角色菜单磁贴在点击权限报错授权对象/组织级别缺失SU53抓对象磁贴在点击404/502OData服务未激活或导航配置错误查/IWFND/MAINT_SERVICE别人正常唯独用户异常用户缓存或账号状态问题清缓存或SU01查锁定状态升级后集体少功能新版本新增目录未分配对照版本发行说明补目录5. 业务目录的扩展、迁移与日常维护5.1 自研应用没有标准目录怎么创建自定义业务目录公司内部开发了一堆自研Fiori应用前端团队把应用发布以后权限侧需要自己维护入口。此时创建自定义业务目录是标准动作进入/UI2/FLPD_CONF的目录管理界面新建一个目录命名务必以ZC_开头例如ZC_MM_CUSTOM_APP。在目录下创建业务组Group组名最好按场景来比如自研采购工具。在组里新建磁贴绑上应用入口填写标题、图标、语义对象和动作目标URL填到应用的实际地址。保存内容把目录纳入传输请求按企业流程从开发系统传到测试、生产。在PFCG角色里分配这个目录后续流程与标准目录完全一致。5.2 标准目录不满足需求时优先考虑目录组合而不是扩展目录业务部门经常提这种需求标准目录里大部分磁贴都要但其中某两个不该让这个角色看到或者标准目录之外还要额外加一个自研入口。我的建议是**不要去改标准目录而是用组合思想解决。**用自定义目录放额外的应用入口用角色层面的菜单去控制实际可见集合——有些敏感磁贴虽然目录里带着但只要不在角色的目标映射里暴露就该隐藏。如果确实要保留标准目录大部分内容而只去掉一两个磁贴可以考虑从角色菜单中手动移除对应磁贴但提醒一句如果下次升级SAP重新同步目录被移除的磁贴可能会因为目录内容刷新而复活上线前务必回归验证。SAP也提供了Fiori Catalog Extension这类的官方扩展工具可以把自研应用挂到现有标准目录下。这个功能本身很好但用的时候要评估升级风险并保证扩展请求可回退、可追踪不要一次性扩展几十个标准目录否则升级排错会非常痛苦。5.3 系统升级对业务目录的影响S/4HANA版本升级时权限侧最容易忽略的就是业务目录。标准目录会随着版本更新引入新应用、新磁贴但已分配目录的角色不会自动获得新目录——如果新版本用全新目录承载了新功能你必须主动在角色里补加目录。所以我的固定动作是每次升级前先导出一份当前角色-目录-应用清单升级后对照版本说明把新增目录梳理一遍按岗位决定到底是补进现有角色还是新起角色。升级时如果发现标准目录有冲突通常是因为有人在标准目录上做过手工扩展再纠结也要先回退到自定义方案宁可多花两天重建目录也不要让生产系统带着冲突上线。5.4 用四层映射做权限评审和SoD检查做权限合规评审时光看角色列表没有意义审计要的是用户实际能访问什么。建议把链路完整展开成四层映射用户 - 业务角色 - 业务目录 - 应用/权限对象。可以用SUIM跑用户角色分配报告再配合PFCG里的目录分配明细导出一张Excel清单。SoD检查时真正要看的是目录里对应的权限对象而不是目录ID本身——因为两个目录可能包含同一个敏感权限对象单看目录会有盲区。这也是为什么我在项目里坚持在角色命名和目录命名上做规范管理ZR_开头的是角色ZC_开头的是自定义目录SAP开头的是标准对象一眼就能理清边界给做审计的同事省下大量时间。5.5 日常维护小清单最后给一份我每季度都会执行的维护清单按这个节奏走业务目录层面的问题基本都能提前止损用/UI2/FLPD_CONF检查系统中是否存在未激活但被角色引用的目录及时激活或清理引用。导出所有角色的目录分配表核对标准目录是否存在手工扩展痕迹。抽查新入职用户的角色确认角色-目录-用户三要素一致。在测试环境模拟一次Fiori全新登录检查主要岗位磁贴渲染是否正常、权限报错是否清零。每半年清理一次无效用户解除对已废弃角色的引用避免权限蔓延。6. 做权限项目这么多年我沉淀下来的几个习惯说几个纯个人经验不一定写在任何官方文档里但实战里非常顶用。第一个习惯是先问岗位再选目录最后才碰权限对象。很多顾问一到客户现场就扎进PFCG里建角色结果建出来的角色和业务部门理解的岗位完全对不上。我的做法是先在系统里搜索标准目录把岗位职责翻译成三到五个候选目录再和业务负责人确认哪些应用是必需的哪些是可选的。目录选对了后面百分之六十的权限工作已经完成。第二个习惯是永远用SU53说话而不是猜。权限报错这事儿现场同事第一反应往往是重清缓存、重建角色十次里有六次是白费功夫。SU53给出来的对象和错误字段非常明确拿它去对照角色授权页签问题基本半小时内能定位。Fiori环境里也一样不要因为用户说我就是点不开就去盲目调空间配置。第三个习惯是目录分配之后一定重新生成profile且一定有人做一次端到端验证。这两步在企业里经常被当成下级执行的琐事忽略但恰恰是它们决定了权限配置能不能真正落到用户身上。我在这个环节吃过亏现在无论项目多急都要求测试环节有独立账号、真实业务场景走一遍而不只是看角色分配成功就收工。希望这篇拆解能帮你把Business Catalogs这个环节彻底理顺。下次再有人问你为什么Fiori里看不到磁贴你可以先问他你检查目录激活状态了吗
返回列表