API kutatás/tesztelés #5 (MS Graph API\O365)

A következő API, amelyre sort kerítettem a Microsoft Graph API, amellyel az összes létező Microsoft API elérhető egyetlen token segítségével, így azt nem kell minden API -nál külön kérni. Az MS Graph felhő szolgáltatásába beletartozik az Azure Active Directory, Office365, SharePoint, OneDrive, OneNote, és Planner is.

A hozzáféréshez igyekeztek a többi nagy felhő szolgáltató által alkalmazott szabványhoz igazodni, így is könnyebbé téve a rendszer használatát. Először is szükségünk lesz egy Microsoft fiókra, amiben regisztrálnunk kell egy új alkalmazást. A regisztráció kezdetén csak az alkalmazást kell megadnunk, a mi esetünkben az legyen mondjuk GraphAPItest. A program legenerálása után megkapjuk az alkalmazás azonosítóját, lejjebb pedig generálhatunk alkalmazás titkot hozzá.

G1

Lejjebb az oldalon meg lehet adni az alkalmazásunk típusát, esetünkben, web, és mobil alkalmazás lesz, valamint hozzá lehet adni a megfelelő url -eket, amelyek a végpontok lesznek adat fogadásra. Ezen felül megadhatjuk, hogy mely adatokhoz milyen szintű jogosultságot kérünk a felhasználótól. Az oldal alján még a jogi elemeket tartalmazó oldalakat lehet megadni, valamint törölni az alkalmazást.

G2G3

Ezek után neki is láthatunk megvalósítani a bejelentkeztetés, és adat lekérést az MS Graph API-n keresztül. Az alkalmazás azonosítóját, és titkot a web.config fájlban megadjuk, hogy később a program innen azt kinyerve inicializálhatja a belépést. Ezen felül megadjuk még a redirect Url-t, és a lekérni kívánt adatokhoz tartozó scope -okat, amiker az alkalmazásnál is megadtunk. A program belépési prontja esetünkben a Graph.cs lesz. Ezen az oldalon tudunk bejelentkezni, valamint vagy egy gomb, ami kattintásra elindítja a GetMyUserInfo() eljárást, am felelős az adatok lekérdezéséért a Graph -ról. Amennyiben nincs bejelentkezve még a felhasználó akkor a bejelentkeztetési eljárást hívja meg alapértelmezetten. A bejelentkezés esetében az Account Controller SignIn() eljárása hívódik meg, ami az OWIN segítségével elindít egy hívást az Azure felé a bejelentkezés végett a megfelelő kliens azonosító, és titok segítségével. Ha minden rendben megy, akkor a felhasználó átirányítódik a Microsoft bejelentkezési portálra, és kéri az engedélyek megadását a felhasználótól.

G4G5

Miután elfogadtuk a kért engedélyeket, az oldal az hozzáférési token kíséretében vissza irányít minket a megadott redirect url -re. A token -t persze ekkor tároljuk is .

Az SDKHelpers, AuthProvider, SessionTokenCache fájlok pont ezt a szerepet töltik be, valamint segéd kódokat tartalmaznak a kliens generáláshoz, és hitelesítéshez. Ezek után ismét az oldalunkon találjuk magunkat, viszont a jobb felső sarokban is lehet látni jelét, hogy már be vagyunk jelentkezve.G6

Mostmár rányomhatunk a Get User Info gombra, amely a token kíséretében elindítja a Graph felé a kérést, a GetMyUserInfo() eljárás hívásával. Az eljárás először létrehoz egy authentikált Graph kliens objektumot az SDKHelper.GetAuthenticatedClient() eljárás segítségével.G7

Ez összeállítja a token, és egyéb ismertetők segítségével a kliens objektumot, amivel kéréseket intézhetünk a Graph API felé. Ezután létrehozunk egy User objektumot, ami a lekért adatainkat fogja tartalmazni, és hívjuk a GetMyUserInfo() modell -t, hogy valósítsa meg az adat lekérését.G8

A visszatérési értéket ezután a megfelelő ViewBag.Változó -ba helyezve visszaadhatjuk a weblapnak, amiket megjelenít.G9

Az eredményünk pedig jól látható a végső oldalon, ahol az adataink megjelenítődnek. Mivel az O365 dokumentációt olvasgatva belefutottam abba, hogy azt írták érdemes az Office -hoz is a Graph API használatát alkalmazni, a mostani program futtatása közben is egy Office fiókot alkalmaztam, és tényleg működik anélkül, hogy külön O365 klienseket, meg token -t kellene kérvényezni.

Leave a Reply