Skip to content

Custom domains

Custom domains

This guide explains how to configure a custom domain (e.g., apps.yourdomain.com) for your App Store for Intune deployment on Azure App Service.

By default, your portal is accessible via an Azure-assigned URL like:

https://apprequestportal-xxxx.azurewebsites.net

You can configure a custom domain to provide a more professional, branded experience:

https://apps.yourdomain.com
  • Azure App Service running your portal (Basic tier or higher for custom domains with SSL)
  • Access to your domain’s DNS management
  • Admin access to your Entra ID App Registration

DNS records have to be in place before Azure validates the domain (Azure reads the TXT and CNAME you create at registration time). The portal’s in-product Settings tab guides admins through these steps in this order, and so does this reference doc:

  1. Configure DNS records at your provider
  2. Add the custom domain to Azure (one-click button or manual)
  3. Update Entra ID redirect URIs
  4. Update the portal’s Portal URL setting

If using a subdomain like apps.yourdomain.com:

TypeNameValueTTL
CNAMEappsyour-app.azurewebsites.net3600
TXTasuid.apps<Custom Domain Verification ID>3600

To get the Custom Domain Verification ID:

  1. Go to Azure PortalApp Services → your App Service. The App Service name is the appName value you captured from the deployment outputs.
  2. Go to SettingsCustom domains.
  3. Select + Add custom domain. The Custom Domain Verification ID is shown in the dialog. Copy it for your DNS TXT record above. You’ll come back here to actually save in Step 2.

If using your root domain (e.g., yourdomain.com):

TypeNameValueTTL
A@<App Service IP Address>3600
TXTasuid<Custom Domain Verification ID>3600

Note: Get the App Service IP address from SettingsCustom domainsIP address in Azure Portal.

DNS changes can take anywhere from a few minutes to 48 hours to propagate globally. You can verify propagation using:

Step 2: Add custom domain + SSL certificate to Azure

Section titled “Step 2: Add custom domain + SSL certificate to Azure”
Section titled “Option A: One-click deployment (recommended)”

The portal ships an ARM template that adds the custom domain hostname binding and provisions a free Azure-managed SSL certificate in a single deployment. Launch it directly:

Deploy to Azure

The same template is also reachable from inside the portal once you’re signed in: Admin → Settings → Custom Domain Setup → Configure Custom Domain in Azure.

DNS records (Step 1) must already be propagated, otherwise Azure’s domain validation will fail at deployment time.

Microsoft’s official tutorial is the canonical reference: Tutorial: Map custom domain to App Service (Microsoft Learn).

Quick summary:

  1. Go to Azure PortalApp Services → your App Service. The App Service name is the appName value you captured from the deployment outputs.

  2. Go to SettingsCustom domains.

  3. Select + Add custom domain.

  4. In the Add custom domain dialog, set:

    • Domain provider: All other domain services (use App Service Domain only if you purchased the domain through Azure itself).
    • TLS/SSL certificate: App Service Managed Certificate for the free Azure-managed cert. Pick Add certificate later if you’ll bring your own, see Other certificate options below.
    • TLS/SSL type: SNI SSL.
    • Hostname record type: CNAME for subdomains (recommended), A for apex/root domains.
    • Domain: enter your custom domain (e.g., apps.yourdomain.com).

    Once the domain is entered, the Domain validation section shows the DNS records Azure expects and their current resolution status, useful for confirming your Step 1 DNS records are propagated before you click Validate.

    Azure Portal Add custom domain dialog with All other domain services selected, App Service Managed Certificate, SNI SSL, and the Domain validation section showing the expected CNAME and TXT records

  5. Select Validate. Each row in the Domain validation table flips to a green check once DNS is resolving correctly. If validation fails, your Step 1 DNS records haven’t propagated yet, wait and retry.

    Add custom domain dialog with successful Domain validation: green checks on both the CNAME and TXT records, Add button now enabled

  6. Select Add. Azure shows a notification confirming the custom domain was added, the App Service Managed Certificate was created, and the SSL binding was configured, all in one operation.

    Azure notification: Successfully added custom domain, successfully created App Service Managed Certificate and configured SSL binding

    Allow a few minutes for the certificate to issue. The Custom domains list initially shows the new domain with no binding, then automatically updates to Secured with SNI SSL once provisioning finishes. No further action is needed in the Managed Certificate path.

    Custom domains list showing the new domain with Status: Secured and Binding type: SNI SSL

If you selected Add certificate later in Step 4, finish with these extra steps to add and bind your own cert:

  1. Go to SettingsCertificates+ Add certificate.
  2. Select your certificate source (Key Vault import, upload, or Managed Certificate) and complete the dialog.
  3. Return to SettingsCustom domains → select your domain → Add binding → choose your certificate with SNI SSL.

The one-click template uses an Azure-managed certificate, which has these limitations:

  • Available for App Service Basic tier and above only
  • No wildcard domains
  • No apex/root domains (use Azure Front Door or a third-party cert)

If your scenario requires a different certificate path, replace step 7 above with one of these:

Azure Key Vault certificate:

  1. Upload or generate a certificate in Azure Key Vault
  2. In App Service → SettingsCertificates+ Add certificate
  3. Select Import from Key Vault
  4. Choose your Key Vault and certificate
  5. Bind to your custom domain

Bring your own certificate:

  1. Obtain a certificate from a Certificate Authority (CA)
  2. Export as PFX/PEM with private key
  3. In App Service → SettingsCertificates+ Add certificate
  4. Select Upload certificate
  5. Upload your PFX/PEM file
  6. Bind to your custom domain

Step 3: Update Microsoft Entra ID redirect URIs (App Store app registration)

Section titled “Step 3: Update Microsoft Entra ID redirect URIs (App Store app registration)”

Redirect URIs are added to the App Store app registration’s Single-page application platform.

  1. Go to Microsoft Entra admin centerApp registrations

  2. Select your App Store app registration (commonly named App Store for Intune or similar). If you have multiple app registrations and need to confirm which one the portal uses, get the client ID from Azure PortalApp Service → your App Store App Service → SettingsEnvironment variables (or Configuration in older portal versions) → AzureAd__ClientId, then match it to the Application (client) ID column on the App registrations list.

  3. Go to AuthenticationPlatform configurationsSingle-page application

  4. Add the following redirect URIs:

    https://apps.yourdomain.com
    https://apps.yourdomain.com/auth/callback
  5. Important: Keep the existing Azure URLs during transition so any open tabs and bookmarks keep working:

    https://your-app.azurewebsites.net
    https://your-app.azurewebsites.net/auth/callback
  6. Select Save

  1. Sign in to your portal as an admin

  2. Go to AdminSettings

  3. On the Communications tab, update the Portal URL to your custom domain:

    https://apps.yourdomain.com
  4. Select Save Settings

This controls the base URL used in email notifications and Teams bot notification links.

If you’re using environment variables for the API URL, update REACT_APP_API_URL:

REACT_APP_API_URL=https://apps.yourdomain.com/api

Ensure all traffic uses HTTPS:

  1. In Azure Portal → App Service → SettingsConfiguration
  2. Go to General settings
  3. Set HTTPS Only to On
  4. Select Save

Step 6: Update Teams bot configuration (if enabled)

Section titled “Step 6: Update Teams bot configuration (if enabled)”

If you have the Teams Bot enabled for proactive notifications, two things need updating:

  1. Go to Azure PortalAzure Bot resource → Configuration
  2. Change Messaging endpoint from:
    https://your-app.azurewebsites.net/api/messages
    to:
    https://apps.yourdomain.com/api/messages
  3. Select Apply
  1. Edit manifest.json and add your custom domain to validDomains:
    "validDomains": [
    "apps.yourdomain.com",
    "your-app.azurewebsites.net"
    ]
  2. Optionally update the developer URLs (websiteUrl, privacyUrl, termsOfUseUrl) to use the custom domain
  3. Re-zip the manifest files (manifest.json, color.png, outline.png)
  4. In Teams Admin CenterTeams appsManage apps, find the existing App Store for Intune bot, select it, and upload the updated package

After configuration, verify:

  • DNS resolves correctly (nslookup apps.yourdomain.com)
  • HTTPS works without certificate warnings
  • Portal loads at custom domain
  • Sign-in/authentication works
  • All navigation links use the custom domain
  • Email notifications contain correct URLs
  • Teams bot notifications still arrive (if enabled)
  • Verify TXT record is correctly configured
  • Wait for DNS propagation (up to 48 hours)
  • Ensure the verification ID matches exactly

”Certificate error” or “Not secure”

Section titled “”Certificate error” or “Not secure””
  • Verify SSL certificate is bound to the custom domain
  • Check certificate hasn’t expired
  • Ensure certificate covers your domain (exact match or wildcard)

“Authentication failed” after domain change

Section titled ““Authentication failed” after domain change”
  • Verify redirect URIs are updated in Microsoft Entra ID
  • Clear browser cookies and cache
  • Check both old and new URLs are in redirect URIs during transition
  • Ensure all API calls use HTTPS
  • Update any hardcoded HTTP URLs in configuration

If you have multiple environments (dev, staging, production), configure separate custom domains:

EnvironmentCustom Domain
Productionapps.yourdomain.com
Stagingapps-staging.yourdomain.com
Developmentapps-dev.yourdomain.com

Each requires its own:

  • DNS records
  • SSL certificate
  • Microsoft Entra ID redirect URIs
  • Portal URL setting