After getting AD Password Authentication working with my Azure SQL server, I moved on and set up a local Active Directory domain on my home network. I don’t think this is something every data professional should try and tackle. I count myself extremely fortunate to have made friends with IT professionals outside the data space, and they don’t seem to mind when I ask lots of questions about their specialties. At least, not as long as I’m sharing the data space with them as well!
You’ll need to plan out your domain before you begin. In my case, I already had my network configured to use 192.168.254.x. My Fiber router serves as my default gateway as well as my DHCP server and primary DNS server for my local network. My wireless access points, primary workstation, and printer are already set up for static IP addresses. I have already set aside a subnet of addresses for static servers. I also already own a domain name (toyboxcreations.net). Having all this set up before trying to install my domain controller help by saving time.
At first, I wanted to install Windows 2016 core. My hardware was old. The best machine I had available was an Intel Core 2 Duo E8400 with 6GB of ram. After getting this machine running as a domain controller on core, I found out that Active Directory Connect (the software that synchronizes your local domain with Azure) requires a GUI. Which seems silly, considering it’s a service and therefore runs in the background after installing.
So I installed Windows 2016 with full GUI. After installing, you have to install the domain components. Then the fun begins! Set the IP address to a static address. Configure the machine to act as a DNS server, name the domain, create your first user, and reboot. Trust me, there are several steps to getting this to work, and there are many guides that will help you set this up in your own environment. Follow those guides. Once you can log in to the domain controller with a Domain Administrator account, you’re ready to try to add a machine (VM or physical) to the domain.
Remember, you have to have a “pro” edition of windows to connect to a domain.
I’m not an advanced user, so I went with express settings. On the next screen, you’re prompted to log in to your Azure AD. Fortunately, my AAD login is also the Azure account owner. So there is no issue with having enough rights to bind my local and Azure ActiveDirectory domains. This software will be able to create and destroy objects in your AAD instance, so the account should have at least AAD Admin rights to proceed.
After entering your AAD credentials, you have to enter your local AD credentials. This needs to be an account with “Enterprise Administrator” privileges. Considering this process will be able to create and remove objects from your local domain, this makes sense.
After you log in to both accounts, you’re ready to go! Click Install to install the software, save the settings to your local machine, and start the synchronization service. Since my machine was light on resources, this took several minutes to complete. Once it completes, the wizard gives you some extra options for syncing your Win 10 machines with Azure AD as registered devices by running Initialize-ADSyncDomainJOinedComputerSync from the ADSyncPrep module. This step is optional.
Go ahead and verify you can log in to your windows 10 domain machine using Azure AD credentials, and try logging into your Azure portal using one of your on-prem AD credentials. Both should work perfectly now!
Using Local Domain Creds with SSMS
Remember the Azure AD group “SQL Administrators” from the previous article? Go ahead and add your local account to the group’s members. Once you do, you can use either your AAD or your local AD credentials to log in to your Azure SQL servers.
Go ahead and verify you can log in with either account using Active Directory Password Authentication or Active Directory Universal Authentication. Just keep in mind if you use Universal Authentication, you’ll have to close and reopen SSMS in order to test the second set of credentials.
So now we can use two out of the three AD authentication options in SSMS. You can use these two on a domain bound machine, or on a workgroup machine. Just having the two domains running with synchronization between them allow this to work.
Active Directory Integrated Authentication
So we have one last authentication scheme that doesn’t work. To get integrated Authentication to work, we have to create a federated trust between the two domains. You’d think that we already have that with our Sync…but you’d be wrong. Next time, I’ll walk through that federation, and get this last option up and running. If you have any questions in the meantime, please let me know!