Azure Active Directory Seamless Single Sign-On: Technical deep dive
This article gives you technical details into how the Azure Active Directory Seamless Single Sign-On (Seamless SSO) feature works.
How does Seamless SSO work?
This section has two parts to it:
- The setup of the Seamless SSO feature.
- How a single user sign-in transaction works with Seamless SSO.
How does set up work?
Seamless SSO is enabled using Azure AD Connect as shown here. While enabling the feature, the following steps occur:
- A computer account named
AZUREADSSOACC(which represents Azure AD) is created in your on-premises Active Directory (AD).
- The computer account's Kerberos decryption key is shared securely with Azure AD.
- In addition, two Kerberos service principal names (SPNs) are created to represent two URLs that are used during Azure AD sign-in.
The computer account and the Kerberos SPNs are created in each AD forest you synchronize to Azure AD (using Azure AD Connect) and for whose users you want Seamless SSO. Move the
AZUREADSSOACC computer account to an Organization Unit (OU) where other computer accounts are stored to ensure that it is managed in the same way and is not deleted.
We highly recommend that you roll over the Kerberos decryption key of the
AZUREADSSOACC computer account at least every 30 days.
How does sign-in with Seamless SSO work?
Once the set-up is complete, Seamless SSO works the same way as any other sign-in that uses Integrated Windows Authentication (IWA). The flow is as follows:
- The user tries to access an application (for example, the Outlook Web App - https://outlook.office365.com/owa/) from a domain-joined corporate device inside your corporate network.
If the user is not already signed in, the user is redirected to the Azure AD sign-in page.
If the Azure AD sign-in request includes a
domain_hint(identifying your tenant- for example, contoso.onmicrosoft.com) or
login_hint(identifying the user - for example, email@example.com or firstname.lastname@example.org) parameter, then step 2 is skipped.
The user types in their user name into the Azure AD sign-in page.
- The browser, in turn, requests a ticket from Active Directory for the
AZUREADSSOACCcomputer account (which represents Azure AD).
- Active Directory locates the computer account and returns a Kerberos ticket to the browser encrypted with the computer account's secret.
- The browser forwards the Kerberos ticket it acquired from Active Directory to Azure AD (on one of the Azure AD URLs previously added to the browser's Intranet zone settings).
- Azure AD decrypts the Kerberos ticket, which includes the identity of the user signed into the corporate device, using the previously shared key.
- After evaluation, Azure AD either returns a token back to the application or asks the user to perform additional proofs, such as Multi-Factor Authentication.
- If the user sign-in is successful, the user is able to access the application.
The following diagram illustrates all the components and the steps involved.
Seamless SSO is opportunistic, which means if it fails, the sign-in experience falls back to its regular behavior - i.e, the user needs to enter their password to sign in.