Lo scorso Febbraio è stata rilasciata da Microsoft una nuova beta release per lo SharePoint Framework, la versione 1.4.1 per l'esattezza. E' un rilascio molto importante questo per due motivi:

  1. Sono state aggiunte classi specifiche per effettuare chiamate a servizi custom protetti da autenticazione Azure AD e sono state fatte notevoli modifiche alle classi per richiamare le graph API

  2. E' arrivato il supporto a NodeJs 8 e NPM 5
Se volete più dettagli vi rimando alla pagina con le note della release: https://github.com/SharePoint/sp-dev-docs/wiki/Release-Notes-for-SPFx-Package-Version-1.4.1
Vi ricordo comunque che si tratta di un rilascio di test, con funzionalità soggetto a cambiamenti e da NON utilizzare in produzione.

Oggi vi volevo parlare di alcuni dettagli del primo punto.
Innanzitutto è stata deprecata la classe GraphHttpClient, che era stata introdotta in una precedente release proprio per iniziare l'integrazione con le Graph API. Al suo posto è arrivata la MSGraphClient, che si occupa da fare da wrapper alle funzionalità della libreria Microsoft Graph Javascript Client Library.

Assieme a tutto questo, è arrivata la classe AadHttpClient, utile per richiamare API personalizzate e coperte da una autenticazione Azure AD. Questa funzionalità era attesa dalle prime versioni beta del framework e permette di implementare webpart con funzionalità un pò più complesse di quello che possiamo fare ad ora.

Entrambe queste classi si basano su alcune funzionalità per l'amministratore del tenant, rilasciate proprio a seguito della 1.4.1 dello SharePoint Framework, utili ad accettare (o meno) i permessi che vengono richiesti dai vari package.
Riguardo queste possibilità per l'amministratore del tenant, vi consiglio di leggere questo articolo di Wictor Wilen. Per come è stato implementato questo framework di accettazione dei permessi infatti, qualsiasi script che viene eseguito nel tenant ha i medesimi permessi di una qualsiasi webpart su cui avete accettato l'accesso id una delle API di Graph. Aiuto!

Per finire, la cosa che mi ha lasciato più sconcertato. Ogni volta che si effettua una prima chiamata alle API Graph o alle vostre API personalizzate, tramite una delle due classi che vi ho descritto sopra, viene aperto un bel popup. Questo popup si occupa di recuperare il token di autenticazione dell'utente corrente, che viene poi utilizzato per effettuare la chiamata che avete implementato all'interno della vostra webpart.
Ecco qui i due esempi, da cui potete vedere il popup apparire e scomparire più o meno velocemente:
Ma che succede se un'azienda, per policy interne, ha i popup bloccati? Semplice: la webpart non funziona!
Aiuto!! Perchè praticamente tutte le aziende hanno i popup bloccati ormai.

Su questo secondo punto ho chiesto info al team di prodotto, ecco la risposta.

Conversation with Vesa about SPFx popup

Speriamo sistemino questo punto prima di passare queste funzionalità in General Availability.