I’ve resolved this exact issue multiple times with cash management Fiori apps. The problem involves all four areas you mentioned: SAML attribute mapping, OData authorization context, token propagation, and Fiori-backend integration. Here’s the comprehensive solution:
1. SAML Attribute Mapping Configuration:
In transaction SAML2, verify your attribute mapping for the cash management IdP:
Attribute Statement:
NameID Format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Attribute Mapping:
email -> SU01 Email
uid -> User ID (case-sensitive)
Critical: The uid attribute must match SAP user ID exactly, including case. Cash management OData services perform case-sensitive authorization checks.
2. OData Authorization Context Setup:
Configure the OData service in /IWFND/MAINT_SERVICE:
- Service: FAP_BANK_ACCOUNT_SRV
- System Alias: LOCAL
- Authentication Method: “SAP Assertion Ticket” (not Technical User)
- Enable “Principal Propagation”
This ensures the SAML user context flows through to backend authorization checks.
3. Token Propagation Configuration:
Enable trusted system relationships for token propagation:
In transaction SMT1, add your Fiori frontend system:
Trusted System: <Frontend_SID>
Trust Type: RFC and HTTP
In transaction STRUST, import SAML IdP certificate to SSL Server Standard PSE and add to ACL list.
Verify Web Dispatcher parameter:
icm/trusted_reverse_proxy_0 = SUBJECT="CN=webdispatcher.company.com", ISSUER="CN=CompanyCA"
4. Fiori-Backend Integration Authentication Flow:
Configure SICF service nodes for cash management apps:
Path: /sap/bc/ui5_ui5/sap/fap_bank_account
- Logon Procedure: Standard
- Security Requirements: SSL, Logon Data Required
- Authentication: SAP Logon Ticket + User ID/Password
Path: /sap/opu/odata/sap/FAP_BANK_ACCOUNT_SRV
- Enable “Principal Propagation”
- Authentication Method: Ticket or User/Password
5. Authorization Object Assignment:
Even with correct token propagation, users need specific authorizations. Assign via PFCG role:
Authorization Objects:
F_BANK_BUK: Activity 03 (Display), 02 (Change)
F_BNKA_INT: Bank Country *, Bank Key *
S_SERVICE: Service Type OData, Service Name FAP_BANK_ACCOUNT_SRV
S_RFC: Function Group SUGU, Activity 16
6. Validation and Testing:
Test the complete authentication flow:
a) Enable SAML trace: Transaction SAML2 → Trace Level 3
b) User logs into Fiori launchpad → Check SAML assertion received
c) User opens cash management app → Verify OData call includes user context
d) Check backend authorization: Transaction ST01, filter by user ID
Look for successful authorization check entries for F_BANK_BUK and S_SERVICE.
7. Common Pitfalls to Avoid:
- Using technical user for OData service (loses user context)
- Missing trusted system configuration (breaks token propagation)
- Expired or untrusted IdP certificate (SAML validation fails)
- Case mismatch between SAML uid and SAP user ID (authorization fails)
- Missing S_SERVICE authorization object (OData access denied)
Implementation Results:
After applying this configuration, SAML user context propagates correctly through the entire stack: IdP → Web Dispatcher → Gateway → OData Service → Backend Authorization. Users access cash management Fiori apps seamlessly with their SAML credentials, and authorization checks execute in their user context rather than a generic technical user.
The key is ensuring consistent configuration across all layers - SAML attribute mapping must align with OData authorization context requirements, token propagation must be enabled at every hop, and Fiori-backend integration must preserve user identity throughout the authentication flow.
This draft is based on general SAP S/4HANA knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.