Delega vincolata Kerberos per l'accesso Single Sign-On alle app con il proxy di applicazioneKerberos Constrained Delegation for single sign-on to your apps with Application Proxy

È possibile fornire l'accesso single sign-on per le applicazioni locali pubblicate mediante il proxy di applicazione che sono protette con l'autenticazione integrata di Windows.You can provide single sign-on for on-premises applications published through Application Proxy that are secured with Integrated Windows Authentication. Queste applicazioni richiedono un ticket Kerberos per l'accesso.These applications require a Kerberos ticket for access. Il proxy di applicazione usa la delega vincolata Kerberos (KCD) per supportare queste applicazioni.Application Proxy uses Kerberos Constrained Delegation (KCD) to support these applications.

È possibile abilitare l'accesso Single Sign-On alle applicazioni tramite l'autenticazione integrata di Windows (IWA) concedendo ai connettori proxy dell'applicazione l'autorizzazione per rappresentare gli utenti in Active Directory.You can enable single sign-on to your applications using Integrated Windows Authentication (IWA) by giving Application Proxy connectors permission in Active Directory to impersonate users. I connettori usano questa autorizzazione per inviare e ricevere token per loro conto.The connectors use this permission to send and receive tokens on their behalf.

Funzionamento di Single Sign-On con KCDHow single sign-on with KCD works

Questo diagramma illustra il flusso quando un utente tenta di accedere a un'applicazione locale che usa l'autenticazione integrata di Windows.This diagram explains the flow when a user attempts to access an on-prem application that uses IWA.

Diagramma del flusso di autenticazione di Microsoft AAD

  1. L'utente immette l'URL per accedere all'applicazione locale tramite il proxy di applicazione.The user enters the URL to access the on-prem application through Application Proxy.
  2. Il proxy di applicazione reindirizza la richiesta ai servizi di autenticazione di Azure AD per la preautenticazione.Application Proxy redirects the request to Azure AD authentication services to preauthenticate. A questo punto, Azure AD applica gli eventuali criteri di autenticazione e autorizzazione appropriati, ad esempio l'autenticazione a più fattori.At this point, Azure AD applies any applicable authentication and authorization policies, such as multifactor authentication. Se l'utente viene convalidato, Azure AD crea un token e lo invia all'utente.If the user is validated, Azure AD creates a token and sends it to the user.
  3. L'utente passa il token al proxy di applicazione.The user passes the token to Application Proxy.
  4. Il proxy di applicazione convalida il token e recupera il nome dell'entità utente (UPN) da esso e invia la richiesta, il nome dell'entità utente e il nome dell'entità servizio (SPN) al connettore tramite un canale sicuro con doppia autenticazione.Application Proxy validates the token and retrieves the User Principal Name (UPN) from it, and then sends the request, the UPN, and the Service Principal Name (SPN) to the Connector through a dually authenticated secure channel.
  5. Il connettore esegue la negoziazione della delega vincolata Kerberos con l'istanza di Active Directory locale, rappresentando l'utente per ottenere un token Kerberos per l'applicazione.The Connector performs Kerberos Constrained Delegation (KCD) negotiation with the on-prem AD, impersonating the user to get a Kerberos token to the application.
  6. Active Directory invia il token Kerberos per l'applicazione al connettore.Active Directory sends the Kerberos token for the application to the Connector.
  7. Il connettore invia la richiesta originale al server dell'applicazione, usando il token Kerberos ricevuto da Active Directory.The Connector sends the original request to the application server, using the Kerberos token it received from AD.
  8. L'applicazione invia la risposta al connettore, che viene quindi restituita al servizio proxy di applicazione e infine all'utente.The application sends the response to the Connector, which is then returned to the Application Proxy service and finally to the user.

PrerequisitiPrerequisites

Prima di iniziare a usare SSO per le applicazioni IWA, verificare che l'ambiente sia pronto con le impostazioni e configurazioni seguenti:Before you get started with single sign-on for IWA applications, make sure your environment is ready with the following settings and configurations:

Configurare Active DirectoryConfigure Active Directory

La configurazione di Active Directory varia a seconda del fatto che il connettore proxy di applicazione e il server dell'applicazione si trovino nello stesso dominio o meno.The Active Directory configuration varies, depending on whether your Application Proxy connector and the application server are in the same domain or not.

Connettore e server applicazione nello stesso dominioConnector and application server in the same domain

  1. In Active Directory passare a Strumenti > Utenti e computer.In Active Directory, go to Tools > Users and Computers.
  2. Selezionare il server che esegue il connettore.Select the server running the connector.
  3. Fare clic con il pulsante destro del mouse su Proprietà > Delega.Right-click and select Properties > Delegation.
  4. Selezionare Computer attendibile per la delega solo ai servizi specificati.Select Trust this computer for delegation to specified services only.
  5. In Servizi ai quali l'account può presentare credenziali delegate aggiungere il valore per l'identità SPN del server applicazioni.Under Services to which this account can present delegated credentials add the value for the SPN identity of the application server. In questo modo il connettore proxy di applicazione può rappresentare gli utenti in AD nei confronti delle applicazioni definite nell'elenco.This enables the Application Proxy Connector to impersonate users in AD against the applications defined in the list.

    Schermata della finestra delle proprietà per Connector-SVR

Connettore e server applicazione in domini differentiConnector and application server in different domains

  1. Per un elenco dei prerequisiti necessari per usare la delega vincolata Kerberos tra domini, vedere Delega vincolata Kerberos tra domini.For a list of prerequisites for working with KCD across domains, see Kerberos Constrained Delegation across domains.
  2. Usare la proprietà principalsallowedtodelegateto sul server del connettore per fare in modo che il proxy di applicazione deleghi per il server del connettore.Use the principalsallowedtodelegateto property on the Connector server to enable the Application Proxy to delegate for the Connector server. Il server dell'applicazione è sharepointserviceaccount e il server delegante è connectormachineaccount.The application server is sharepointserviceaccount and the delegating server is connectormachineaccount. Per Windows 2012 R2, usare questo codice come esempio:For Windows 2012 R2, use this code as an example:

     $connector= Get-ADComputer -Identity connectormachineaccount -server dc.connectordomain.com
    
     Set-ADComputer -Identity sharepointserviceaccount -PrincipalsAllowedToDelegateToAccount $connector
    
     Get-ADComputer sharepointserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
    

Sharepointserviceaccount può essere l'account del computer SPS o un account del servizio tramite cui è in esecuzione il pool di app SPS.Sharepointserviceaccount can be the SPS machine account or a service account under which the SPS app pool is running.

Configura accesso Single Sign-OnConfigure single sign-on

  1. Pubblicare l'applicazione seguendo le istruzioni contenute in Pubblicare le applicazioni con il proxy di applicazione.Publish your application according to the instructions described in Publish applications with Application Proxy. Assicurarsi di selezionare Azure Active Directory come Metodo di autenticazione preliminare.Make sure to select Azure Active Directory as the Preauthentication Method.
  2. Quando l'applicazione viene visualizzata nell'elenco delle applicazioni aziendali, selezionarla e fare clic su Single Sign-On.After your application appears in the list of enterprise applications, select it and click Single sign-on.
  3. Impostare la modalità Single Sign-On su Autenticazione integrata di Windows.Set the single sign-on mode to Integrated Windows Authentication.
  4. Immettere l’ SPN dell'applicazione interna del server dell'applicazione.Enter the Internal Application SPN of the application server. In questo esempio l'SPN per l'applicazione pubblicata è http/www.contoso.com. Questo nome SPN deve essere nell'elenco dei servizi a cui il connettore può presentare credenziali delegate.In this example, the SPN for our published application is http/www.contoso.com. This SPN needs to be in the list of services to which the connector can present delegated credentials.
  5. Scegliere l'identità di accesso delegato che il connettore userà per conto degli utenti.Choose the Delegated Login Identity for the connector to use on behalf of your users. Per altre informazioni, vedere Utilizzo dell'accesso Single Sign-On quando le identità cloud e locali non sono identicheFor more information, see Working with different on-premises and cloud identities

    Configurazione avanzata dell'applicazione

Accesso Single Sign-On per app non WindowsSSO for non-Windows apps

Il flusso di delega Kerberos nel proxy di applicazione di Azure AD inizia quando Azure AD autentica l'utente nel cloud.The Kerberos delegation flow in Azure AD Application Proxy starts when Azure AD authenticates the user in the cloud. Quando la richiesta arriva in locale, il connettore del proxy dell'applicazione di Azure AD rilascia un ticket Kerberos per conto dell'utente tramite l'interazione con Active Directory locale.Once the request arrives on-premises, the Azure AD Application Proxy connector issues a Kerberos ticket on behalf of the user by interacting with the local Active Directory. Questo processo è definito come delega vincolata Kerberos.This process is referred to as Kerberos Constrained Delegation (KCD). Nella fase successiva, viene inviata una richiesta all'applicazione back-end con il ticket Kerberos.In the next phase, a request is sent to the backend application with this Kerberos ticket. Esistono vari protocolli che definiscono la modalità di invio di tali richieste.There are several protocols that define how to send such requests. La maggior parte dei server non Windows prevede l'uso del protocollo Negotiate/SPNego, al momento supportato nel proxy di applicazione di Azure AD.Most non-Windows servers expect Negotiate/SPNego that is now supported on Azure AD Application Proxy.

Per altre informazioni su Kerberos, vedere All you want to know about Kerberos Constrained Delegation (KCD) (Tutto quello che si desidera sapere sulla delega vincolata Kerberos (KCD)).For more information about Kerberos, see All you want to know about Kerberos Constrained Delegation (KCD).

Le app non Windows usano generalmente nomi utente o nomi account SAM invece di indirizzi e-mail di dominio.Non-Windows apps typically user usernames or SAM account names instead of domain email addresses. Se questa situazione si applica alle applicazioni, è necessario configurare il campo dell'identità di accesso delegata in modo che connetta le identità del cloud alle identità delle applicazioni.If that situation applies to your applications, you need to configure the delegated login identity field to connect your cloud identities to your application identities.

Utilizzo dell'accesso Single Sign-On quando le identità cloud e locali non sono identicheWorking with different on-premises and cloud identities

Il proxy di applicazione presuppone che gli utenti dispongano della stessa identità nel cloud e in locale.Application Proxy assumes that users have exactly the same identity in the cloud and on-premises. Se non è questo il caso, è comunque possibile usare la delega vincolata Kerberos per Single Sign-On.If that's not the case, you can can still use KCD for single sign-on. Configurare un'identità di accesso delegata per ogni applicazione in modo da specificare le identità da usare durante l'esecuzione del Single Sign-On.Configure a Delegated login identity for each application to specify which identity should be used when performing single sign-on.

Questa funzionalità consente a molte organizzazioni con diverse identità locali e cloud di disporre dell'accesso Single Sign-On dal cloud ad applicazioni locali senza richiedere agli utenti di immettere nomi utente e password diversi.This capability allows many organizations that have different on-premises and cloud identities to have SSO from the cloud to on-premises apps without requiring the users to enter different usernames and passwords. Sono incluse organizzazioni che:This includes organizations that:

  • Hanno più domini internamente (joe@us.contoso.com, joe@eu.contoso.com) e un singolo dominio nel cloud (joe@contoso.com).Have multiple domains internally (joe@us.contoso.com, joe@eu.contoso.com) and a single domain in the cloud (joe@contoso.com).
  • Hanno un nome di dominio non instradabile internamente (joe@contoso.usa) e un dominio valido nel cloud.Have non-routable domain name internally (joe@contoso.usa) and a legal one in the cloud.
  • Non usano nomi di dominio internamente (joe).Do not use domain names internally (joe)
  • Usano diversi alias locali e nel cloud.Use different aliases on-prem and in the cloud. Ad esempio, joe-johns@contoso.com e joej@contoso.comFor example, joe-johns@contoso.com vs. joej@contoso.com

Con il proxy di applicazione è possibile selezionare l'identità da usare per ottenere il ticket Kerberos.With Application Proxy, you can select which identity to use to obtain the Kerberos ticket. Questa impostazione viene configurata per ogni applicazione.This setting is per application. Alcune di queste opzioni sono appropriate per i sistemi che non accettano il formato di indirizzo di posta elettronica, altre sono concepite per l'accesso alternativo.Some of these options are suitable for systems that do not accept email address format, others are designed for alternative login.

Schermata del parametro dell'identità di accesso delegata

Se si usa l'identità di accesso delegata, il valore potrebbe non essere univoco per tutti i domini o tutte le foreste dell'organizzazione.If delegated login identity is used, the value might not be unique across all the domains or forests in your organization. Per evitare questo problema, pubblicare queste applicazioni due volte usando due gruppi di connettori diversi.You can avoid this issue by publishing these applications twice using two different Connector groups. Poiché ogni applicazione dispone di un pubblico di utenti diversi, è possibile unire i connettori a un altro dominio.Since each application has a different user audience, you can join its Connectors to a different domain.

Configurare Single Sign-On per diverse identitàConfigure SSO for different identities

  1. Configurare le impostazioni di Azure AD Connect in modo che l'identità principale sia l'indirizzo di posta elettronica (mail).Configure Azure AD Connect settings so the main identity is the email address (mail). Ciò avviene come parte del processo di personalizzazione, modificando il campo Nome dell'entità utente nelle impostazioni di sincronizzazione.This is done as part of the customize process, by changing the User Principal Name field in the sync settings. Queste impostazioni determinano inoltre il modo in cui gli utenti accedono a Office 365, dispositivi Windows 10 e altre applicazioni che usano Azure AD come archivio di identità.These settings also determine how users log in to Office365, Windows10 devices, and other applications that use Azure AD as their identity store.
    Schermata di identificazione degli utenti - Elenco a discesa Nome dell'entità utenteIdentifying users screenshot - User Principal Name dropdown
  2. Nelle impostazioni di configurazione dell'applicazione che si desidera modificare, selezionare l' Identità di accesso delegata da usare:In the Application Configuration settings for the application you would like to modify, select the Delegated Login Identity to be used:

    • Nome dell'entità utente (ad esempio joe@contoso.com)User Principal Name (for example, joe@contoso.com)
    • Nome alternativo dell'entità utente (ad esempio joed@contoso.local)Alternate User Principal Name (for example, joed@contoso.local)
    • Parte del nome utente del nome dell'entità utente (ad esempio joe)Username part of User Principal Name (for example, joe)
    • Parte del nome utente del nome alternativo dell'entità utente (ad esempio joe)Username part of Alternate User Principal Name (for example, joed)
    • Nome account SAM locale: in base alla configurazione del controller di dominio localeOn-premises SAM account name (depends on the domain controller configuration)

Risoluzione dei problemi di accesso Single Sign-On per diverse identitàTroubleshooting SSO for different identities

Se si verifica un errore nel processo di accesso Single Sign-On, l'errore viene visualizzato nel log eventi del computer connettore, come illustrato in Risoluzione dei problemi.If there is an error in the SSO process, it appears in the connector machine event log as explained in Troubleshooting. In alcuni casi, tuttavia, la richiesta viene inviata correttamente all'applicazione back-end mentre l'applicazione risponde in numerose altre risposte HTTP.But, in some cases, the request is successfully sent to the backend application while this application replies in various other HTTP responses. Per la risoluzione di problemi di questo tipo, è consigliabile iniziare esaminando il numero di eventi 24029 sul computer connettore nel registro eventi di sessione del proxy di applicazione.Troubleshooting these cases should start by examining event number 24029 on the connector machine in the Application Proxy session event log. L'identità utente usata per la delega viene visualizzata nel campo "utente" dei dettagli dell'evento.The user identity that was used for delegation appears in the “user” field within the event details. Per attivare il log della sessione, scegliere Visualizza registri analitici e di debug dal menu di visualizzazione del Visualizzatore eventi.To turn on session log, select Show analytic and debug logs in the event viewer view menu.

Passaggi successiviNext steps

Per le notizie e gli aggiornamenti più recenti, vedere Application Proxy blogFor the latest news and updates, check out the Application Proxy blog