Jednostránkové aplikace
Upozornění
Tento obsah je určený pro starší koncový bod Azure AD verze 1.0. Pro nové projekty použijte Microsoft identity platform.
Jednostránkové aplikace (SPA) jsou obvykle strukturované jako prezentační vrstva JavaScriptu (front-end), která běží v prohlížeči, a back-end webového rozhraní API, který běží na serveru a implementuje obchodní logiku aplikace. Další informace o implicitní autorizaci a pomoc s rozhodováním, jestli je to pro váš scénář aplikace vhodné, najdete v tématu Principy toku implicitního udělení OAuth2 v Azure Active Directory.
V tomto scénáři, když se uživatel přihlásí, javascriptový front-end používá knihovnu Active Directory Authentication Library pro JavaScript (ADAL.JS) a implicitní udělení autorizace k získání tokenu ID (id_token) z Azure AD. Token se uloží do mezipaměti a klient ho připojí k požadavku jako nosný token při volání back-endu webového rozhraní API, který je zabezpečený pomocí middlewaru OWIN.
Diagram
Tok protokolu
- Uživatel přejde do webové aplikace.
- Aplikace vrátí front-end JavaScriptu (prezentační vrstvu) do prohlížeče.
- Uživatel zahájí přihlášení, například kliknutím na odkaz pro přihlášení. Prohlížeč odešle do koncového bodu autorizace Azure AD get s žádostí o token ID. Tento požadavek zahrnuje ID aplikace a adresu URL odpovědi v parametrech dotazu.
- Azure AD ověří adresu URL odpovědi s registrovanou adresou URL odpovědi nakonfigurovanou v Azure Portal.
- Uživatel se přihlásí na přihlašovací stránce.
- Pokud je ověřování úspěšné, Azure AD vytvoří token ID a vrátí ho jako fragment adresy URL (#) na adresu URL odpovědi aplikace. Pro produkční aplikaci by tato adresa URL odpovědi měla být HTTPS. Vrácený token zahrnuje deklarace identity uživatele a Azure AD, které aplikace vyžaduje k ověření tokenu.
- Kód klienta JavaScript spuštěný v prohlížeči extrahuje token z odpovědi, který se použije při zabezpečení volání back-endu webového rozhraní API aplikace.
- Prohlížeč volá back-end webového rozhraní API aplikace s tokenem ID v autorizační hlavičce. Ověřovací služba Azure AD vydá token ID, který lze použít jako nosný token, pokud je prostředek stejný jako ID klienta (v tomto případě to platí, protože webové rozhraní API je vlastní back-end aplikace).
Ukázky kódů
Projděte si ukázky kódu pro scénáře jednostránkových aplikací. Nezapomeňte se často vracet, protože se často přidávají nové vzorky.
Registrace aplikace
- Jeden tenant – Pokud vytváříte aplikaci jenom pro vaši organizaci, musí být zaregistrovaná v adresáři vaší společnosti pomocí Azure Portal.
- Víceklientské – pokud vytváříte aplikaci, kterou můžou používat uživatelé mimo vaši organizaci, musí být zaregistrovaná v adresáři vaší společnosti, ale také v adresáři každé organizace, která bude aplikaci používat. Pokud chcete aplikaci zpřístupnit v jejich adresáři, můžete zahrnout proces registrace pro zákazníky, který jim umožní vyjádřit souhlas s vaší aplikací. Když se zaregistruje k vaší aplikaci, zobrazí se jim dialogové okno s oprávněními, která aplikace vyžaduje, a pak možnost souhlasu. V závislosti na požadovaných oprávněních může být vyžadován souhlas správce v jiné organizaci. Když uživatel nebo správce souhlasí, aplikace se zaregistruje v jeho adresáři.
Po registraci aplikace musí být nakonfigurovaná tak, aby používala protokol implicitního udělení OAuth 2.0. Ve výchozím nastavení je tento protokol pro aplikace zakázaný. Pokud chcete povolit implicitní udělení protokolu OAuth2 pro vaši aplikaci, upravte jeho manifest aplikace z Azure Portal a nastavte hodnotu "oauth2AllowImplicitFlow" na true. Další informace najdete v tématu Manifest aplikace.
Vypršení platnosti tokenu
Použití ADAL.js pomáhá s:
- Aktualizace tokenu s vypršenou platností
- Vyžádání přístupového tokenu pro volání prostředku webového rozhraní API
Po úspěšném ověření Azure AD zapíše soubor cookie do prohlížeče uživatele, aby se vytvořila relace. Všimněte si, že relace existuje mezi uživatelem a Azure AD (ne mezi uživatelem a webovou aplikací). Když vyprší platnost tokenu, ADAL.js tuto relaci použije k tichému získání dalšího tokenu. ADAL.js používá skrytý prvek iFrame k odeslání a přijetí požadavku pomocí protokolu implicitního udělení OAuth. ADAL.js může stejný mechanismus použít také k tichému získání přístupových tokenů pro další prostředky webového rozhraní API, které aplikace volá, pokud tyto prostředky podporují sdílení prostředků mezi zdroji (CORS), jsou zaregistrované v adresáři uživatele a uživatel při přihlašování udělil jakýkoli požadovaný souhlas.
Další kroky
- Další informace o dalších typech a scénářích aplikací
- Informace o základech ověřování Azure AD