I am going to build a native Salesforce app (Managed package) that will be installed in many subscriber orgs.
The app will make callouts (eg. calling REST endpoint) to external Java app. The Java app will then use Standard Salesforce APIs (SOAP or REST) to modify Accounts records on behalf of the user in the subscriber org.
What is the recommended way to do this? It needs to be:
- secure: Respect the Salesforce permissions of the user. Not use "single point of failure" integration user for the API access back to Salesforce. It needs to pass Security Review without any doubt ;-)
- minimize manual work: User should not have to constantly log into both system. User information should also not be mirrored in the Java app.
- lean: The fewer code and complex configuration is needed the better.