Utilizzare OAuth con la condivisione di risorse tra origini per connettere un'applicazione su singola pagina a Microsoft Dynamics 365

 

Data di pubblicazione: gennaio 2017

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

Con Aggiornamento di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics 365 locale con Distribuzione con connessione Internet è possibile creare un'app su singola pagina (SPA) che utilizza JavaScript per lavorare con i dati Microsoft Dynamics 365. A questo scopo, la condivisione di risorse tra origini (CORS) è abilitata in modo che le SPA possano superare le restrizioni del browser che impediscono normalmente le richieste che oltrepassano i limiti tra domini.

Nota

Il supporto CORS è fornito solo quando si usa l'API Web. Non è possibile utilizzare il servizio dell'organizzazione o il servizio dati dell'organizzazione deprecato.

In questo argomento

SPA e criterio della stessa origine

Utilizzare CORS con Microsoft Dynamics 365 (online)

Come funziona adal.js

Preparazione a utilizzare ADAL.js con una SPA

SPA e criterio della stessa origine

Le SPA dipendono dall'uso esteso di JavaScript sul lato client per creare una singola pagina dinamica che non ha bisogno di caricare nuove pagine. Invece utilizzano XMLHTTPRequest per recuperare i dati e altre risorse dal server. Le SPA funzionano bene quando i dati e le risorse esistono nello stesso dominio dell'applicazione. Ma per proteggere l'accesso a dati e risorse in altri domini, tutti i browser moderni applicano un criterio di stessa origine per impedire ai siti di utilizzare dati e risorse dai siti in un dominio diverso. CORS consente di accedere alle risorse in un altro dominio. Creare una SPA per accedere ai dati Microsoft Dynamics 365 senza CORS non è un opzione realizzabile.

Utilizzare CORS con Microsoft Dynamics 365 (online)

La specifica di condivisione di risorse tra origini fornisce una descrizione dettagliata di come implementare e utilizzare CORS. Illustra tutti i dettagli sulle varie intestazioni e le richieste preliminari che è necessario applicare per far funzionare CORS. Il fatto positivo è che non è necessario diventare un esperto in CORS per utilizzarlo con Microsoft Dynamics 365. La parte lato server è già stata eseguita e serve solamente sapere come usarla. Non è necessario comprendere tutti i meccanismi interni di CORS per usarlo con Microsoft Dynamics 365. È invece possibile utilizzare la libreria di autenticazione di Azure Active Directory per JavaScript (adal.js) che gestirà automaticamente la maggior parte della complessità di CORS. Poiché gli utenti Dynamics 365 (online) e Distribuzione con connessione Internet sono autenticati tramite Azure Active Directory, ADAL.js è il modo supportato per autenticare gli utenti SPA.

Come funziona adal.js

La libreria di base è adal.js. È possibile accedere alla versione minimizzata di tale libreria all'indirizzo https://secure.aadcdn.microsoftonline-p.com/lib/1.0.0/js/adal.min.js. Il progetto e la documentazione Github si trovano all'indirizzo https://github.com/AzureAD/azure-activedirectory-library-for-js.

La libreria adal.js contiene le funzionalità di basso livello per l'autenticazione utilizzando OAuth2. Adal.js è progettata per l'utilizzo con altri framework, ad esempio esiste una libreria adal-angular.js progettata per essere utilizzata con il framework Angular. Il modo di lavorare con questa libreria è impostare alcune proprietà di configurazione e quindi attendere fino a che eventi non accadano che avviano il flusso di interazione. Questo potrebbe essere semplicemente la chiamata della funzione login o se l'applicazione include comportamenti di instradamento, l'autenticazione può essere avviata in base al modo in cui è configurato il controller dell'instradamento.

Quando l'autenticazione è necessaria, l'utente viene portato alla pagina di accesso in cui possono immettere le credenziali. Dopo aver per eseguito correttamente l'autenticazione, verranno reindirizzati di nuovo la pagina di chiamata con le informazioni token collegate come frammento (tramite #) all'URL. Questo consente alla SPA di acquisire il token e memorizzarlo nella cache locale o nella memoria della sessione nel browser. Questo significa che l'intera pagina è ricaricata dopo l'autenticazione, ma stavolta le informazioni sull'utente autorizzato sono disponibili e l'applicazione può continuare ed effettuare chiamate all'API Web di Dynamics 365 o altre risorse.

Nella chiamata all'API Web di Dynamics 365, è necessario includere il valore del token in un'intestazione Authorization con XMLHTPPRequest. Tuttavia, poiché i token hanno una scadenza si desidera assicurarsi che non scada mentre gli utenti utilizzano la SPA. Ricordare, l'immissione di nuove credenziali richiede che tutto il contenuto della pagina SPA sia trasferito alla pagina di accesso. Questo causerebbe un'esperienza utente negativa se succede mentre le persone stanno eseguendo un'operazione. Per evitare che ciò accada, eseguire il wrapping delle chiamate all'API Web in una funzione acquireToken in modo che la validità del token possa essere verificata e se necessario aggiornata senza portare l'utente alla pagina di accesso.

Preparazione a utilizzare ADAL.js con una SPA

Per configurare la SPA in modo che funzioni con adal.js è necessario:

  1. Registrare l'applicazione con il tenant di Azure Active Directory

  2. Esportare il manifesto dell'applicazione registrata e modificarlo per consentire il flusso di concessione implicita OAuth2 e quindi importare il file JSON di nuovo nella registrazione dell'applicazione.

  3. Impostare le variabili di configurazione nella SPA con le informazioni dalla registrazione.

    È necessario includere quanto segue:

    • URL dell'organizzazione Microsoft Dynamics 365

    • Nome tenant di Active Directory che l'organizzazione usa per l'autenticazione

    • L'ID client ottenuto quando si registra l'applicazione

    • L'URL in cui la SPA verrà distribuita o sottoposta a debug durante lo sviluppo

Il set dei passaggi necessari è descritto in Procedura dettagliata: Registrazione e configurazione dell'applicazione SimpleSPA con adal.js.

Vedere anche

Autenticare gli utenti in Microsoft Dynamics 365
Connettersi ai servizi Web Microsoft Dynamics 365 tramite OAuth
Active Directory e autenticazione basata sulle attestazioni

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright