High Trust provider Apps (On-Premise environment) won’t publish when Azure App Proxy enabled in web application service application proxy Association

Symptom:

High Trust provider Apps (On-Premise environment) won’t publish when Azure App Proxy enabled in web application service application proxy Association

A high trust app (aka S2S, for Server-To-Server) is for on-premise environment and not intended for cloud-hosted environment. Apps that use S2S would typically be installed behind the firewall in instances that is specific to an individual company. A High trust app is allowed to perform any actions it has been granted permissions to, regardless of the user's permission.

To configure the trust for these apps, you can follow the steps mentioned in article Create high-trust SharePoint Add-ins.

There could be some instances where you have Hybrid configured in your on-premise environment which is done using Azure Service application proxy. In this scenario, while trying to install any high trusted app in SharePoint on-premise site collection, we get the error message “Sorry, something went wrong with adding the app. Click to retry".

When you check the ULS Logs, you will find error message as below where it complains about validating access token.

 

OWSTIMER.EXE SharePoint Foundation App Deployment M6uw High App Packaging: Create SPAppPart : the app part relationship: https://schemas.microsoft.com/sharepoint/2012/app/relationships/content-resource is not recognized, skipping.
OWSTIMER.EXE SharePoint Foundation App Deployment ajlc1 High Error when try to get access token when deployAppInstanceId <AppInstnceID> with AppPrincipalId <AppPrincipalID>Exception=System.ArgumentNullException: Value cannot be null.                    Parameter name: applicationRealm at Microsoft.SharePoint.SPSecurityContext.SecurityTokenForApplicationContext(SPIdentityContext userIdentityContext, String applicationId,Uri applicationRealm, SPApplicationContextAccessTokenTypeapplicationTokenType, SPApplicationDelegationConsentType consentValue) at Microsoft.SharePoint.SPServerToAppServerAccessTokenManager.GetAccessTokenForDeploymentTask(Guid siteId, SPUserToken userToken,String appPrincipalId) at Microsoft.SharePoint.Lifecycle.SPAppPrincipalAccessTokenTask.<>c__DisplayClass1.<Deploy>b__0()

Cause:

This happens because it is trying to validate the app principal access token at cloud or Azure proxy level. Since we are creating a high-trust app for on-premises use, we must disable access token check that is related to cloud-hosted app, which is not needed for high-trust apps.

Resolution:

Backup and add the following register key AppDeploymentCheckAppPrincipalAccessToken in SharePoint servers at [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\15.0\WSS] with value REG_DWORD 0x00000000 (0)

 

 

 

 

 

 

 

 

 

 

 

 

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall / reconfigure Windows or Sharepoint. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base: 322756 How to back up and restore the registry in Windows

References : Create high-trust SharePoint Add-ins

Create and use access tokens in provider-hosted high-trust SharePoint Add-ins

Troubleshooting high-trust SharePoint Add-ins

Creating SharePoint Add-ins that use high-trust authorization

 

POST BY : Goldi Agrawal [MSFT]