Condividi l'articolo

Scritto da Paolo Racca

Tempo di lettura: 13 min ca

Graph

Le potenzialità di Graph sono da tempo note. Poter accedere a buona parte delle funzionalità del mondo microsoft, interagendo a basso livello attraverso un sottobosco di APIs, ha aperto scenari di integrazione notevoli.

Con l’inserimento nel mondo di Office 365 di strumenti come Flow PowerApps, che basano la loro forza su una ambiente di sviluppo visuale a bassissima presenza di codice possiamo creare soluzioni veloci ma complete.

Dunque, bando ai convenevoli, iniziamo.

Entriamo nel portale di Azure per registrare una App, App che ci permetterà di esporre le api dei servizi di Graph della nostra organizzazione. App Registration –> New registration.

Sceglieremo di esporre la nostra App solo per l’organizzazione a cui apparteniamo.

E verrà creato un guscio, che andremo a configurare.

Torniamo dunque alla lista delle nostre applicazioni, entriamo in quella appena creata, ed iniziamo la configurazione, partendo dai permessi, che inseriremo come delegate, ovvero la chiamata delegherà al profilo dell’utente che la esegue la lista dei permessi. Useremo il servizio di validazione di graph, specificandolo come scelta.

Nel nostro caso avremo la necessitò che l’utente abbia il permesso di Group.ReadWrite.All, che andremo a inserire.

Questa grant in particolare necessità del permesso da parte dell’amministratore per essere associata. Terminata la configurazione concederemo il permesso con il pulsante dedicato (essendo noi Global Administrator). Adesso andiamo ad impostare una chiave di accesso, che ci servirà per validare la chiamata. Usiamo una secret Key, impostando la scadenza a mai.

Vediamo ora come renderla disponibile ad Office 365, utilizzando come interfaccia per la configurazione PowerApps.

Accediamo dunque a PowerApps nella console di gestione, e generiamo un nuovo connettore.

Il connettore ci permettera effettivamente di rendere disponibile l’APIs, e non solo.

Una volta scelto il nome impostiamo le proprietà generali, inserendo, una descrizione, scegliendo lo schema https e impostando come host i servizi di graph.

Impostiamo i criteri di sicurezza, scegliendo l’autenticazione OAuth 2.0 e come provider Azure AD.

Per quanto riguarda il client id e la chiave segreta torniamo al portale di Azure AD e copiamoli. Non dimentichiamo di inserire anche il “Resourse Url” = https://graph.microsoft.com

A questo punto possiamo creare il connettore.con il pulsante “crea connettore”. Una volta selezionato, sarà necessario attendere alcuni secondi.

Andiamo nella sezione sicurezza del nostro connettore e prendiamo l’indirizzo di redirect che inseriremo in Azure AD.

A questo punto il nostro connettore è pronto, potremo accedere ai servizi di graph esposti attraverso un App su Azure AD. Ma quali metodi ?

Prepariamo un esempio di chiamata utilizzando Graph Explorer. In https://developer.microsoft.com/en-us/graph/graph-explorer sarà necessario connetterci per poter accedere al tenant e alla nostra organizzazione.

Prepariamo una chiamata d’esempio come questa, https://graph.microsoft.com/v1.0/groups?$filter=(startswith(displayName,’Astonish=SCAI’)), che recupera i gruppi che iniziano con “Astonish=SCAI” nel displayName.

La proviamo fino a che il risultato atteso non ci soddisfa, modificando i parametri di query.
Torniamo in PowerApps e accediamo in edit al nostro connettore, scegliendo il tab “Definizione“.

Qui creiamo una nuova azione che ci permetterà di eseguire una chiamata, ad esempio la GetGroup.

Inseriamo i valori per la sezione generale, dove descriveremo a cosa serve la nostra richiesta e quale sia il suo nome di chiamata.

Scorrendo in basso inseriamo anche la request. Scegliamo di far generare la risposta da un esempio ed inseriamo la chiamata testata precedentemente con Graph explorer.

Convalidando i parametri di ingresso in modo che sia il connettore a definire la firma d’ingresso.

Facciamo lo stesso anche per la response, sempre con importa da esempio, incollando la risposta ricevuta dalla interrogazione di Graph Explorer.

Come si può notare risolve direttamente la struttura della response, generando una lista di valori evidenziati in viola, e togliendoci un bel po’ di lavoro.

Se la convalida automatica è andata bene aggiorniamo il connettore. A questo punto non ci resta che testare il funzionamento dell’azione.

Per poter eseguire il test ci serve però ancora un qualcosa, ovvero la connessione al servizio che ci esporrà l’API inserita nel connettore e validata da Azure AD attraverso il delegate.

Andiamo nella sezione “Test” del nostro connettore e scegliamo il pulsante “Nuova connessione”.

Ci verrà chiesta la conferma della creazione per la connessione al connettore, e la scelta di un utente per la validazione. Ricordiamoci che l’utente dovrà avere i diritti di Group.ReadWrite.All.

Torniamo al connettore in edit, e scegliamo il tab di test. Vedremo che c’è già una connessione settata, che è quella generata da noi poco prima. Inseriamo i parametri per la chiamata già usati in Graph Explorer (startswith(displayName,’Astonish=SCAI’)), in questo caso nel campo filter e “Verifichiamo l’operazione”.

Il risultato sarà un codice 200, con un corpo che conterrà i dati attesi, che possiamo confrontare, come test, con quelli restituiti da Graph Explorer.

In conclusione, siamo riusciti ad esporre i servizi di graph utilizzando la validazione fornita da Azure Ad, generando un connettore che si collega gli applicativi presenti in Office e attraverso una connessione una serie di azioni che consentiamo di essere eseguite.

Nell’esempio abbiamo usato un servizio in GET, ma possiamo usare lo stesso metodo per interrogare tutte le API di Graph, in POST, PUT … che ricordiamo permette di far comunicare Office 365, Azure e Windows.

E come mi piace ricordare il resto è configurazione, tecnica e fantasia e non dimenticate mai di testare, alla prossima.

Related Articles

Altri

DevOps e Office 365

Tempo di lettura: 3 min ca Azure DevOps e Office 365, un connubio che secondo noi può essere vincente. Un’esempio? Un form di FORMS nel quale inserire una richiesta di attività che viene automaticamente recepita da DevOps come backlog item classificato in una features...

leggi tutto
Seguici

Iscriviti al nostro blog per essere sempre aggiornato