API-k hozzáférésének engedélyezése a Microsoft Authentication Library használatával
Most már bejelentkezhet a cég felhasználóival a webalkalmazásba. A következő lépésben olyan információkat szeretne megjeleníteni, mint a beosztásuk, a munkahelyi e-mail-címük és így tovább az alkalmazottak profiljából az oldalon. Úgy találja, hogy a Microsoft Graph API hozzáférést biztosít a felhasználóval kapcsolatos adatokhoz.
Ebben a leckében megtudhatja, hogyan segíthet az MSAL a Microsoft-szolgáltatások, például a Microsoft Graph API-hoz való hozzáférés engedélyezésében.
API-engedélyek és hatókörök
A Microsoft Entra ID által védett webszolgáltatások olyan engedélyeket határoznak meg, amelyek hozzáférést biztosítanak a szolgáltatás által elérhető API-funkciókhoz és adatokhoz. Az alkalmazások kérhetik ezeket az engedélyeket a felhasználóktól és a rendszergazdáktól, akiknek jóvá kell hagyniuk a kérést, mielőtt az alkalmazás hozzáférhet az adatokhoz, vagy eljárhatnak egy felhasználó nevében. A Microsoft Graph például többek között az alábbi feladatok elvégzésére vonatkozó engedélyekkel rendelkezik:
- Felhasználó naptárának olvasása
- Írás a felhasználó naptárában
- E-mail küldése felhasználóként
A felhasználók és a rendszergazdák szabályozhatják és megismerhetik, hogy az alkalmazás milyen adatokhoz férhet hozzá. Ahhoz, hogy az alkalmazás hozzáférhessen a Microsoft által védett API-hoz, meg kell adnia az alkalmazás engedélyeit a műveletek végrehajtásához.
A Microsoft Entra ID kétféle engedélyt támogat: delegált engedélyeket és alkalmazásengedélyeket.
A delegált engedélyeket olyan alkalmazások használják, amelyekben bejelentkezett felhasználó található. Ezekben az alkalmazásokban a felhasználó vagy egy rendszergazda elfogadja az alkalmazás által kért engedélyeket. Az alkalmazás delegált engedéllyel rendelkezik arra, hogy bejelentkezett felhasználóként működjön a cél API-ra irányuló hívások során. Bizonyos magas jogosultságú engedélyek rendszergazdai hozzájárulást igényelnek.
Az alkalmazásengedélyeket olyan alkalmazások használják, amelyek bejelentkezett felhasználó nélkül futnak, például háttérszolgáltatásként vagy démonként futó alkalmazások. Az alkalmazásengedélyekhez kizárólag a rendszergazdák adhatnak hozzájárulást.
Ezeket az API-engedélyeket az Azure Portalon rendelheti hozzá az alkalmazásregisztrációhoz.
Hatókörök
A Microsoft Entra ID implementálja az OAuth 2.0 engedélyezési protokollt, amelyen keresztül egy alkalmazás hozzáférhet a webre üzemeltetett erőforrásokhoz egy felhasználó nevében.
Az OAuth 2.0-ban az ilyen típusú engedélykészleteket hatóköröknek nevezzük. Amikor engedélyezési kérelmet küld a Microsoft Entra ID-nak, az alkalmazás a kérelem scope lekérdezési paraméterében megadott engedély megadásával kéri le a szükséges engedélyeket. A hatókör értéke https://graph.microsoft.com/Calendars.Read például arra szolgál, hogy engedélyt kérjen a felhasználók naptárainak olvasására a Microsoft Graphban.
Hozzáférési jogkivonatok beszerzése az MSAL használatával
A hozzáférési jogkivonatok lehetővé teszik az ügyfélalkalmazások számára a Microsoft Entra ID által védett webes API-k biztonságos meghívását. A hozzáférési jogkivonatot többféleképpen is beszerezheti a Microsoft Authentication Library (MSAL) használatával. A jogkivonatok beszerzéséhez használt módszer általában attól függ, hogy az alkalmazás nyilvános ügyfélalkalmazás-e, például asztali vagy mobilalkalmazás, vagy bizalmas ügyfélalkalmazás, például webalkalmazás, webes API vagy démonalkalmazás.
Az MSAL több jogkivonat-beszerzési módszeréhez paraméterre van szükség scopes , amely a kívánt engedélyeket és a kért erőforrásokat deklaráló sztringek listája.
Ajánlott hívásminta webalkalmazásokhoz
Az MSAL gyorsítótárazza a jogkivonatot a beszerzése után. Az OpenID Connect engedélyezési kódfolyamatot használó webalkalmazások esetében a vezérlőkben javasolt minta a következő:
Először próbálja meg csendben lekérni a jogkivonatot a gyorsítótárból, mielőtt más módon próbálná meg beszerezni a jogkivonatot. Az alábbi kód egy részlet a metódusnak az
acquireTokenSilentlyosztályban valóAuthHelpermegvalósításából.final SilentParameters parameters = SilentParameters .builder(Collections.singleton(Config.SCOPES), context.getAccount()) .build(); final ConfidentialClientApplication client = getConfidentialClientInstance(); client.tokenCache().deserialize(context.getTokenCache()); final IAuthenticationResult result = client.acquireTokenSilently(parameters).get();Ha nincs jogkivonat a gyorsítótárban, és a csendes jogkivonat-kérés nem tud jogkivonatot lekérni, a jogkivonatot az engedélyezési kód folyamatával szerezheti be:
final AuthorizationCodeParameters authParams = AuthorizationCodeParameters .builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES)) .build(); final IAuthenticationResult result = app.acquireToken(authParams).get();
Az MSAL képes frissíteni egy jogkivonatot is, amikor közel van a lejárathoz (mivel a jogkivonat gyorsítótára is tartalmaz frissítési jogkivonatot).
Hitelesítési eredmények
Amikor az ügyfél hozzáférési jogkivonatot kér, a Microsoft Entra ID egy olyan hitelesítési eredményt is ad vissza, amely metaadatokat tartalmaz a hozzáférési jogkivonatról. Ezek az adatok lehetővé teszik az alkalmazás számára a hozzáférési jogkivonatok intelligens gyorsítótárazását anélkül, hogy magát a hozzáférési jogkivonatot kellene elemeznie. Az AuthenticationResult MSAL a következő közzétetteket adja vissza:
- A webes API hozzáférési jogkivonata.
- A felhasználó azonosító jogkivonata (JWT).
- A jogkivonat lejárata, amely a jogkivonat lejárati dátumát/időpontját jelzi.
- A bérlőazonosító tartalmazza azt a bérlőt, amelyben a felhasználó megtalálható.
- Azok a hatókörök, amelyekhez a jogkivonatot kiadták.
- A felhasználó egyedi azonosítója.
A Microsoft Graph bemutatása
A Microsoft Graph API egyetlen végpontot kínál, https://graph.microsoft.comamely hozzáférést biztosít a Gazdag, emberközpontú adatokhoz és elemzésekhez a Microsoft-felhőben. REST API-k vagy SDK-k használatával elérheti a végpontot, és olyan alkalmazásokat hozhat létre, amelyek támogatják a Microsoft 365-forgatókönyveket, beleértve a termelékenységet, az együttműködést, az oktatást, a személyeket és a munkahelyi intelligenciát és még sok mást. A Microsoft Graph emellett a felhasználói és eszközidentitást kezelő szolgáltatások hatékony készletét is tartalmazza.
Egy bejelentkezett felhasználó tulajdonságait például a végpont elérésével olvashatja https://graph.microsoft.com/v1.0/me el.