You can perform IP Whitelisting with the AccessControl policy.
The next question you may wish to ask is - can you dynamically set the IP address for that policy?
Not currently, but that enhancement is in the backlog.
(If you need to restrict with dynamic IPs, you could do it with a JavaScript policy)
But I think restricting by IP address is not super useful.
Better to restrict by the API Key. This, coupled with the API Product concept, allows you to perform the checks you desire.
The requirement, of course, is that the API Keys that you distribute, remain secret.
Suppose you have clientA and clientB. And apikeyA and apikeyB, respectively.
Edge will see apikeyA and then conclude that this is a call that originates from clientA.
clientA (the app as configured in Edge) has authorization to call a particular API Product. Let’s call it API ProductA. ProductA includes proxy1 proxy2 and proxy3.
clientB (the app) has authorization to call ProductB. ProductB includes proxy1, only.
therefore an inbound request bearing the key for clientB (apikeyB) will be allowed only in proxy1, and an inbound request bearing apikeyB will not be allowed in proxy2 or proxy3.
If the developer for “client A” somehow obtains the key that has been distributed to “client B”, then client A might use apikeyB, in which case the keys become meaningless, and you cannot rely on them for restricting access. Secrecy of the key is required to maintain the integrity of the system.
Does this help?