Active Directory e autenticazione basata sulle attestazioni
Data di pubblicazione: novembre 2016
Si applica a: Dynamics CRM 2015
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 Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015) 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 vedere l'argomento seguente nella documentazione di distribuzione e amministrazione di CRM: 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 CRM Online |
Autenticazione basata sulle attestazioni o di Active Directory (tramite la federazione) |
Microsoft Dynamics CRM 2015 locale |
Autenticazione basata sulle attestazioni o di Active Directory |
Microsoft Dynamics CRM 2015Distribuzione 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 CRM 2015 o Microsoft Dynamics CRM 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 API Microsoft Dynamics CRM SDK 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 CRM SDK. Se si configura il sito Web Microsoft Dynamics CRM 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 CRM Online Esempio - Autenticare gli utenti tramite i servizi Web di Microsoft Dynamics CRM Ottimizzare le prestazioni di allocazione del canale di servizio |
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 Ottimizzare le prestazioni di allocazione del canale di servizio |
|
Tutti i tipi di distribuzione: locale/IFD, online (Account Microsoft e Office 365/MOS*) |
Connessione semplificata a Microsoft Dynamics CRM 2015 Esempio: avvio rapido semplificato di connessione con Microsoft Dynamics CRM |
|
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. |
*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 Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015. 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 CRM 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 CRM 2015, 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()
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:
|
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 CRM 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
Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 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 SSL (Secure Sockets Layer) 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
Autenticare gli utenti tramite i servizi Web di Microsoft Dynamics CRM 2015
Connettersi con Microsoft Office 365 e Microsoft Dynamics CRM Online
Connessione semplificata a Microsoft Dynamics CRM 2015
Individuare l'URL dell'organizzazione con servizi Web IDiscoveryService
Utilizzare il servizio Web IOrganizationService per leggere e scrivere dati o metadati
Utilizzare le classi di entità con associazione anticipata nel codice
Esempio: creare, recuperare, aggiornare ed eliminare i record (associazione anticipata)
Codice dell'helper: classe di ServerConnection
Codice dell'helper: classe DeviceIdManager
Blog: compilazione di client per Windows Phone e Windows 8 RT
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright