Securing Integration Flows with Credentials, OAuth and Certificates
Learn how to configure inbound and outbound security for Integration Suite iFlows using the Security Material store, OAuth2 client credentials, basic auth, and certificate-based mutual TLS, and understand how these choices affect runtime behavior and support.
Explanation
Security configuration is one of the most consequential design decisions in an Integration Suite project because it determines whether a flow can even establish a connection, and because misconfigured security material is the single most common cause of failed go-lives. Every integration flow deployed on the Cloud Integration capability needs two separate security concerns addressed: how the flow authenticates itself to the sender (inbound security, e.g. who is allowed to call this iFlow's endpoint) and how the flow authenticates to the receiver system (outbound security, e.g. credentials or certificates used when calling an S/4HANA OData service, a third-party REST API, or an on-premise system through Cloud Connector). All outbound credentials, OAuth client details, and certificates are stored centrally in the tenant's Security Material area (accessible under Monitor > Manage Security in the Integration Suite Cloud Integration UI), not hardcoded inside the iFlow. This separation matters architecturally: the same iFlow package can be transported between design, quality, and production tenants without embedding sensitive values, because each tenant maintains its own security material with matching aliases. The iFlow only references an alias name (for example "S4_ODATA_USER" or "PARTNER_OAUTH_CLIENT"), and the actual secret, keystore entry, or OAuth configuration is resolved at runtime from that tenant's store. For outbound calls, common patterns include User Credentials (basic auth username/password), OAuth2 Client Credentials (where Integration Suite requests a bearer token from an authorization server before calling the target), and Client Certificate (mutual TLS, where a certificate/private key pair stored in the keystore is presented during the TLS handshake). Certificate-based authentication is common when integrating with S/4HANA Cloud APIs or partner systems that require X.509-based trust rather than shared secrets, and requires uploading both the certificate/key material and, separately, trusting the receiver's server certificate if it is not signed by a widely trusted CA. For inbound security, the iFlow's sender channel (typically HTTPS or SOAP) is configured with an authentication mode: Client Certificate, OAuth2 (validating a bearer token issued by an identity provider such as the BTP-integrated identity service), or Basic Authentication against a user stored in the tenant. In production landscapes it is common to require OAuth2 client credentials from calling systems (like SAP Process Orchestration remnants, S/4HANA outbound calls, or external partner middleware) rather than static basic auth, because tokens are short-lived and scoped, reducing blast radius if leaked. A critical operational nuance is that security material changes do not require iFlow redeployment in most cases, but they do require the security artifact to be saved and, for certificates nearing expiry, proactively rotated before the old certificate expires โ expired certificates cause silent connection failures that surface as generic TLS handshake errors in the Message Processing Log, which are often misdiagnosed as network issues. On-premise connectivity via Cloud Connector introduces an additional trust layer: the Cloud Connector must have its own certificate trusted by the backend, and the principal propagation or system-to-system authentication chosen there is independent of, but must be consistent with, the security material configured in Integration Suite. Across deployment contexts, S/4HANA on-premise integration typically relies on Cloud Connector plus either basic auth or certificate-based communication users configured in the backend, while S/4HANA Cloud (public cloud) integration commonly uses OAuth2 or communication scenarios exposed via communication arrangements, which is a different configuration surface entirely from Integration Suite's own security material and must be coordinated with the SAP Fiori-based Communication Management apps in the S/4HANA Cloud tenant.
Code example
<!-- Excerpt: Receiver channel adapter configuration snippet (conceptual, not a literal exported artifact) --><!-- Illustrates referencing a Security Material alias instead of hardcoding credentials --><bpmn2:extensionElements> <ifl:property> <key>Authentication</key> <value>OAuth2ClientCredentials</value> </ifl:property> <ifl:property> <key>credentialName</key> <value>PARTNER_OAUTH_CLIENT</value> <!-- alias resolved from tenant Security Material --> </ifl:property> <ifl:property> <key>Address</key> <value>https://partner-system.example.com/api/orders</value> </ifl:property></bpmn2:extensionElements> // Groovy script step: fail fast with a clear message if an expected header used// for downstream auth context is missing, rather than letting the call fail obscurelyimport com.sap.gateway.ip.core.customdev.util.Message Message processData(Message message) { def headers = message.getHeaders() if (!headers.containsKey('X-Partner-Token-Scope')) { throw new IllegalStateException('Missing expected auth scope header before outbound call - check sender OAuth token claims') } return message}Real project scenario
A retail customer's Integration Suite tenant had an iFlow calling a partner's REST API using OAuth2 Client Credentials. Two weeks after go-live, all outbound calls started failing intermittently in production only. Investigation showed the partner had rotated their OAuth token endpoint's TLS certificate, and Integration Suite's outbound call was rejecting it because the new intermediate CA was not yet trusted in the tenant's keystore. The fix required uploading the updated CA chain to the Security Material trust store and re-testing, without touching the iFlow itself, which highlighted to the team the importance of separating trust configuration from flow logic during design reviews.
Common mistakes
โข Hardcoding usernames or tokens directly in iFlow script steps instead of referencing Security Material aliases, breaking transport between tenants โข Not tracking certificate expiry dates, leading to unplanned production outages when a client certificate lapses โข Assuming Cloud Connector trust configuration automatically covers Integration Suite's own outbound TLS trust requirements โข Using long-lived basic auth credentials for internet-facing inbound endpoints instead of OAuth2 with scoped, short-lived tokens โข Forgetting that S/4HANA Cloud communication arrangements are a separate configuration surface from Integration Suite security material, causing confusion during troubleshooting
Best practices
โข Always reference Security Material aliases in iFlows rather than embedding literal credentials โข Maintain a certificate expiry tracking process with alerts well before expiration dates โข Prefer OAuth2 over static basic auth for both inbound and outbound where the counterpart system supports it โข Keep Cloud Connector trust and Integration Suite trust store configurations documented together since they are often confused during incident triage โข Test security material changes in a non-production tenant with an equivalent alias structure before promoting to production
Interview angle
Interviewers often probe whether a candidate understands that Integration Suite separates iFlow design from runtime security material, and why that separation is essential for safe transport across landscapes. Be ready to explain the practical difference between basic auth, OAuth2 client credentials, and certificate-based mutual TLS, when each is appropriate, and how you would diagnose a TLS handshake failure versus an authentication rejection versus an authorization scope issue in the Message Processing Log.