Reseller Storefront

Over the past several weeks I have received numerous questions from various partners regarding the reseller storefront. This project is a web application that acts as a storefront for Microsoft partners and enables them to sell Microsoft offers to their customers. It can be deployed directory from Partner Center or using the Azure Resource Manager (ARM) templates available with the source code. With this post I will be covering how to deploy the reseller storefront using the available ARM templates.


Before attempting to deploy the storefront it is recommended that you gather all of the prerequisite values. The following values will be required in order to deploy the project

Value Description
websiteName Name assigned to the website in Azure (e.g.
webPortalClientId Identifier for the Azure AD application utilized for authentication
webPortalClientSecret Key for the web portal Azure AD application
webPortalAadTenantId Tenant identifier where the web portal Azure AD application is provisioned
partnerCenterApplicationId Identifier for the Azure AD application used to access the Partner Center API
partnerCenterApplicationSecret Key for the Azure AD application used to access the Partner Center API
partnerCenterAadTenantId Tenant identifier where the Partner Center Azure AD application is provisioned

The following sections will walk you through how to obtain the appropriate values for the above parameters

Website Name

The websiteName parameter will be part of the URL assigned to the instance of App Services created in Azure as part of the deployment. If you specify cspstorefront for this parameter then you will access the storefront using This value must be unique, if you specify a value that is already taken then the deployment will fail. In order to correct the failure specify a different value for the parameter and try again.

Web Portal Azure AD Application

Perform the following to create the required Azure AD application

  1. Browse to the Azure Management portal,, and login using credentials that have global admin privileges
  2. Open the Azure AD management experience and then click on App registrations –> Add
  3. Complete the new application wizard. The value for the Sign-on URL should match the value you would like to use for the websiteName parameter
  4. Document the Application ID value it will be the webPortalClientId AAD03
  5. Click Required permissions, then click Windows Azure Active Directory (Microsoft.Azure.Active.Directory) , and add the Access the directory as the signed-in user permission
  6. Click on Keys, specify a description, select an appropriate expiration and then click Save AAD04
  7. Document the key value, that is displayed after you click Save. This value will be the webPortalClientSecret

Partner Center Azure AD Application

Perform the following to create the Azure AD configured to access the Partner Center API

  1. Browse to Partner Center,, and login using credentials that have admin agent and global admin privileges
  2. Click on the following Dashboard –> Account Settings –> App Management
  3. Click Add new web app to create the applicationPC01
  4. Document the following values
    Field Values
    App ID partnerCenterApplicationId
    Account ID webPortalAadTenatId and partnerCenterAadTenantId
    Key partnerCenterApplicationSecret
    [![PC02]( "PC02")](

Deploying using Visual Studio

A deployment project has been included with the source code for the reseller storefront. Before deploying the project you will need an Azure storage account. If you do not already have one you will need to provision a new one before proceeding. To deploy the storefront open the CustomerPortal solution, using Visual Studio, and perform the following

  1. Right click on the CustomerPortal solution in the Solution Explorer and then click Restore NuGet Packages
  2. Right click on the CustomerPortal.Deployment project then click on Deploy –> New…
  3. Complete the Deploy to Resource Group wizard and then click Ok
  4. Modify the parameters accordingly in the Edit Parameters wizard and then click Save
  5. Review the data in the Output window to confirm the storefront was successfully deployed. Please note this could take a couple of minutes.

Configuring the Storefront

Now the storefront has been deployed it must be configured. Perform the following in order to configure everything

  1. Browse to the website (e.g. and login using credentials that belong to the CSP partner that have global admin privileges
  2. Complete each of the configuration steps for the storefront to be functional. The storefront will display a message stating it is under construction until all three configuration tasks have been completedPortal01

Once the storefront configuration has been completed you will be ready to start transacting!