Accesso Single Sign-On facile di Azure Active Directory: approfondimento tecnicoAzure Active Directory Seamless Single Sign-On: Technical deep dive

Questo articolo riporta i dettagli tecnici del funzionamento dell'accesso Single Sign-On (SSO) facile di Azure Active Directory.This article gives you technical details into how the Azure Active Directory Seamless Single Sign-On (Seamless SSO) feature works.

Come opera la SSO facille?How does Seamless SSO work?

Questa sezione è composta da tre parti:This section has three parts to it:

  1. Installazione della funzionalità di accesso SSO facile.The setup of the Seamless SSO feature.
  2. Funzionamento di una transazione di accesso utente singolo in un browser Web con accesso SSO facile.How a single user sign-in transaction on a web browser works with Seamless SSO.
  3. Funzionamento di una transazione di accesso utente singolo in un client nativo con accesso SSO facile.How a single user sign-in transaction on a native client works with Seamless SSO.

InstallazioneHow does set up work?

L'accesso SSO facile viene abilitato con Azure AD Connect, come illustrato qui.Seamless SSO is enabled using Azure AD Connect as shown here. Durante l'abilitazione della funzionalità, si verificano i passaggi seguenti:While enabling the feature, the following steps occur:

  • Un account computer denominato AZUREADSSOACC, che rappresenta Azure AD, viene creato in Active Directory (AD) locale.A computer account named AZUREADSSOACC (which represents Azure AD) is created in your on-premises Active Directory (AD).
  • La chiave di decrittografia Kerberos dell'account computer viene condivisa in modo sicuro con Azure AD.The computer account's Kerberos decryption key is shared securely with Azure AD.
  • Vengono anche creati due nomi dell'entità servizio (SPN, Service Principal Name) Kerberos per rappresentare due URL usati durante l'accesso ad Azure AD.In addition, two Kerberos service principal names (SPNs) are created to represent two URLs that are used during Azure AD sign-in.

Nota

L'account computer e gli SPN Kerberos vengono creati in ogni foresta di AD che si sincronizza con Azure AD, tramite Azure AD Connect, e per i cui utenti si vuole abilitare l'accesso SSO facile.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. Spostare l'account computer AZUREADSSOACC in un'unità organizzativa in cui sono archiviati altri account computer per assicurarsi che venga gestito allo stesso modo e non venga eliminato.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.

Importante

È consigliabile rinnovare la chiave di decrittografia di Kerberos dell'account computer AZUREADSSOACC almeno ogni 30 giorni.We highly recommend that you roll over the Kerberos decryption key of the AZUREADSSOACC computer account at least every 30 days.

Una volta completata l'installazione, l'accesso SSO facile funziona esattamente come qualsiasi altro accesso che usa l'autenticazione integrata di Windows (NTLM).Once the set-up is complete, Seamless SSO works the same way as any other sign-in that uses Integrated Windows Authentication (IWA).

Funzionamento dell'accesso in un browser Web con accesso SSO facile.How does sign-in on a web browser with Seamless SSO work?

Il flusso di accesso in un browser Web è il seguente:The sign-in flow on a web browser is as follows:

  1. L'utente tenta di accedere a un'applicazione Web, ad esempio Outlook Web App, https://outlook.office365.com/owa/, da un dispositivo aziendale appartenente a un dominio all'interno della rete aziendale.The user tries to access a web application (for example, the Outlook Web App - https://outlook.office365.com/owa/) from a domain-joined corporate device inside your corporate network.
  2. Se l'utente non ha ancora eseguito l'accesso, viene reindirizzato alla pagina di accesso di Azure AD.If the user is not already signed in, the user is redirected to the Azure AD sign-in page.
  3. L'utente digita il nome utente nella pagina di accesso di Azure AD.The user types in their user name into the Azure AD sign-in page.

    Nota

    Per determinate applicazioni i passaggi 2 e 3 vengono ignorati.For certain applications, steps 2 & 3 are skipped.

  4. Tramite l'uso di JavaScript in background, Azure AD richiede al browser, tramite una risposta di tipo 401 Non autorizzato, di specificare un ticket Kerberos.Using JavaScript in the background, Azure AD challenges the browser, via a 401 Unauthorized response, to provide a Kerberos ticket.

  5. Il browser, a sua volta, richiede un ticket ad Active Directory per l'account computer AZUREADSSOACC che rappresenta Azure AD.The browser, in turn, requests a ticket from Active Directory for the AZUREADSSOACC computer account (which represents Azure AD).
  6. Active Directory individua l'account computer e restituisce un ticket Kerberos al browser, crittografato con il segreto dell'account computer.Active Directory locates the computer account and returns a Kerberos ticket to the browser encrypted with the computer account's secret.
  7. Il browser inoltra il ticket Kerberos acquisito da Active Directory ad Azure AD.The browser forwards the Kerberos ticket it acquired from Active Directory to Azure AD.
  8. Azure AD esegue la decrittografia del ticket Kerberos, che include l'identità dell'utente connesso al dispositivo aziendale, usando la chiave già condivisa.Azure AD decrypts the Kerberos ticket, which includes the identity of the user signed into the corporate device, using the previously shared key.
  9. Dopo la valutazione, Azure AD restituisce un token all'applicazione oppure chiede all'utente di eseguire prove aggiuntive, ad esempio l'autenticazione a più fattori.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.
  10. Se l'accesso dell'utente ha esito positivo, l'utente può accedere all'applicazione.If the user sign-in is successful, the user is able to access the application.

Il diagramma seguente illustra tutti i componenti e i passaggi interessati.The following diagram illustrates all the components and the steps involved.

Flusso di accesso Single Sign-On facile in un'app Web

L'accesso SSO facile è una funzionalità opportunistica, il che significa che, se ha esito negativo, l'esperienza di accesso dell'utente ritorna al comportamento normale, ovvero l'utente dovrà immettere la propria password per eseguire l'accesso.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.

Funzionamento dell'accesso in un client nativo con accesso SSO facile.How does sign-in on a native client with Seamless SSO work?

Il flusso di accesso in un client nativo è il seguente:The sign-in flow on a native client is as follows:

  1. L'utente tenta di accedere a un'applicazione nativa, ad esempio il client Outlook, da un dispositivo aziendale appartenente a un dominio all'interno della rete aziendale.The user tries to access a native application (for example, the Outlook client) from a domain-joined corporate device inside your corporate network.
  2. Se l'utente non ha ancora eseguito l'accesso, l'applicazione nativa recupera il relativo nome utente dalla sessione di Windows del dispositivo.If the user is not already signed in, the native application retrieves the username of the user from the device's Windows session.
  3. L'app invia il nome utente ad Azure AD e recupera l'endpoint MEX di WS-Trust del tenant.The app sends the username to Azure AD, and retrieves your tenant's WS-Trust MEX endpoint.
  4. L'app esegue quindi una query sull'endpoint MEX di WS-Trust per vedere se è disponibile l'endpoint per l'autenticazione integrata.The app then queries the WS-Trust MEX endpoint to see if integrated authentication endpoint is available.
  5. Se il passaggio 4 ha esito positivo, viene generata una richiesta di verifica Kerberos.If step 4 succeeds, a Kerberos challenge is issued.
  6. Se l'app è in grado di recuperare il ticket Kerberos, lo inoltra fino all'endpoint per l'autenticazione integrata di Azure AD.If the app is able to retrieve the Kerberos ticket, it forwards it up to Azure AD's integrated authentication endpoint.
  7. Azure AD decrittografa il ticket Kerberos e lo convalida.Azure AD decrypts the Kerberos ticket and validates it.
  8. Azure AD consente l'accesso dell'utente e invia un token SAML all'app.Azure AD signs the user in, and issues a SAML token to the app.
  9. L'app invia quindi il token SAML all'endpoint token OAuth2 di Azure AD.The app then submits the SAML token to Azure AD's OAuth2 token endpoint.
  10. Azure AD convalida il token SAML e invia all'app un token di accesso e un token di aggiornamento per la risorsa specificata, nonché un token ID.Azure AD validates the SAML token, and issues to the app an access token and a refresh token for the specified resource, and an id token.
  11. L'utente ottiene l'accesso alla risorsa dell'app.The user gets access to the app's resource.

Il diagramma seguente illustra tutti i componenti e i passaggi interessati.The following diagram illustrates all the components and the steps involved.

Flusso di accesso Single Sign-On facile in un'app nativa

Passaggi successiviNext steps