Sdílet prostřednictvím


Kurz: Přiřazení vlastních rolí pomocí funkce a Microsoft Graphu

Tento článek ukazuje použití funkce k dotazování Microsoft Graphu a přiřazení vlastních rolí uživateli na základě členství ve skupině Active Directory.

V tomto kurzu se naučíte:

  • Nasaďte statickou webovou aplikaci.
  • Vytvořte registraci aplikace Microsoft Entra.
  • Nastavte vlastní ověřování pomocí Microsoft Entra ID.
  • Nakonfigurujte funkci bez serveru, která se dotazuje na členství ve skupině Active Directory uživatele a vrátí seznam vlastních rolí.

Poznámka:

Tento kurz vyžaduje použití funkce k přiřazování rolí. Správa rolí na základě funkcí je aktuálně ve verzi Preview. Úroveň oprávnění potřebná k dokončení tohoto kurzu je User.Read.All.

V rozhraní API aplikace je funkce s názvem GetRoles . Tato funkce používá přístupový token uživatele k dotazování služby Active Directory z Microsoft Graphu. Pokud je uživatel členem jakékoli skupiny definované v aplikaci, namapují se na uživatele odpovídající vlastní role.

Požadavky

Požadavek Poznámky
Aktivní účet Azure Pokud ho nemáte, můžete si zdarma vytvořit účet.
Oprávnění pro Microsoft Entra K vytvoření aplikace Microsoft Entra musíte mít dostatečná oprávnění.

Vytvoření úložiště GitHub

  1. Vygenerujte úložiště na základě šablony funkce rolí. Přejděte do následujícího umístění a vytvořte nové úložiště.

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

  2. Pojmenujte své úložiště my-custom-roles-app.

  3. Vyberte možnost Create repository from template (Vytvořit úložiště ze šablony).

Nasazení statické webové aplikace do Azure

  1. V novém okně prohlížeče otevřete Azure Portal.

  2. V levém horním rohu vyberte Vytvořit prostředek.

  3. Do vyhledávacího pole zadejte statické webové aplikace.

  4. Vyberte staické webové aplikace (Static Web Apps).

  5. Vyberte Vytvořit.

  6. Nakonfigurujte statickou webovou aplikaci s následujícími informacemi:

    Nastavení Hodnota Notes
    Předplatné Vyberte své předplatné Azure.
    Skupina zdrojů Vytvořte novou skupinu s názvem my-custom-roles-app-group.
    Název aplikace my-custom-roles-app
    Typ plánu Standard Přizpůsobení ověřování a přiřazování rolí pomocí funkce vyžaduje plán Standard .
    Oblast pro rozhraní API Vyberte oblast, která je k vám nejblíže.
  7. V části Podrobnosti o nasazení:

    Nastavení Hodnota
    Source Vyberte GitHub.
    Organizace Vyberte organizaci, ve které jste úložiště vygenerovali.
    Úložiště Vyberte aplikaci my-custom-roles-app.
    Pobočka Vyberte hlavní.
  8. V části Podrobnosti sestavení přidejte podrobnosti o konfiguraci pro tuto aplikaci.

    Nastavení Hodnota Notes
    Přednastavení sestavení Vyberte Vlastní.
    Umístění aplikace Zadejte /front-end. Tato složka obsahuje front-end aplikaci.
    Umístění rozhraní API /Rozhraní api Složka v úložišti obsahující funkce rozhraní API
    Umístění výstupu Ponechte prázdné. Tato aplikace nemá žádný výstup sestavení.
  9. Vyberte Zkontrolovat a vytvořit.

  10. Vyberte Vytvořit zahájit první nasazení.

  11. Po dokončení procesu vyberte Přejít k prostředku a otevřete novou statickou webovou aplikaci.

  12. V části Přehled vyhledejte adresu URL vaší aplikace. Zkopírujte tuto hodnotu do textového editoru, který použijete v nadcházejících krocích k nastavení ověřování active directory.

Vytvoření aplikace Microsoft Entra

  1. Na webu Azure Portal vyhledejte a přejděte na ID Microsoft Entra.

  2. V nabídce Spravovat vyberte Registrace aplikací.

  3. Výběrem možnosti Nová registrace otevřete okno Registrace aplikace . Zadejte následující hodnoty:

    Nastavení Hodnota Notes
    Název Zadejte MyStaticWebApp.
    Typy podporovaných účtů Vyberte pouze účty v tomto organizačním adresáři.
    URI pro přesměrování Vyberte Web a zadejte adresu URL zpětného volání ověřování Microsoft Entra vaší statické webové aplikace. <YOUR_SITE_URL>/.auth/login/aad/callback Nahraďte <YOUR_SITE_URL> adresou URL vaší statické webové aplikace. Tato adresa URL je to, co jste zkopírovali do textového editoru v předchozím kroku.

    Create an app registration

  4. Vyberte Zaregistrovat.

  5. Po vytvoření registrace aplikace zkopírujte ID aplikace (klienta) a ID adresáře (tenanta) v části Základy do textového editoru.

    Tyto hodnoty potřebujete ke konfiguraci ověřování Active Directory ve statické webové aplikaci.

Povolení tokenů ID

  1. V nastavení registrace aplikace vyberte v části Spravovat ověřování.

  2. V části Implicitní udělení a hybridní toky vyberte tokeny ID (používané pro implicitní a hybridní toky).

    Modul runtime Static Web Apps vyžaduje, aby se tato konfigurace ověřila uživatele.

  3. Zvolte Uložit.

Vytvoření tajného klíče klienta

  1. V nastavení registrace aplikace vyberte v části Spravovat certifikáty a tajné kódy.

  2. V části Tajné klíče klienta vyberte Nový tajný klíč klienta.

  3. Do pole Popis zadejte MyStaticWebApp.

  4. U pole Konec platnosti ponechte výchozí hodnotu 6 měsíců.

    Poznámka:

    Tajný kód musíte otočit před datem vypršení platnosti tak, že vygenerujete nový tajný kód a aktualizujete aplikaci její hodnotou.

  5. Vyberte Přidat.

  6. Zkopírujte hodnotu tajného klíče klienta, který jste vytvořili, do textového editoru.

    Tuto hodnotu potřebujete ke konfiguraci ověřování Active Directory ve statické webové aplikaci.

    Create a client secret

Konfigurace ověřování active directory

  1. V prohlížeči otevřete úložiště GitHub obsahující statickou webovou aplikaci, kterou jste nasadili.

    Přejděte do konfiguračního souboru aplikace na front-endu nebo staticwebapp.config.json. Tento soubor obsahuje následující část:

    "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"
            ]
          }
        }
      }
    },
    

    Tato konfigurace se skládá z následujících nastavení:

    Vlastnosti Popis
    rolesSource Adresa URL, kde proces přihlášení získá seznam dostupných rolí. Pro ukázkovou aplikaci je /api/GetRolesadresa URL .
    userDetailsClaim Adresa URL schématu použitého k ověření žádosti o přihlášení.
    openIdIssuer Trasa přihlášení Microsoft Entra připojená s ID tenanta.
    clientIdSettingName ID vašeho klienta Microsoft Entra.
    clientSecretSettingName Hodnota tajného klíče klienta Microsoft Entra.
    loginParameters Chcete-li získat přístupový token pro Microsoft Graph, loginParameters musí být pole nakonfigurováno pomocí resource=https://graph.microsoft.com.
  2. Výběrem možnosti Upravit aktualizujte soubor.

  3. Aktualizujte hodnotu https://login.microsoftonline.com/<YOUR_AAD_TENANT_ID> openIdIssuer nahrazením <YOUR_AAD_TENANT_ID> ID adresáře (tenanta) vašeho ID Microsoft Entra.

  4. Vyberte Potvrdit změny....

  5. Zadejte zprávu potvrzení a vyberte Potvrdit změny.

    Potvrzení těchto změn zahájí spuštění GitHub Actions a aktualizuje statickou webovou aplikaci.

  6. Na webu Azure Portal přejděte ke svému prostředku statické webové aplikace.

  7. Na řádku nabídek vyberte Možnost Konfigurace .

  8. V části Nastavení aplikace přidejte následující nastavení:

    Jméno Hodnota
    AAD_CLIENT_ID ID vaší aplikace (klienta) služby Active Directory.
    AAD_CLIENT_SECRET Hodnota tajného klíče klienta aplikace Active Directory.
  9. Zvolte Uložit.

Vytvoření rolí

  1. Otevřete registraci aplikace Active Directory na webu Azure Portal.

  2. V části Spravovat vyberte Role aplikace.

  3. Vyberte Vytvořit roli aplikace a zadejte následující hodnoty:

    Nastavení Hodnota
    Zobrazované jméno Zadejte správce.
    Povolené typy členů Vyberte Uživatele nebo skupiny.
    Hodnota Zadejte správce.
    Popis Zadejte Správa istrator.
  4. Zaškrtněte políčko u možnosti Chcete povolit tuto roli aplikace?

  5. Vyberte Použít.

  6. Teď stejný postup opakujte pro roli pojmenovanou čtenáře.

  7. Zkopírujte hodnoty ID pro každou roli a nastavte je v textovém editoru.

Ověření vlastních rolí

Ukázková aplikace obsahuje funkci rozhraní API (api/GetRoles/index.js), která dotazuje Microsoft Graph, aby určila, jestli je uživatel v předdefinované skupině.

Na základě členství uživatele ve skupinách přiřadí funkce uživateli vlastní role. Aplikace je nakonfigurovaná tak, aby omezovala určité trasy na základě těchto vlastních rolí.

  1. V úložišti GitHub přejděte do funkce GetRoles , která se nachází v api/GetRoles/index.js.

    V horní části je roleGroupMappings objekt, který mapuje vlastní role uživatelů na skupiny Microsoft Entra.

  2. Vyberte položku Upravit.

  3. Aktualizujte objekt pomocí ID skupin z tenanta Microsoft Entra.

    Pokud máte například skupiny s ID 6b0b2fff-53e9-4cff-914f-dd97a13bfbd6 a b6059db5-9cef-4b27-9434-bb793aa31805, aktualizovali byste objekt na:

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

    Funkce GetRoles je volána vždy, když je uživatel úspěšně ověřen pomocí Microsoft Entra ID. Funkce používá přístupový token uživatele k dotazování členství ve skupině Active Directory z Microsoft Graphu. Pokud je uživatel členem všech skupin definovaných v objektu roleGroupMappings , vrátí se odpovídající vlastní role.

    V předchozím příkladu platí, že pokud je uživatel členem skupiny Active Directory s ID b6059db5-9cef-4b27-9434-bb793aa31805, má přiřazenou reader roli.

  4. Vyberte Potvrdit změny....

  5. Přidejte zprávu potvrzení a vyberte Potvrdit změny.

    Provedením těchto změn se zahájí sestavení pro aktualizaci statické webové aplikace.

  6. Po dokončení nasazení můžete ověřit změny tak, že přejdete na adresu URL aplikace.

  7. Přihlaste se ke statické webové aplikaci pomocí ID Microsoft Entra.

  8. Po přihlášení se v ukázkové aplikaci zobrazí seznam rolí, které jste přiřadili na základě členství ve skupině Active Directory vaší identity.

    V závislosti na těchto rolích máte povolený nebo zakázaný přístup k některým trasám v aplikaci.

Poznámka:

Některé dotazy na Microsoft Graph vrací více stránek dat. Pokud je požadováno více než jeden požadavek dotazu, Vrátí @odata.nextLink Microsoft Graph vlastnost v odpovědi, která obsahuje adresu URL na další stránku výsledků. Další informace najdete v tématu Stránkování dat Microsoft Graphu v aplikaci.

Vyčištění prostředků

Vyčistěte prostředky, které jste nasadili, odstraněním skupiny prostředků.

  1. Na portálu Azure Portal vyberte v nabídce nalevo Skupina prostředků.

  2. Do pole Filtrovat podle názvu zadejte název skupiny prostředků.

  3. Vyberte název skupiny prostředků, který jste použili v tomto kurzu.

  4. V nabídce nahoře vyberte Odstranit skupinu prostředků.

Další kroky