10 minutes
to read.
Abstract
Have you
ever heard of the word Doppelganger? It means ghostly double or counterpart of
living person. There is theory that says, In today’s world there are 7 people
who look similar to you. There are 6.4 billions basepairs in Human DNA.
So I don’t trust this theory. However humans made sure that when it comes to
internet world, there is one thing always unique – domain names. Domain names
are very critical and there have been many famous domain name battles on
uniqueness. One of the famous domain name battle was “Microsoft vs.
MikeRoweSoft”. What? You never heard of it? Go search the internet.
Domain names
can make or break an identify for your business. Custom domain names are
inevitable in today’s world. If you want to be successful with your business/
website then custom domain name is a must. Microsoft Azure services also need
custom domain names so that instance of Microsoft Azure services names can be
aligned with your business / company names.
Azure AD is
central to any Microsoft Azure based environment. All subscriptions belong to
Azure AD and Azure subscriptions related identity management is also managed
through Azure AD. Any Azure AD created will always have form as “YourAADInstanceName.onmicrosoft.com”.
So when you create a user in Azure AD the FQDN of Azure AD user will be
“username@YourADInstanceName.onmicrosoft.com.” Example I have an Azure Active
Directory named “SanganakAuthority.onmicrosoft.com” then user “kunal” will have
FQDN as “kunal@SanganakAuthority.onmicrosoft.com”. This is definitely not a
user friendly name. If I change it to kunal@SanganakAuthority.com then it appeals a lot.
So custom
domain for Azure AD is good to have thing!
Best thing
is you DON’T have to go for external domain registrars/ providers like GoDaddy,
HostGator, Bluehost etc. Microsoft Azure provides domain names through Azure
App Service domains and you can use it anywhere including Azure AD.
Let’s go!
Relationship in Domains Names, DNS Records, DNS Zones and equivalent Microsoft Azure services
This is important
to know aspects such as Domain Names, DNS Zones and DNS Records concepts in general
and in Microsoft Azure platform. Refer below important diagram.
Domain names
are provided by domain name registrars. Owning the domain names gives you right
to control the DNS hierarchy. These purchased domain names are hosted on DNS
names servers in terms of DNS Records. The domain registrar has their own name
servers or they also allow you to specify your own/ preferred name servers. You
host the domain names on name servers as DNS Records like A records, CName
record, Txt record and so on. The combination of Names servers and DNS records
is called as DNS Zones.
For
purchasing domain names Azure provides “Azure App Service domain” and for DNS
Zones Azure provides service called as “Azure DNS”.
Note – When
we create Azure App service domain, the corresponding DNS zone is automatically
created. Both domain and DNS zone will be created in the same resource group.
What is role of all Azure services being used in this scenario?
We are going
to use Azure AD, Azure App Service Domains and Azure DNS in this blog post for
configuring the custom domain for Azure AD. To avoid the confusion let us
understand the intent of these services and relationships between them.
Azure AD
This PaaS
version of Active Directory. It can even be sync with your on premises existing
Active Directory. Azure AD always get default domain suffix as “onmicrosoft.com”.
So complete domain will be “YourCompany.onmicrosoft.com”. Enterprise always
like to have domain representing their company names and hence onmicrosoft.com
is not so appealing. Enterprise want “Yourcompany.com” assigned to Azure AD. Therefore
Azure AD generally needs custom domain to be attached.
Azure App
Service Domain
This has nothing
to do with Azure App Service default domain “.azurewebsite.net”. If you create
Azure web app as “kunal.azurewebsites.com” then for your customer you may want
the URL of your app as “kunal.com”. So in general scenario you will go to
domain registrar, purchase domain “kunal.com” and then assign CNAME to “kunal.azurewebsites.net”.
When you
purchase domain from domain registrar then you have to manage domain by using
their own portal/ management console. Plus billing also will be separate than Azure
App Service web app billing.
If you use
Azure App Service domain to get “kunal.com” instead of domain registrar domain
then your billing will be part of the Azure itself. So App service domain is
domain name purchase service on Azure. The domains purchased through App
Service domain can be used anywhere like on premises hosted web app, Azure
hosted APIs, Azure storage, Azure CDN, AWS hosted apps, GCP hosted Apps and so
on. In our case we will use it for Azure AD.
Note – You
can use Azure App Service Domain without use of Azure DNS service.
Azure DNS
Azure DNS is
DNS zone service on Azure where you get name servers to host your domain
through DNS records. This does not necessarily need domain names purchased
through App Service domains. If you have purchased domain name from 3rd
party domain registrar then you can host that domain name using Azure DNS
service or DNS provided by 3rd party. Similarly App service domains
can either be hosted on Azure DNS or 3rd party DNS service.
In our case
we are using App Service domains and Azure DNS hand in hand instead of using 3rd
party services.
Note – You
can use Azure DNS for hosting 3rd party purchased domain names also.
Not necessarily Azure App Service Domains.
Summary -
Azure DNS
and App Service domains are two different services and can be used independently
based on the scenario. In our case we could have achieved custom domain name
mapping to Azure Ad in below ways also –
1. Purchase domain from 3rd party use Azure DNS and assign domain to Azure AD
2. Purchase domain from App Service domain, use 3rd party DNS and assign domain to Azure AD
3. Purchase domain from 3rd party and use 3rd DNS only and assign domain to Azure AD.
4. Or easy way - Purchase domain from Azure App service, use Azure DNS and assign to Azure AD – we are doing this.
1. Purchase domain from 3rd party use Azure DNS and assign domain to Azure AD
2. Purchase domain from App Service domain, use 3rd party DNS and assign domain to Azure AD
3. Purchase domain from 3rd party and use 3rd DNS only and assign domain to Azure AD.
4. Or easy way - Purchase domain from Azure App service, use Azure DNS and assign to Azure AD – we are doing this.
Create Azure AD
This step is
not necessary for you if you already have an Azure AD created and you intend to
assign custom domain for it. In case you want to try custom domain before you
assign to your production Azure Ad then you can use this step to create a
sample Azure AD instance on Azure. Click on Create a Resource -> Identity
-> Azure Active Directory option as shown below –
Provide
details like below and create the directory.
Once the directory is created you can change
default working directory as shown. As you can observe the name of directory
created has “.onmicrosoft.com” shared domain. So FQDN is
KunalDir.onmicrosoft.com.
Azure App Service Domains
Azure App
Service Domains are really awesome and simplifies lot of things for you. Best
thing I love about Azure App service domain is you always pay flat charge
irrespective of name of the domain. There can be some domains which are premium
charges from domain providers however for Azure App Service Domains the charges
are always going to be the same. As of now Azure App Service domain support
extensions as com, net, co.uk, org, nl, .in, biz, org.uk, co.in. Azure App
service do provide “privacy protection” except for those extensions who do not
support privacy like co.in, co.uk etc. Awesome thing is “Privacy Protection”
is FREE of cost. It supports auto-renew capability and you can cancel
the domain in 5 days without any charges. Internally it uses Azure DNS
service which simplifies the DNS management a lot.
Let us
create one Azure App Service Domain called as “KunalDir.com”.
First select
the Azure AD tenant under which you have Azure subscription so that we can
create Azure App Service domain. The new created Azure AD in above step –
KunalDir.onmicrosoft.com do not have any Azure subscription attached to it.
Therefore change the Azure AD tenant to one where we have Azure subscription
attached. You can use “Directory + Subscription” filter option of Azure portal
to change the Azure AD directory.
Click on Create
a resource. In search box type “App Service Domain”. You should see below
screen –
Click on
Create and then provide the required information as shown below and again click
on Create.
After the
domain creation completes you can observe that same resource group now has the
domain name we created in Azure App service domain plus the associated DNS Zone
to configure the DNS records for the purchased domain.
If I go inside
the Azure DNS Zone named as “kunaldir.com” you can view the name servers and
existing DNS records provided by Azure DNS zone. Under this Azure DNS Zone we
will need to add DNS record for our custom domain create for mapping to Azure AD
instance.
Add custom domain name to Azure AD tenant
Now we have
our custom domain ready using Azure App Service domains and associated zone
using Azure DNS. Let us assign the custom domain name to our Azure AD tenant.
Open the
desired Azure AD tenant. In our case it is KunalDir.OnMicrosoft.com. Select the
option “Custom domain names”. This shows only the original domain name of our
Azure AD tenant. Now click on “Add custom domain” button. Provide our custom
domain name we created through Azure App Service domain and then click finally
on “Add Domain”.
Verify Azure AD tenant custom domain
The next
step window automatically appears and it provides a button to verify the
identify of the custom domain attached. Go ahead and click on “Verify”.
You should
land on error –
“Failed to
verify domain”.
“Could not
find the DNS record for this domain. DNS changes may take up to 72 hours to propagate.
Please try again later”.
If you have
observed above screenshot fully then there is important message displayed at
the top –
“To use
kunaldir.com with your Azure AD, create a new TXT record with your domain name
registrar using the info below”.
For our
case, domain registrar is Azure App Service domain and associated Azure DNS
zone. We did not add the TXT record and hence the failure in Azure AD custom
domain verification. So go back to Azure DNS Zone. Click on button “+ Record
Set”. Provide the details from Verify screen shown above to Record set window as
shown below –
In TTL we
have value as 3600 which is in seconds. Therefore we configured 1 hours TTL in “Add
Record Set” window. After the TXT record set is added we should have now newly
added record in DNS zone as shown below –
With this
let’s go back to Azure AD and verify the custom domain assignment again. Now
verification should be successful as shown below. Then click on Make Primary to
make the custom domain as primary domain for Azure AD tenant.
Conclusion
And that’s
it! Hope this article has given step by step guidance on how you can assign
custom domain to Azure AD tenant using Azure App Service domains and get it
verified.
Happy Verifying!!
A humble request!
Special Credits
Thanks to Vikram Pendse for encouraging to write the relationship and roles of different azure services being used in this guide. You can follow him to on - https://www.linkedin.com/in/vikrampendse/
can I create custom domain in my free az subscription .It say in last that it will charge 11 us doller by GoDaddy.com
ReplyDeleteRefer to pricing page - https://azure.microsoft.com/en-in/pricing/details/app-service/windows/ Where it mentions about pricing for Azure app service domain. Free Azure subscription may not allow to purchase domain or it may charge directly to your credit card. Check out!
DeleteHi, Can we connect on call ?
ReplyDeleteSure
Delete