The two options that, I think, we have for creating provider-hosted apps are the following. Having said that you may have a 3rd option which is a hybrid scenario:
- Using a locally installed SharePoint 2013 environment (Azure or a local SP box) and configuring for a high-trust apps for SharePoint. You can have a local Sharepoint farm either by spinning an Azure VM image which has all the nuts and bolts required to setup SharePoint, AD, etc.. (this can be cheaper if you have MSDN subscriotion) or having an expensive machine where SharePoint 2013 is installed.
- Using Office 365 SharePoint tenant where all the configuration is setup for you via ACS – OAuth.
Here are relevant videos:
A TechEd 2014 video on setting up your on-premises environment for app development.
Using an existing Windows Azure AD Tenant with Windows Azure.