Sdílet prostřednictvím


Přihlášení uživatelů v ukázkové webové aplikaci Python Flask

V tomto článku prozkoumáte webovou aplikaci Python Flask, která je zabezpečená Microsoft Entra Externí ID. Tato ukázka vás provede přihlašovacím prostředím pro zákazníky, kteří se ověřují ve webové aplikaci Python Flask. Ukázková webová aplikace používá knihovnu Microsoft Authentication Library pro Python (MSAL Python) ke zpracování ověřování uživatelů.

Požadavky

Registrace webové aplikace

Pokud chcete aplikaci umožnit přihlášení uživatelů pomocí Microsoft Entra, Microsoft Entra Externí ID musí být informována o aplikaci, kterou vytvoříte. Registrace aplikace vytvoří vztah důvěryhodnosti mezi aplikací a Microsoft Entra. Když zaregistrujete aplikaci, externí ID vygeneruje jedinečný identifikátor označovaný jako ID aplikace (klienta), což je hodnota použitá k identifikaci aplikace při vytváření žádostí o ověření.

Následující kroky ukazují, jak zaregistrovat aplikaci v Centru pro správu Microsoft Entra:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň vývojář aplikací.

  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte do externího tenanta z nabídky Adresáře a předplatná.

  3. Přejděte k aplikacím> identit>Registrace aplikací.

  4. Vyberte + Nová registrace.

  5. Na stránce Zaregistrovat aplikaci, která se zobrazí;

    1. Zadejte smysluplný název aplikace, který se zobrazí uživatelům aplikace, například ciam-client-app.
    2. V části Podporované typy účtů vyberte Pouze účty v tomto organizačním adresáři.
  6. Vyberte Zaregistrovat.

  7. Po úspěšné registraci se zobrazí podokno Přehled aplikace. Poznamenejte si ID aplikace (klienta), které se má použít ve zdrojovém kódu aplikace.

Pokud chcete zadat typ aplikace pro registraci aplikace, postupujte takto:

  1. V části Spravovat vyberte Ověřování.
  2. Na stránce Konfigurace platformy vyberte Přidat platformu a pak vyberte Možnost Web.
  3. Pro identifikátory URI přesměrování zadejte http://localhost:3000/getAToken. Tento identifikátor URI přesměrování je umístění, kam autorizační server odesílá přístupový token. Můžete si ho přizpůsobit tak, aby vyhovovala vašemu případu použití.
  4. Výběrem možnosti Konfigurovat uložte změny.

Přidání tajného klíče klienta aplikace

Vytvořte tajný klíč klienta pro zaregistrovanou aplikaci. Aplikace používá tajný klíč klienta k prokázání své identity při žádosti o tokeny.

  1. Na stránce Registrace aplikací vyberte aplikaci, kterou jste vytvořili (například ciam-client-app), a otevřete její stránku Přehled.
  2. V části Spravovat vyberte Certifikáty a tajné kódy.
  3. Vyberte Nový tajný klíč klienta.
  4. Do pole Popis zadejte popis tajného klíče klienta (například tajný klíč klienta ciam).
  5. V části Konec platnosti vyberte dobu platnosti tajného kódu (podle pravidel zabezpečení vaší organizace) a pak vyberte Přidat.
  6. Poznamenejte si hodnotu tajného kódu. Tuto hodnotu použijete pro konfiguraci v pozdějším kroku. Hodnota tajného kódu se znovu nezobrazí a po přechodu z certifikátů a tajných kódů se nezobrazí žádným způsobem. Ujistěte se, že jste ho nahráli.

Jakmile aplikaci zaregistrujete, přiřadí se mu oprávnění User.Read . Vzhledem k tomu, že je tenant externím tenantem, nemohou vlastní uživatelé zákazníka s tímto oprávněním souhlasit. Jako správce musíte udělit souhlas s tímto oprávněním jménem všech uživatelů v tenantovi:

  1. Na stránce Registrace aplikací vyberte aplikaci, kterou jste vytvořili (například ciam-client-app), a otevřete její stránku Přehled.

  2. V části Spravovat vyberte oprávnění rozhraní API.

    1. Vyberte Udělit souhlas správce pro <název> vašeho tenanta a pak vyberte Ano.
    2. Vyberte Aktualizovat a ověřte, že se pro <název> vašeho tenanta zobrazuje stav oprávnění.

Vytvoření toku uživatele

Pokud chcete vytvořit tok uživatele, který může zákazník použít k přihlášení nebo registraci aplikace, postupujte podle těchto kroků.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce toku externího ID uživatele.

  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte do externího tenanta z nabídky Adresáře a předplatná.

  3. Přejděte k> tokům identity externích>identit uživatelů.

  4. Vyberte + Nový tok uživatele.

  5. Na stránce Vytvořit:

    1. Zadejte název toku uživatele, například SignInSignUpSample.

    2. V seznamu zprostředkovatelů identity vyberte E-mailové účty. Tento zprostředkovatel identity umožňuje uživatelům přihlásit se nebo zaregistrovat pomocí jejich e-mailové adresy.

      Poznámka:

      Další zprostředkovatelé identity se tady zobrazí až po nastavení federace s nimi. Pokud například nastavíte federaci s Googlem nebo Facebookem, budete tady moct vybrat další zprostředkovatele identity.

    3. V části E-mailové účty můžete vybrat jednu z těchto dvou možností. Pro účely tohoto kurzu vyberte E-mail s heslem.

      • E-mail s heslem: Umožňuje novým uživatelům zaregistrovat se a přihlásit se pomocí e-mailové adresy jako přihlašovací jméno a heslo jako jejich první přihlašovací údaje.
      • Jednorázové heslo e-mailu: Umožňuje novým uživatelům zaregistrovat se a přihlásit se pomocí e-mailové adresy jako přihlašovací jméno a jednorázové heslo jako jejich první přihlašovací údaje. Aby byla tato možnost dostupná na úrovni toku uživatele, musí být na úrovni tenanta povolená jednorázová hesla e-mailu všech zprostředkovatelů>identity.
    4. V části Atributy uživatele zvolte atributy, které chcete shromáždit od uživatele při registraci. Výběrem možnosti Zobrazit více můžete zvolit atributy a deklarace identity pro zemi/oblast, zobrazované jméno a PSČ. Vyberte OK. (Uživatelům se při první registraci zobrazí výzva pouze k zadání atributů.)

  6. Vyberte Vytvořit. Nový tok uživatele se zobrazí v seznamu Toky uživatele. V případě potřeby aktualizujte stránku.

Pokud chcete povolit samoobslužné resetování hesla, postupujte podle pokynů v článku Povolení samoobslužného resetování hesla.

Přidružení webové aplikace k toku uživatele

Aby uživatelé zákazníka viděli prostředí registrace nebo přihlašování, když používají vaši aplikaci, musíte aplikaci přidružit k toku uživatele. I když k toku uživatele může být přidruženo mnoho aplikací, jedna aplikace může být přidružena pouze k jednomu toku uživatele.

  1. V nabídce bočního panelu vyberte Možnost Identita.

  2. Vyberte externí identity a pak toky uživatelů.

  3. Na stránce Toky uživatele vyberte název toku uživatele, který jste vytvořili dříve, například SignInSignUpSample.

  4. V části Použít vyberte Aplikace.

  5. Vyberte Přidat aplikaci.

  6. Vyberte aplikaci ze seznamu, jako je ciam-client-app , nebo pomocí vyhledávacího pole vyhledejte aplikaci a pak ji vyberte.

  7. Zvolte Vybrat.

Jakmile aplikaci přidružíte k toku uživatele, můžete tok uživatele otestovat simulací registrace nebo přihlašování uživatele k aplikaci z Centra pro správu Microsoft Entra. Uděláte to tak, že použijete kroky v části Otestování toku registrace a přihlášení uživatele.

Klonování nebo stažení ukázkové webové aplikace

Pokud chcete získat ukázkovou aplikaci, můžete ji buď naklonovat z GitHubu, nebo si ji stáhnout jako soubor .zip.

  • Pokud chcete ukázku naklonovat, otevřete příkazový řádek a přejděte do umístění, kam chcete projekt vytvořit, a zadejte následující příkaz:

    git clone https://github.com/Azure-Samples/ms-identity-docs-code-python.git
    
  • Stáhněte soubor .zip. Extrahujte ho do cesty k souboru, kde délka názvu je menší než 260 znaků.

Instalace závislostí projektu

  1. Otevřete okno konzoly a přejděte do adresáře, který obsahuje ukázkovou webovou aplikaci Flask:

    cd flask-web-app
    
  2. Nastavení virtuálního prostředí

    py -m venv .venv
    .venv\scripts\activate
    
  3. Spuštěním následujících příkazů nainstalujte závislosti aplikací:

    python3 -m pip install -r requirements.txt
    

Konfigurace ukázkové webové aplikace

  1. Otevřete soubory projektu v editoru Visual Studio Code nebo editoru, který používáte.

  2. Vytvořte soubor .env v kořenové složce projektu pomocí souboru .env.sample jako vodítko.

  3. V souboru .env zadejte následující proměnné prostředí:

    • CLIENT_ID což je ID aplikace (klienta) aplikace, kterou jste zaregistrovali dříve.
    • CLIENT_SECRET což je hodnota tajného kódu aplikace, kterou jste si zkopírovali dříve.
    • AUTHORITY což je adresa URL, která identifikuje autoritu tokenu. Měla by mít formát https://{subdoménu}.ciamlogin.com/{subdoména}.onmicrosoft.com. Subdoménu nahraďte subdoménou adresáře (tenanta). Pokud je například primární doména vašeho tenanta contoso.onmicrosoft.com, použijte contoso. Pokud nemáte subdoménu tenanta, přečtěte si, jak si přečíst podrobnosti o tenantovi.
  4. Ověřte, že je identifikátor URI přesměrování správně nakonfigurovaný. Identifikátor URI přesměrování, který jste zaregistrovali dříve, by měl odpovídat vaší konfiguraci. Tato ukázka ve výchozím nastavení nastaví cestu identifikátoru URI přesměrování na /getATokenhodnotu . To je nakonfigurované v souboru app_config.py jako REDIRECT_PATH.

Spuštění a testování ukázkové webové aplikace

Spusťte aplikaci, abyste viděli prostředí přihlašování při přehrávání.

Poznámka:

Tato ukázka používá knihovnu třetích stran identity Pythonu. Knihovna není oficiálně udržována Společností Microsoft, ale doporučuje se pro vaše použití. Tato knihovna usnadňuje přidávání ověřování do webové aplikace, protože abstrahuje spoustu podrobností MSAL Pythonu.

  1. V terminálu spusťte následující příkaz:

    python3 -m flask run --debug --host=localhost --port=3000
    

    Můžete použít port podle svého výběru. Mělo by se to podobat portu identifikátoru URI přesměrování, který jste zaregistrovali dříve.

  2. Otevřete prohlížeč a přejděte na http://localhost:3000. Měla by se zobrazit stránka podobná následujícímu snímku obrazovky:

    Snímek obrazovky ukázkové přihlašovací stránky webové aplikace Flask

  3. Po dokončení načítání stránky vyberte odkaz Přihlásit se . Zobrazí se výzva k přihlášení.

  4. Na přihlašovací stránce zadejte svoji e-mailovou adresu, vyberte Další, zadejte heslo a pak vyberte Přihlásit se. Pokud účet nemáte, vyberte Možnost Žádný účet? Vytvořte jeden odkaz, který spustí tok registrace.

  5. Pokud zvolíte možnost registrace, projdete tok přihlašování. Vyplňte svůj e-mail, jednorázové heslo, nové heslo a další podrobnosti o účtu a dokončete celý tok registrace.

  6. Po přihlášení nebo registraci budete přesměrováni zpět na webovou aplikaci. Zobrazí se stránka, která vypadá podobně jako na následujícím snímku obrazovky:

    Snímek obrazovky s ukázkou webové aplikace Flask po úspěšném ověření

  7. Výběrem možnosti Odhlásit se odhlásíte uživatele z webové aplikace nebo vyberete Volání podřízeného rozhraní API a zavoláte koncový bod Microsoft Graphu.

Jak to funguje

Když uživatelé vyberou odkaz Přihlásit se, aplikace zahájí žádost o ověření a přesměruje uživatele na Microsoft Entra Externí ID. Uživatel se pak přihlásí nebo zaregistruje stránku na stránce, která se zobrazí. Po zadání požadovaných přihlašovacích údajů a vyjádření souhlasu s požadovanými obory Microsoft Entra Externí ID uživatele přesměruje zpět do webové aplikace pomocí autorizačního kódu. Webová aplikace pak pomocí tohoto autorizačního kódu získá token z Microsoft Entra Externí ID.

Když uživatelé vyberou odkaz pro odhlášení, aplikace vymaže svoji relaci, přesměruje uživatele na Microsoft Entra Externí ID koncový bod odhlášení a upozorní ho, že se uživatel odhlásil. Uživatel se pak přesměruje zpět do webové aplikace.