MuleSoft Omni Gateway in front of legacy IBM ACE
The situation
A bank runs its core integrations on IBM App Connect Enterprise. One endpoint serves 278 operations, mostly SOAP 1.1 and plain HTTP, with no consumer-level security at all. Every caller that reaches the endpoint can reach everything behind it.
The bank needed to open that estate to external partners, fintech apps and digital channels, safely. Rewriting the ACE flows was not an option: they are stable, they are audited, and they carry core banking traffic.
What we built
We put a MuleSoft Omni Gateway in front of ACE and added security, governance and visibility there instead of inside the middleware.
Gateway platform
Omni Gateway (Flex) runs in connected mode on the bank's own OpenShift, managed centrally from Anypoint API Manager. We stood it up as DEV and UAT environments on the LTS channel, with TLS terminated on the bank's F5. Nothing leaves the bank's network.
Two front doors, one back end
Consumers choose the style that suits them: a REST/JSON API or a SOAP passthrough. Both land on the same unchanged ACE back end. Partners who want a modern contract get one; partners already speaking SOAP keep working.
Identity and access
OAuth 2.0 client credentials through the Red Hat build of Keycloak. The JWT is validated at the gateway and the client id is checked against approved Anypoint contracts, so an unknown or unapproved client never reaches the middleware.
Built-in policy set
JWT validation, response timeout, rate limiting and spike control on the token endpoint, and SLA-ready per-consumer limits. A single misbehaving partner can no longer degrade a shared ACE endpoint.
Custom policies built with the Rust PDK
The off-the-shelf policy set covers perimeter security. Operation-level control needed custom work, so we wrote three policies with the MuleSoft Policy Development Kit in Rust.
Per-operation authorization
The policy reads the requested operation from the request body, either the JSON root key or the SOAP body element, and allows or denies it per consumer. Grants come from a version-controlled registry, so a partner gets exactly its 60 of 278 operations and nothing else. Anything outside the grant returns a clean 403 before it reaches ACE.
This is the capability a single shared ACE endpoint simply cannot provide.
Request signing
An optional body signature check against per-consumer certificates, for partners that need non-repudiation on what they send.
PAN masking logger
Card numbers are masked in anything the gateway logs, so observability does not become a compliance problem.
Automation
Everything is reproducible. Scripts deploy gateway instances and apply policies per environment, with no hand-configured drift between DEV and UAT.
Consumer onboarding runs as a single command. It creates the client application, the Keycloak client and the Anypoint contract, applies the operation grants, then probes all 278 operations across both front doors against the expected allow/deny matrix. The target is zero mismatches, and the run is the evidence.
Each consumer also receives a generated client pack: an integration guide in Word, PDF or Confluence, a Postman collection, and an OpenAPI specification containing only that consumer's operations. Partners never see what they are not entitled to call.
What the bank gets
Zero change to legacy ACE. Security, governance and visibility are added in front of the middleware, not inside it. No flow rewrites, no regression risk on core banking traffic.
Least privilege per partner, at operation level. Grants are explicit, version controlled, and tested on every onboarding.
A modern contract for partners. REST/JSON, OAuth 2.0 and OpenAPI instead of SOAP-only, with no back-end rewrite.
One control plane. Policies, contracts and per-consumer analytics, including requests, latency and errors per client application, all in Anypoint.
Fast partner onboarding. From an agreed operation list to tested credentials and a client pack in a day.
Fits the bank's infrastructure. Runs on their OpenShift behind their F5. Data stays in their network.
Ready for the next step. The same gateway can later front new APIs, add data-level authorization, or route to a modernized back end without consumers noticing.
Where this fits
This pattern pays back fastest where a mature IBM integration estate has to be exposed to external consumers under regulatory scrutiny: open banking and partner programs, digital channels built on top of core systems, and any estate facing an ACE re-platforming decision where consumer lock-in needs to be broken before the migration starts.
Talk to us
If you are running IBM ACE and need to open it up without touching it, we will walk your current endpoints, consumers and security posture with you and come back with a concrete target state.
Get in touch with our team to arrange a walkthrough of your ACE estate.