This post is a contribution from Charls Tom Jacob, an engineer with the SharePoint Developer Support team.
In this blog, I will describe the steps to deploy a provider hosted app on Windows Azure hosted site (same steps should work for any IIS sites for that matter). The app will be deployed into SharePoint Online site, whereas the underlying business logic will reside on a separate server. It could be an on-premise server or a server provided by a hosting company. For this blog post, I decided to use a site hosted on Azure.
1. Create a provider hosted app project in Visual Studio 2012.
2. Select ACS.
3. Navigate to your App Catalog site collection URL (/_layouts/15/appregnew.aspx).
a. Generate a Client ID and Client Secret.
b. Make sure to give correct values for AppDomain and Redirect URL. This should be corresponding to where you want to host your app web.
4. Publish the App project by specifying the same Redirect URL, Client ID and Client Secret as in the previous step.
5. This gives you the deployable units as below.
a. Rename the .app file to .zip and verify that app manifest contains the correct Client ID.
6. Upload the app to the App Catalog site collection in your SharePoint site.
7. Modify the AppWeb web.config file to include the Client ID and Client Secret as shown below.
8. Deploy the web site to the desired location using any of the publishing methods available.
9. Add the app to one of the sites and launch it.
NOTE: You will run into “The parameter ‘token’ cannot be null or empty string” error if you make a mistake in the Client ID and/or Client Secret or redirect URL.
Hope this walk-through was helpful!