Understand complex applications in Microsoft Entra application proxy
Article
Applications are often made up of multiple individual web applications. These situations use different domain suffixes or different ports or paths in the URL. The individual web application instances must be published in separate Microsoft Entra application proxy apps. In these situations, the following problems might arise:
Pre authentication: The client must separately acquire an access token or cookie for each Microsoft Entra application proxy app. The multiple acquisitions lead to more redirects at sign in to microsoftonline.com.
Cross-Origin Resource Sharing (CORS): CORS calls, using the OPTIONS method, are used to validate access for the URL between the caller web app and the targeted web app. The Microsoft Entra application proxy cloud service blocks these calls. Blocking occurs because the requests can't contain authentication information.
Poor app management: Multiple enterprise apps are created to enable access to a private app adding friction to the app management experience.
The following figure shows an example for complex application domain structure.
With Microsoft Entra application proxy, you can address this issue by using complex application publishing that is made up of multiple URLs across various domains.
A complex app has multiple app segments. Each app segment has an internal and external URL.
One Conditional Access policy is associated with the app. Access to any of the external URLs work with preauthentication with the same set of policies. These policies are enforced for all app segments.
Complex apps provide several benefits:
User authentication
Mitigation of CORS issues
Access for different domain suffixes or different ports or paths in the internal URL
This article shows you how to configure wildcard application publishing in your environment.
Characteristics of application segments for complex application.
Application segments are only configured a wildcard application.
External and alternate URL should match the wildcard external and alternate URL domain of the application respectively.
Application segment URLs (internal and external) need to maintain uniqueness across complex applications.
CORS Rules (optional) can be configured per application segment.
Access is only granted to defined application segments for a complex application.
Note
If all application segments are deleted, a complex application will behave as a wildcard application opening access to all valid URLs by specified domain.
You can have an internal URL defined both as an application segment and a regular application.
Note
Regular applications always take precedence over a complex app (wildcard application).
Prerequisites
Enable application proxy and install a connector that has line of sight to your applications. See the tutorial Add an on-premises application for remote access through application proxy to learn how to prepare your on-premises environment, install and register a connector, and test the connector.
Configure application segments for complex application.
To edit/update an application segment, select the application segment from the list on the manage and configure application segments page. Upload a certificate for the updated domain, if necessary, and update the Domain Name System (DNS) record.
Configuring single sign-on (SSO)
Note
Integrated Windows Authentication (IWA) single sign-on doesn't support using wildcard SPNs. For example, a wildcard such as http/*.contoso.com uses the single configured SPN such as http/app.contoso.com for all the segments.
DNS updates
When using custom domains, create a DNS entry with a CNAME record for the external URL. For example, point *.adventure-works.com to the external URL of the application proxy endpoint. For wildcard applications, point the CNAME record to the relevant external URL: <yourAADTenantId>.tenant.runtime.msappproxy.net.
Alternatively, a dedicated DNS entry with a CNAME record for every individual application segment can be created as follows:
External URL of the application segment > <yourAADTenantId>.tenant.runtime.msappproxy.net
Additionally, adding a CNAME record for the application ID in the same DNS zone is required:
If the connector group that is assigned to the Complex App isn't in the region of the Default connector group, one of the following domain suffixes must be used in the DNS entries:
Deploying and monitoring enterprise applications to Azure solutions can ensure security. Explore how to deploy on-premises and cloud based apps to users.
Learn answers to frequently asked questions (FAQ) about using Microsoft Entra application proxy to publish internal, on-premises applications to remote users.
Learn how to provide secure access to internal applications for remote workers by deploying and configuring Microsoft Entra application proxy in a Microsoft Entra Domain Services managed domain