A Microsoft Graph API használata az Azure PowerShell-en keresztüli eléréséhez
A Microsoft Graph API lehetővé teszi az Azure AD (Microsoft 365) bérlő bármely objektumának elérését egyetlen REST API-pont használatával (
https://graph.microsoft.com). Valószínűleg azt gondolja, hogy ez csak a webfejlesztőknek lehet érdekes, de ez fordítva van. A Microsoft 365 egyes adatai, objektumai vagy erőforrástulajdonságai csak a Microsoft Graphon keresztül érhetők el. Analitikai adatok, statisztikák vagy egyéb információk gyűjtéséhez az Azure-rendszergazdának Microsoft Graphot kell használnia.
Ebben a cikkben bemutatjuk, hogyan regisztrálhatja alkalmazását az Azure AD-ben, hogyan szerezhet be hitelesítési tokent, hogyan csatlakozhat különböző Microsoft 365-erőforrásokhoz (Azure AD, Office 365, Intune, SharePoint, Teams, OneNote stb.) a RESTful és a PowerShell használatával.
Invoke-RestMethodcmdlet. A Microsoft Graph segítségével adatokat kaphat és kezelhet objektumokat az Azure-ban.
A Microsoft Graph alkalmazás regisztrálása az Azure AD-ben
Az Azure-bérlő erőforrásainak Microsoft Graph használatával való eléréséhez létre kell hoznia egy új Azure AD-alkalmazást, és lehetővé kell tennie számára a különböző Azure-objektumok elérését.
-
Jelentkezzen be az Azure Portalra https://portal.azure.com/
Nyissa meg az Azure Active Directory -> Alkalmazás regisztrációja oldalát
Hozzon létre egy új alkalmazást (Új regisztráció);
Írja be az alkalmazás nevét: azGraphPowerShellApp, válassza ki, hogy ki használhatja az alkalmazást:
Accounts in this organizational directory only (tenantname only - Single tenant)és kattintson a Regisztráció;
gombraEzután válassza ki, hogy az alkalmazás mely Azure-erőforrásokhoz férhet hozzá. Lépjen az API engedélyek szakaszba;
Alapértelmezés szerint egy alkalmazás csak egy aktuális AzureAD-felhasználóról olvashat adatokat (
User.Read). Olvasási engedélyt adunk neki a Microsoft 365-felhasználók és -csoportok összes tulajdonságára vonatkozóan;
-
Kattintson az Engedély hozzáadása lehetőségre, majd válassza a Microsoft Graph lehetőséget;
A Microsoft Graphban két alapvető engedélytípus létezik (Delegált engedély - amikor egy alkalmazást futtató felhasználó nevében történik valami, és Alkalmazásengedély - amikor egy alkalmazást külső szkript hív meg). Válassza az Alkalmazásengedély lehetőséget;
A megjelenő listában kiválaszthatja, hogy milyen engedélyeket rendeljen hozzá az Azure-erőforrásokhoz és objektumokhoz való hozzáféréshez. Példámban hozzáadtam a Group -> elemet
Group.Read.All, Csoporttag ->
GroupMember.Read.All, Felhasználó ->
User.Read.All(ha azt szeretné, hogy az alkalmazás olvassa a bérlőben lévő adatokat, válassza a lehetőséget
Directory.Read.All);
Kattintson a Rendszergazdai hozzájárulás megadása lehetőségre, ha hozzáférést szeretne adni a rendszergazda nevében.
Az alkalmazásban történő hitelesítéshez használhat tanúsítványt vagy titkot. A titok egy automatikusan generált jelszó. A felhasználónév egy alkalmazásazonosító. Hozzunk létre egy titkot az alkalmazásod számára.
Nyissa meg a Tanúsítványok és titkok -> Új ügyféltitkok elemet;
Adja meg a kulcs nevét, és állítsa be az érvényességi idejét (12 hónapot adtam meg);
Másolja ki az értéket az Érték mezőből (ez az alkalmazás jelszava). Mentse el a jelszót az Azure Key Vaultban vagy a jelszókezelőben, mivel az alkalmazásból való kilépés után a jelszó értéke el lesz rejtve (újra létre kell hoznia a titkot);
Ezután másolja ki az alkalmazásazonosítót (alkalmazásügyfél-azonosító) és az Azure-bérlői azonosítót (címtárbérlő-azonosító).
Illessze be az értékeket a PowerShell-változókba:
$ApplicationID = "1111111-1111-1111-1111-11111111111"
$TenatDomainName = "2222222-2222-2222-2222-222222222222"
$AccessSecret = "3333333333333333333333333333333333333333333"Csatlakozás az Azure Microsoft Graph API-hoz PowerShell használatával
A Microsoft Graph API PowerShellből való használatához nem kell külön PowerShell-modulokat (például Azure AD) telepítenie. Beépített eszközzel kommunikálhat vele
Invoke-RestMethodcmdlet.
A Graph API-hoz való csatlakozáshoz hozzáférési tokent kell beszereznie. A következő PowerShell-szkript lehetővé teszi a hitelesítést az alkalmazásban, és egy Microsoft Graph API hozzáférési token beszerzését.
Ebben a példában egy titkos jelszót (jelszót) használunk egyszerű szövegként a szkriptben. A való életben nem ajánlott ezt megtenni. Inkább interaktívan kérjen titkot, vagy bontsa ki egy titkos tárolóból (a SecretManagement PowerShell modul segíthet ebben). Vigyázzon a titkaira is, ha PowerShell-szkriptjeit Gitben tárolja.
$ApplicationID = "1111111-1111-1111-1111-11111111111"
$TenatDomainName = "2222222-2222-2222-2222-222222222222"
$AccessSecret = "3333333333333333333333333333333333333333333"
$Body = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
client_Id = $ApplicationID
Client_Secret = $AccessSecret
}
$ConnectGraph = Invoke-RestMethod -Uri https://login.microsoftonline.com/$TenatDomainName/oauth2/v2.0/token -Method POST -Body $Body
$token = $ConnectGraph.access_tokenA token használatával különböző lekérdezéseket futtathat az Azure-bérlővel szemben a GraphAPI használatával.
Az alábbi szkript például az Azure AD-ben található csoportok listáját jeleníti meg:
$GrapGroupUrl = 'https://graph.microsoft.com/v1.0/Groups/'
(Invoke-RestMethod -Headers @{Authorization = "Bearer $($token)"} -Uri $GrapGroupUrl -Method Get).value.displayNameMegjelenítheti az Azure AD-csoport létrehozásának dátumát:
$GrapGroupUrl = 'https://graph.microsoft.com/v1.0/Groups/'
$Groups=(Invoke-RestMethod -Headers @{Authorization = "Bearer $($token)"} -Uri $GrapGroupUrl -Method Get).value
$Groups | select displayName,createdDateTimeFelhasználónév, UPN és e-mail cím megjelenítése:
$GrapUserUrl = 'https://graph.microsoft.com/v1.0/users'
$users=(Invoke-RestMethod -Headers @{Authorization = "Bearer $($token)"} -Uri $GrapUserUrl -Method Get).value
$users | select displayName,userprincipalname,mailHa nem adott engedélyt az Azure AD-objektumokhoz való hozzáféréshez az alkalmazáshoz, a következő hibaüzenet jelenik meg az Invoke-RestMethod futtatásakor:
The remote server returned an error: (403) Forbidden.A fenti példákban csak az Azure AD-ből olvasunk be adatokat a GET metódus használatával. De a módosításokhoz POST, PUT, PATCH vagy DELETE módszereket is használhat. Például létrehozhat egy felhasználót az Azure AD-ben, visszaállíthat egy jelszót, módosíthat egy leírást stb.
A böngészőben elérhető Microsoft Graph API tulajdonságainak vagy metódusainak megtekintéséhez használja a Graph Explorer alkalmazást (https://developer.microsoft.com/en-us/graph/graph-explorer).
A Microsoft emellett rendelkezik egy speciális Microsoft Graph PowerShell SDK-val is a Microsoft Graph (
Install-Module Microsoft.Graph). De megmutattuk, hogy a Microsoft Graph-t közvetlenül a PowerShellből érheti el.











