Active Directory e autenticazione basata sulle attestazioni

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

L'autenticazione basata sulle attestazioni include un protocollo di sicurezza standard industriale per autenticare un utente in un computer host. L'autenticazione basata sulle attestazioni è un set di standard WS-* che illustra l'utilizzo di un token SAML (Security Assertion Markup Language) in modalità passiva (quando si utilizza WS-Federation con l'applicazione Web Microsoft Dynamics 365 (online e locale)) o in modalità attiva (quando si utilizza WS-Trust con i client Windows Communication Foundation (WCF)). L'autenticazione funziona insieme a WCF per fornire l'autenticazione utente sicura e un canale comunicazione con un server Microsoft Dynamics 365. Tutte le versione di Microsoft Dynamics 365 supportano l'autenticazione basata sulle attestazioni.

L'autenticazione basata sulle attestazioni richiede la disponibilità di servizio token di sicurezza in esecuzione in un server. Un server del servizio token di sicurezza può essere basato su Active Directory Federation Services (AD FS) V2 o su una piattaforma che fornisce il protocollo ufficiale del servizio token di sicurezza. Per ulteriori informazioni vedi l'argomento seguente nella documentazione di distribuzione e amministrazione di Dynamics 365: TechNet: Configurare IFD per Microsoft Dynamics CRM 2015.

In questo argomento

Scenari di autenticazione supportati

Scenari di autenticazione non supportati

Classi di autenticazione

Autenticazione tramite le classi proxy del client

Gestione delle eccezioni e degli errori di canale

Informazioni aggiuntive sul token di sicurezza (SAML)

Scenari di autenticazione supportati

Microsoft Dynamics 365 supporta i seguenti scenari di autenticazione per ogni tipo di distribuzione.

Distribuzione

Modello di autenticazione

Microsoft Dynamics 365 (online)

Autenticazione basata sulle attestazioni o di Active Directory (tramite la federazione)

Microsoft Dynamics 365 locale

Autenticazione basata sulle attestazioni o di Active Directory

Microsoft Dynamics 365Distribuzione con connessione Internet (IFD)

Autenticazione basata sulle attestazioni o di Active Directory

Funzionamento dell'autenticazione basata sulle attestazioni

Una richiesta di autenticare un utente viene inviata da Microsoft Dynamics 365 o Microsoft Dynamics 365 (online) oppure da un'applicazione personalizzata al server del servizio token di sicurezza. Il server del servizio token di sicurezza determina se l'utente deve essere autenticato e, in caso affermativo, genera un token SAML crittografato e firmato contenente le informazioni di autenticazione dell'utente. Il token ha una durata limitata e potrebbe essere necessario aggiornarlo periodicamente a seconda della lunghezza del periodo di utilizzo del token da parte dell'applicazione. Il comportamento è discusso dettagliatamente più avanti in questo argomento.

Funzionamento dell'autenticazione di Active Directory

Una richiesta per autenticare un utente viene inviata da Microsoft Dynamics 365 o da un'applicazione personalizzata ad Active Directory. Lo stack WCF gestisce il processo di autenticazione per le chiamate del Servizio organizzazione da un'applicazione, mentre Internet Information Services (IIS) gestisce l'autenticazione per un'applicazione Web.

Scenari di autenticazione non supportati

L'utilizzo dei certificati client non è supportato da Microsoft Dynamics 365 SDK. Se si configura il sito Web Microsoft Dynamics 365 per richiedere i certificati client IIS, verranno restituiti errori di autenticazione per tutte le applicazioni che sono state sviluppate utilizzando SDK.

Per ulteriori informazioni su altri metodi di programmazione non supportati, vedere Personalizzazioni non supportate.

Classi di autenticazione

Nella tabella seguente sono elencate le classi di autenticazione primarie disponibili in SDK, viene descritto quando utilizzarle e vengono forniti i collegamenti della documentazione aggiuntiva pertinente.

Classi

Uso

Documentazione correlata

IServiceConfiguration<TService>, IServiceManagement<TService>

Tutti i tipi di distribuzione: locale/IFD, online (Account Microsoft e Office 365/MOS*)

Scelta migliore per le applicazioni a thread multipli

Autenticare gli utenti di Office 365 tramite i servizi Web di Microsoft Dynamics 365 (online)

Esempio - Autenticare gli utenti tramite i servizi Web di Microsoft Dynamics 365

Verbessern der Servicekanal-Zuteilungsleistung

DiscoveryServiceProxy, OrganizationServiceProxy

Tutti i tipi di distribuzione: locale/IFD, online (Account Microsoft e Office 365/MOS*)

Autenticazione tramite le classi proxy del client

Esempio: Accedere al servizio di individuazione

Verbessern der Servicekanal-Zuteilungsleistung

Classe CrmConnection

Tutti i tipi di distribuzione: locale/IFD, online (Account Microsoft e Office 365/MOS*)

Connessione semplificata a Microsoft Dynamics CRM

Esempio: avvio rapido semplificato di connessione con Microsoft Dynamics 365

ServerConnection

Tutti i tipi di distribuzione: locale/IFD, online (Account Microsoft e Office 365/MOS*)

Utilizzare per le applicazioni di test della console e il codice di esempio.

Progettato per migliorare l'usabilità quando si esegue il codice di esempio SDK e per illustrare l'utilizzo delle classi di autenticazione. Contiene il codice di output della console.

Codice dell'helper: classe di ServerConnection

Esempio - Guida introduttiva per Microsoft Dynamics 365

*Ambiente dei Microsoft Online Services

Autenticazione tramite le classi proxy del client

Per eseguire l'autenticazione ai servizi Web di Microsoft Dynamics 365 è possibile utilizzare le classi DiscoveryServiceProxy e OrganizationServiceProxy nelle applicazioni. Il costruttore a quattro parametri delle classi supporta le distribuzioni Microsoft Dynamics 365 (online e locale). Le classi proxy gestiscono automaticamente le richieste o l'autenticazione di Active Directory e anche i limiti di risorse dell'endpoint del canale WCF.

Il seguente codice indica come creare un'istanza del proxy del servizio di organizzazione:

using (OrganizationServiceProxy _serviceProxy =    new OrganizationServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))

Il seguente codice indica come creare un'istanza del proxy del servizio di individuazione:

using (DiscoveryServiceProxy _discProxy =    new DiscoveryServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))

È importante eliminare correttamente l'istanza del proxy del servizio dell'applicazione prima che l'applicazione termini. L'istruzione using verifica che il proxy del servizio venga eliminato correttamente dalla chiamata automatica Dispose nel proxy del servizio quando esterno all'ambito. Tuttavia, per ottimizzare le prestazioni dell'applicazione, è consigliabile tenere l'istanza del proxy del servizio disponibile nell'applicazione per l'intera sessione dell'applicazione anziché eliminarla e riallocarla altrove nel codice dell'applicazione, se necessario. Il motivo è perché la creazione e l'autenticazione di un canale servizio è un'operazione dispendiosa in termini di tempo. In questo caso, al termine dell'istanza del proxy del servizio, è necessario chiamare direttamente il metodo Dispose sul proxy prima che l'applicazione termini.

Le credenziali del dispositivo di calcolo registrato vengono utilizzate solo per l'autenticazione in Microsoft Dynamics 365 (online) tramite il provider di identità Account Microsoft. Per il codice di esempio che illustra come popolare i parametri di costruttore proxy, vedere Esempio: Accedere al servizio di individuazione.

Importante

Per un'installazione IFD o locale di Microsoft Dynamics 365, le classi proxy del client utilizzano l'autenticazione basata sulle attestazioni se è disponibile un server del servizio token di sicurezza. In caso contrario, viene utilizzata l'autenticazione di Active Directory.

Per utilizzare i tipi di entità con associazione anticipata di Microsoft Dynamics 365 nel codice, è necessario aggiungere la seguente riga di codice dopo che viene creata l'istanza del proxy del servizio di organizzazione, ma prima di effettuare le chiamate al metodo del servizio Web:

_serviceProxy.EnableProxyTypes()
System_CAPS_security Sicurezza Nota

WCF supporta una funzionalità con cui è possibile richiedere all'utente in modo interattivo le credenziali di accesso quando necessario. Questa funzionalità si abilita impostando la proprietà SupportInteractive della classe ClientCredentials. Queste credenziali vengono utilizzate nel parametro userCredentials indicato nel frammento di codice precedente.

Quando si eseguono le chiamate SDK ai servizi Web di Microsoft Dynamics 365, la proprietà dell'operazione e le modifiche ai dati dell'entità eseguite dalla chiamata SDK possono essere modificate da questa funzionalità WCF indipendentemente dal codice.

Microsoft Dynamics 365 gestisce le credenziali specificate nelle chiamate del servizio Web come segue:

  • Se le credenziali non sono fornite nella chiamate del servizio Web, lo stack WCF determina quali credenziali utilizzare. In tal caso, il valore della proprietà SupportInteractive viene impostato automaticamente su false.

  • Se le credenziali vengono fornite in modo esplicito dal codice, il valore corrente di SupportInteractive viene passato alla factory del canale WCF.SupportInteractive è impostato su true per impostazione predefinita a meno che venga esplicitamente modificato.

  • Se SupportInteractive è impostato su true e le credenziali utilizzate non sono corrette, viene visualizzata una finestra di dialogo WCF. Verranno utilizzate le credenziali immesse dall'utente nella finestra di dialogo anziché quelle fornite nelle chiamate del servizio Web richiamate dall'applicazione.

Gestione delle eccezioni e degli errori di canale

Il codice dovrebbe intercettare le eccezioni e gli errori seguenti. Vedere gli esempi di C# o Microsoft Dynamics 365 SDK per l'elenco delle eccezioni aggiuntive rilevare:

Per ulteriori informazioni, vedere la .NET Frameworkdocumentazione WCF su come gestire gli errori e le eccezioni WCF. Per altro codice di esempio, vedere Utilizzare il codice di esempio e dell'helper.

Informazioni aggiuntive sul token di sicurezza (SAML)

Di seguito è descritto il token SAML utilizzato durante l'autenticazione dell'utente.

Contenuto del token SAML

Il token SAML basato su XML 2.0 contiene un'identità che definisce una o più attestazioni di un utente. Tale token viene passato tra un server provider di identità (servizio token di sicurezza) e Microsoft Dynamics 365 per l'autenticazione basata sulle attestazioni. Le attestazioni dell'identità sono state definite come indicato di seguito.

Richiesta

Uso

Nome UPN (Universal Principal Name)

Contiene l'ID dell'utente nel formato dominio\alias nel server Microsoft Dynamics 365 di destinazione.

Nome

Se l'utente autenticato è anche un amministratore della distribuzione in Microsoft Dynamics 365, l'attestazione contiene l'ID dell'amministratore della distribuzione nel formato dominio\alias nel server Microsoft Dynamics 365 di destinazione.Windows Identity Foundation esegue il mapping dell'attestazione Name alla proprietà Identity.name.

Altre attestazioni

Non utilizzate da Microsoft Dynamics 365.

Tipi di token di sicurezza supportati

Microsoft Dynamics 365 (online e locale) supporta due tipi di token SAML:

  • Applicazione Web: l'applicazione Web Microsoft Dynamics 365 riceve un token portante dal servizio token di sicurezza. Il token non ha tutte le informazioni necessarie e quindi viene utilizzato un (https://) basato su Transport Layer Security (TLS) o Secure Sockets Layer (SSL) per la protezione di sicurezza quando si accede all'endpoint WCF.

  • SDK: un'applicazione personalizzata riceve un token attivo con la chiave di prova contenente le informazioni necessarie.

Ciclo di vita del token di sicurezza

La durata di SecurityToken è identificata dalle proprietà ValidTo e ValidFrom. Il progetto dell'applicazione deve considerare la possibilità che il token potrebbe scadere, generando un ExpiredSecurityTokenException dai servizi Web Microsoft Dynamics 365 quando viene elaborata la successiva richiesta di messaggio dall'applicazione.

Vedere anche

Procedura dettagliata: registrare un'app Dynamics 365 con Active Directory
Connettersi con Microsoft Office 365 e Microsoft Dynamics 365 (online)
Implementare Single Sign-On da una pagina Web ASPX o IFRAME
Esempio - Autenticare gli utenti tramite i servizi Web di Microsoft Dynamics 365

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright