Weboldal keresés

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-RestMethod

cmdlet. 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.

  1. Jelentkezzen be az Azure Portalra https://portal.azure.com/

  2. Nyissa meg az Azure Active Directory -> Alkalmazás regisztrációja oldalát

  3. Hozzon létre egy új alkalmazást (Új regisztráció);

  4. Í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ó;
    gombra

  5. Ezután válassza ki, hogy az alkalmazás mely Azure-erőforrásokhoz férhet hozzá. Lépjen az API engedélyek szakaszba;

  6. 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;

  7. Kattintson az Engedély hozzáadása lehetőségre, majd válassza a Microsoft Graph lehetőséget;

  8. 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;

  9. 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

    );

  10. 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.

  1. Nyissa meg a Tanúsítványok és titkok -> Új ügyféltitkok elemet;

  2. Adja meg a kulcs nevét, és állítsa be az érvényességi idejét (12 hónapot adtam meg);

  3. 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);

  4. 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-RestMethod

cmdlet.

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_token

A 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.displayName

Megjelení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,createdDateTime

Felhaszná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,mail

Ha 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.

Kapcsolódó cikkek