Oktatóanyag: Egyéni szerepkörök hozzárendelése egy függvényhez és a Microsoft Graphhoz

Ez a cikk bemutatja, hogyan használható függvény a Microsoft Graph lekérdezésére és egyéni szerepkörök hozzárendelésére egy felhasználóhoz az Active Directory-csoporttagság alapján.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Statikus webalkalmazás üzembe helyezése.
  • Microsoft Entra-alkalmazásregisztráció létrehozása.
  • Egyéni hitelesítés beállítása a Microsoft Entra-azonosítóval.
  • Konfiguráljon egy kiszolgáló nélküli függvényt, amely lekérdezi a felhasználó Active Directory-csoporttagságát, és visszaadja az egyéni szerepkörök listáját.

Feljegyzés

Ez az oktatóanyag megköveteli, hogy egy függvényt használjon a szerepkörök hozzárendeléséhez. A függvényalapú szerepkörkezelés jelenleg előzetes verzióban érhető el. Az oktatóanyag elvégzéséhez szükséges jogosultsági szint a "User.Read.All".

Az alkalmazás API-jában van egy GetRoles nevű függvény. Ez a függvény a felhasználó hozzáférési jogkivonatával kérdezi le az Active Directoryt a Microsoft Graphból. Ha a felhasználó tagja az alkalmazásban definiált csoportoknak, a rendszer leképezi a megfelelő egyéni szerepköröket a felhasználóra.

Előfeltételek

Követelmény Megjegyzések
Aktív Azure-fiók Ha nem rendelkezik ilyen fiókkal, ingyenesen létrehozhat fiókot.
Microsoft Entra-engedélyek Megfelelő engedélyekkel kell rendelkeznie a Microsoft Entra-alkalmazások létrehozásához.

GitHub-adattár létrehozása

  1. Hozzon létre egy adattárat a szerepkörfüggvény-sablon alapján. Új adattár létrehozásához lépjen az alábbi helyre.

    https://github.com/staticwebdev/roles-function/generate

  2. Nevezze el az adattárat az egyéni szerepkörök alkalmazásnak.

  3. Válassza az Adattár létrehozása sablonból lehetőséget.

A statikus webalkalmazás üzembe helyezése az Azure-ban

  1. Egy új böngészőablakban nyissa meg az Azure Portalt.

  2. A bal felső sarokban válassza az Erőforrás létrehozása lehetőséget.

  3. Írja be a keresőmezőbe a statikus webalkalmazásokat.

  4. Válassza a Static Web Apps elemet.

  5. Válassza a Létrehozás lehetőséget.

  6. Konfigurálja a statikus webalkalmazást a következő információkkal:

    Beállítás Érték Jegyzetek
    Előfizetés Válassza ki az Azure-előfizetését.
    Erőforráscsoport Hozzon létre egy új csoportot a my-custom-roles-app-group névvel.
    Név my-custom-roles-app
    Konstrukció típusa Standard A hitelesítés testreszabásához és a szerepkörök függvényekkel való hozzárendeléséhez standard csomagra van szükség.
    Az API régiója Válassza ki az Önhöz legközelebb eső régiót.
  7. Az Üzembe helyezés részletei szakaszban:

    Beállítás Érték
    Forrás Válassza a GitHub lehetőséget.
    Szervezet Válassza ki azt a szervezetet, ahol létrehozta az adattárat.
    Adattár Válassza ki a saját-custom-roles-appot.
    Ág Válassza ki a fő elemet.
  8. A Build Details (Összeállítás részletei) szakaszban adja hozzá az alkalmazás konfigurációs adatait.

    Beállítás Érték Jegyzetek
    Előre beállított buildek Válassza az Egyéni lehetőséget.
    Alkalmazás helye Adja meg a /frontend értéket. Ez a mappa tartalmazza az előtéralkalmazást.
    Az API helye /Api Az API-függvényeket tartalmazó adattár mappája.
    Kimeneti hely Hagyja üresen. Ez az alkalmazás nem rendelkezik buildkimenettel.
  9. Válassza az Áttekintés + létrehozás lehetőséget.

  10. Válassza a Létrehozás az első üzembe helyezés kezdeményezése lehetőséget.

  11. A folyamat befejezése után válassza az Erőforrás megnyitása lehetőséget az új statikus webalkalmazás megnyitásához.

  12. Az áttekintés szakaszban keresse meg az alkalmazás URL-címét. Másolja ezt az értéket egy szövegszerkesztőbe az Active Directory-hitelesítés beállításának következő lépéseihez.

Microsoft Entra-alkalmazás létrehozása

  1. Az Azure Portalon keresse meg és nyissa meg a Microsoft Entra-azonosítót.

  2. A Kezelés menüben válassza a Alkalmazásregisztrációk.

  3. Válassza az Új regisztráció lehetőséget az alkalmazás regisztrálása ablak megnyitásához. Írja be a következő értékeket:

    Beállítás Érték Jegyzetek
    Név Írja be a MyStaticWebApp parancsot.
    Támogatott fióktípusok Csak ebben a szervezeti címtárban válassza a Fiókok lehetőséget.
    Átirányítási URI Válassza a Web lehetőséget, és adja meg a statikus webalkalmazás Microsoft Entra-hitelesítés visszahívási URL-címét. Írja be <YOUR_SITE_URL><YOUR_SITE_URL>/.auth/login/aad/callback a statikus webalkalmazás URL-címét. Ezt az URL-címet másolta egy szövegszerkesztőbe egy korábbi lépésben.

    Create an app registration

  4. Válassza ki a pénztárgépet.

  5. Az alkalmazásregisztráció létrehozása után másolja az Alkalmazás (ügyfél) és a Címtár (bérlő) azonosítóját az Essentials szakaszban egy szövegszerkesztőbe.

    Ezekre az értékekre szüksége van az Active Directory-hitelesítés statikus webalkalmazásban való konfigurálásához.

Azonosító jogkivonatok engedélyezése

  1. Az alkalmazásregisztrációs beállítások között válassza a Hitelesítés lehetőséget a Kezelés területen.

  2. Az Implicit engedélyezési és hibrid folyamatok szakaszban válassza ki az azonosító jogkivonatokat (implicit és hibrid folyamatokhoz).

    A Static Web Apps-futtatókörnyezethez ez a konfiguráció szükséges a felhasználók hitelesítéséhez.

  3. Válassza a Mentés lehetőséget.

Titkos ügyfélkód létrehozása

  1. Az alkalmazásregisztrációs beállítások között válassza a Tanúsítványok > titkos kódok lehetőséget a Kezelés területen.

  2. Az Ügyfél titkos kulcsok szakaszban válassza az Új ügyfélkód lehetőséget.

  3. A Leírás mezőbe írja be a MyStaticWebApp kifejezést.

  4. A Lejárat mezőnél hagyja meg az alapértelmezett 6 hónapos értéket.

    Feljegyzés

    A titkos kulcsot a lejárati dátum előtt el kell forgatnia egy új titkos kód létrehozásával és az alkalmazás értékével való frissítésével.

  5. Válassza a Hozzáadás lehetőséget.

  6. Másolja a létrehozott ügyfélkulcs értékét egy szövegszerkesztőbe.

    Erre az értékre van szüksége az Active Directory-hitelesítés statikus webalkalmazásban való konfigurálásához.

    Create a client secret

Active Directory-hitelesítés konfigurálása

  1. Egy böngészőben nyissa meg az üzembe helyezett statikus webalkalmazást tartalmazó GitHub-adattárat.

    Nyissa meg az alkalmazás konfigurációs fájlját az előtérben/staticwebapp.config.json. Ez a fájl a következő szakaszt tartalmazza:

    "auth": {
      "rolesSource": "/api/GetRoles",
      "identityProviders": {
        "azureActiveDirectory": {
          "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
          "registration": {
            "openIdIssuer": "https://login.microsoftonline.com/<YOUR_AAD_TENANT_ID>",
            "clientIdSettingName": "AAD_CLIENT_ID",
            "clientSecretSettingName": "AAD_CLIENT_SECRET"
          },
          "login": {
            "loginParameters": [
              "resource=https://graph.microsoft.com"
            ]
          }
        }
      }
    },
    

    Ez a konfiguráció a következő beállításokból áll:

    Tulajdonságok Leírás
    rolesSource Az URL-cím, ahol a bejelentkezési folyamat lekéri az elérhető szerepkörök listáját. A mintaalkalmazás URL-címe /api/GetRoles.
    userDetailsClaim A bejelentkezési kérelem érvényesítéséhez használt séma URL-címe.
    openIdIssuer A Microsoft Entra bejelentkezési útvonala, hozzáfűzve a bérlőazonosítóval.
    clientIdSettingName Az Ön Microsoft Entra-ügyfélazonosítója.
    clientSecretSettingName A Microsoft Entra-ügyfél titkos kódértéke.
    loginParameters A Microsoft Graph hozzáférési jogkivonatának beszerzéséhez a loginParameters mezőt konfigurálni kell a következővel resource=https://graph.microsoft.com: .
  2. A fájl frissítéséhez válassza a Szerkesztés lehetőséget.

  3. Frissítse az openIdIssuer értékét úgy, hogy lecseréli https://login.microsoftonline.com/<YOUR_AAD_TENANT_ID><YOUR_AAD_TENANT_ID> a Microsoft Entra-azonosító címtár-(bérlői) azonosítóját.

  4. Válassza a Módosítások véglegesítése...lehetőséget.

  5. Írjon be egy véglegesítési üzenetet, és válassza a Módosítások véglegesítése lehetőséget.

    A módosítások véglegesítése egy GitHub Actions-futtatást kezdeményez a statikus webalkalmazás frissítéséhez.

  6. Nyissa meg statikus webalkalmazás-erőforrását az Azure Portalon.

  7. Válassza a Menüsáv Konfiguráció elemét .

  8. Az Alkalmazásbeállítások szakaszban adja hozzá a következő beállításokat:

    Név szerint Érték
    AAD_CLIENT_ID Az Active Directory-alkalmazás (ügyfél) azonosítója.
    AAD_CLIENT_SECRET Az Active Directory-alkalmazás titkos kódértéke.
  9. Válassza a Mentés lehetőséget.

Szerepkörök létrehozása

  1. Nyissa meg az Active Directory-alkalmazásregisztrációt az Azure Portalon.

  2. A Kezelés csoportban válassza az Alkalmazásszerepkörök lehetőséget.

  3. Válassza az Alkalmazásszerepkör létrehozása lehetőséget, és adja meg a következő értékeket:

    Beállítás Érték
    Megjelenítendő név Adja meg a rendszergazda nevét.
    Engedélyezett tagtípusok Válassza ki a Felhasználók/Csoportok lehetőséget.
    Érték Adja meg a rendszergazda nevét.
    Leírás Adja meg Rendszergazda istratort.
  4. Jelölje be az alkalmazásszerepkör engedélyezéséhez szükséges jelölőnégyzetet ?

  5. Válassza az Alkalmazás lehetőséget.

  6. Most ismételje meg ugyanezt a folyamatot egy olvasó nevű szerepkör esetében.

  7. Másolja ki az egyes szerepkörök azonosítóértékét , és helyezze őket félre egy szövegszerkesztőben.

Egyéni szerepkörök ellenőrzése

A mintaalkalmazás tartalmaz egy API-függvényt (api/GetRoles/index.js), amely lekérdezi a Microsoft Graphot annak megállapításához, hogy egy felhasználó egy előre definiált csoportban van-e.

A felhasználó csoporttagságai alapján a függvény egyéni szerepköröket rendel a felhasználóhoz. Az alkalmazás úgy van konfigurálva, hogy ezen egyéni szerepkörök alapján korlátozza bizonyos útvonalakat.

  1. A GitHub-adattárban nyissa meg az api/GetRoles/index.js címen található GetRoles függvényt.

    A tetején található egy roleGroupMappings objektum, amely egyéni felhasználói szerepköröket képez le a Microsoft Entra-csoportokhoz.

  2. Válassza a Szerkesztés lehetőséget.

  3. Frissítse az objektumot a Microsoft Entra-bérlő csoportazonosítóival.

    Ha például azonosítókat tartalmazó csoportokkal rendelkezik 6b0b2fff-53e9-4cff-914f-dd97a13bfbd6 , és b6059db5-9cef-4b27-9434-bb793aa31805az objektumot a következőre frissítené:

    const roleGroupMappings = {
      'admin': '6b0b2fff-53e9-4cff-914f-dd97a13bfbd6',
      'reader': 'b6059db5-9cef-4b27-9434-bb793aa31805'
    };
    

    A GetRoles függvény akkor lesz meghívva, ha egy felhasználó sikeresen hitelesítve van a Microsoft Entra ID azonosítójával. A függvény a felhasználó hozzáférési jogkivonatával kérdezi le az Active Directory-csoporttagságukat a Microsoft Graphból. Ha a felhasználó tagja az objektumban roleGroupMappings definiált csoportoknak, a rendszer visszaadja a megfelelő egyéni szerepköröket.

    A fenti példában, ha egy felhasználó az Active Directory-csoport tagja azonosítóval b6059db5-9cef-4b27-9434-bb793aa31805, megkapja a szerepkört reader .

  4. Válassza a Módosítások véglegesítése...lehetőséget.

  5. Adjon hozzá egy véglegesítési üzenetet, és válassza a Módosítások véglegesítése lehetőséget.

    Ezeknek a módosításoknak a végrehajtása a statikus webalkalmazás frissítéséhez kezdeményezi a buildelést.

  6. Ha az üzembe helyezés befejeződött, az alkalmazás URL-címére lépve ellenőrizheti a módosításokat.

  7. Jelentkezzen be a statikus webalkalmazásba a Microsoft Entra ID azonosítójával.

  8. Amikor bejelentkezik, a mintaalkalmazás megjeleníti az identitás Active Directory-csoporttagsága alapján hozzárendelt szerepkörök listáját.

    Ezektől a szerepköröktől függően az alkalmazás egyes útvonalainak elérése engedélyezett vagy tiltott.

Feljegyzés

Egyes Microsoft Graph-lekérdezések több oldalnyi adatot adnak vissza. Ha több lekérdezési kérelemre van szükség, a Microsoft Graph visszaad egy @odata.nextLink tulajdonságot a válaszban, amely egy URL-címet tartalmaz az eredmények következő oldalára. További információ: Microsoft Graph-adatok lapozása az alkalmazásban

Az erőforrások eltávolítása

Törölje az üzembe helyezett erőforrásokat az erőforráscsoport törlésével.

  1. Az Azure Portalon válassza az Erőforráscsoport lehetőséget a bal oldali menüben.

  2. A Szűrés név alapján mezőben adja meg az erőforráscsoport nevét.

  3. Válassza ki az oktatóanyagban használt erőforráscsoport nevét.

  4. A felső menüben válassza az Erőforráscsoport törlése lehetőséget.

Következő lépések