Ověřování a autorizace pro Azure Static Web Apps

Azure Static Web Apps poskytuje zjednodušené prostředí ověřování. Ve výchozím nastavení máte přístup k řadě předkonfigurovaných zprostředkovatelů nebo k možnosti registrace vlastního poskytovatele.

  • Každý uživatel se může ověřit u povoleného zprostředkovatele.
  • Po přihlášení uživatelé ve výchozím nastavení patří anonymous authenticated do rolí a .
  • Oprávnění uživatelé získají přístup k omezeným trasám podle pravidel definovaných v souborustaticwebapp.config.json.
  • Uživatelé mají přiřazené vlastní role pomocí integrovaného systému pozvánek.
  • Funkce rozhraní API může uživatelům při přihlášení přiřadit vlastní role prostřednictvím kódu programu.
  • Ve výchozím nastavení jsou povoleni všichni zprostředkovatelé ověřování.
    • Pokud chcete zprostředkovatele ověřování omezit, zablokujte přístup pomocí vlastního pravidla směrování.
  • Mezi předem nakonfigurované zprostředkovatele patří:
    • Azure Active Directory
    • GitHubu
    • Twitter

Témata ověřování a autorizace se výrazně překrývají s koncepty směrování, které jsou podrobně uvedeny v průvodci konfigurací aplikace.

Role

Každý uživatel, který přistupuje ke statické webové aplikaci, patří do jedné nebo více rolí. Existují dvě předdefinované role, do které mohou uživatelé patřit:

  • anonymní: Všichni uživatelé automaticky patří do anonymní role.
  • authenticated: Všichni uživatelé, kteří jsou přihlášeni, patří do ověřené role.

Kromě předdefinované role můžete uživatelům přiřadit vlastní role a odkazovat na ně v souborustaticwebapp.config.json.

Správa rolí

Přidání uživatele do role

Pokud chcete přidat uživatele k roli, vygeneruje se pozvánka, která vám umožní přidružit uživatele ke konkrétním rolím. Role se definují a udržují v souboru staticwebapp.config.json.

Vytvoření pozvánky

Pozvánky jsou specifické pro jednotlivé poskytovatele autorizace, proto při výběru poskytovatelů, které chcete podporovat, zvažte potřeby vaší aplikace. Někteří poskytovatelé zpřístupňuje e-mailovou adresu uživatele, zatímco jiní poskytují pouze uživatelské jméno webu.

Zprostředkovatel autorizace Zpřístupňuje uživatele
Azure Active Directory e-mailovou adresu
GitHubu username
Twitter username
  1. V části Static Web Apps přejděte k prostředku Azure Portal.
  2. V Nastavení klikněte na Správa rolí.
  3. Klikněte na tlačítko Pozvat.
  4. V seznamu možností vyberte zprostředkovatele autorizace.
  5. Do pole Podrobnosti o pozvaným příjemci přidejte buď uživatelské jméno, nebo e-mailovou adresu příjemce.
    • Pro GitHub a Twitter zadejte uživatelské jméno. Pro všechny ostatní zadejte e-mailovou adresu příjemce.
  6. V rozevíracím seznamu Doména vyberte doménu statické lokality.
    • Doména, kterou vyberete, je doména, která se zobrazí v pozvánce. Pokud máte k lokalitě přidruženou vlastní doménu, budete pravděpodobně chtít zvolit vlastní doménu.
  7. Do pole Role přidejte čárkami oddělený seznam názvů rolí.
  8. Zadejte maximální počet hodin, po které má pozvánka zůstat platná.
    • Maximální možný limit je 168 hodin, což je 7 dní.
  9. Klikněte na tlačítko Generate (Vygenerovat).
  10. Zkopírujte odkaz z pole Pozvat odkaz.
  11. E-mailem pošlete odkaz na pozvánku osobě, které udělujete přístup k vaší aplikaci.

Když uživatel klikne na odkaz v pozvánce, zobrazí se výzva k přihlášení pomocí odpovídajícího účtu. Po úspěšném přihlášení je uživatel přidružený k vybraným rolím.

Upozornění

Ujistěte se, že pravidla směrování nejsou v konfliktu s vybranými zprostředkovateli ověřování. Blokování poskytovatele pravidlem trasy by uživatelům zabránilo v přijetí pozvánek.

Aktualizace přiřazení rolí

  1. V části Static Web Apps přejděte k prostředku Azure Portal.
  2. V Nastavení klikněte na Správa rolí.
  3. Klikněte na uživatele v seznamu.
  4. Upravte seznam rolí v poli Role.
  5. Klikněte na tlačítko Aktualizovat.

Odebrání uživatele

  1. V části Static Web Apps přejděte k prostředku Azure Portal.
  2. V Nastavení klikněte na Správa rolí.
  3. Vyhledejte uživatele v seznamu.
  4. Zaškrtněte políčko na řádku uživatele.
  5. Klikněte na tlačítko Odstranit.

Při odebírání uživatele mějte na paměti následující položky:

  1. Odebrání uživatele zruší platnost svých oprávnění.
  2. Šíření po celém světě může trvat několik minut.
  3. Pokud se uživatel přidá zpět do aplikace, změní userId se.

Odebrat osobní identifikační údaje

Když udělujete souhlas aplikaci jako koncový uživatel, aplikace bude mít přístup k vaší e-mailové adrese nebo uživatelskému jménu v závislosti na zprostředkovateli identity. Po zadání těchto informací se vlastník aplikace rozhodne, jak spravovat osobní identifikační údaje.

Koncoví uživatelé potřebují požádat správce jednotlivých webových aplikací, aby tyto informace odvolali ze svých systémů.

Pokud chcete z platformy Azure static Web Apps odebrat osobní identifikační údaje a zabránit tomu, aby tato informace mohla v budoucích požadavcích poskytovat tyto informace, odešlete žádost pomocí adresy URL:

https://identity.azurestaticapps.net/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

Pokud chcete zabránit tomu, aby platforma poskytovala tyto informace v budoucích požadavcích na jednotlivé aplikace, odešlete žádost na následující adresu URL:

https://<WEB_APP_DOMAIN_NAME>/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

všimněte si, že pokud používáte Azure Active Directory, použijte aad jako hodnotu pro <AUTHENTICATION_PROVIDER_NAME> zástupný text.

Systémová složka

Statický Web Apps Azure používá /.auth systémovou složku k poskytnutí přístupu k rozhraním API, která se vztahují k autorizaci. Místo vystavení jakékoli trasy ve /.auth složce přímo koncovým uživatelům zvažte vytvoření pravidel směrování pro vytváření popisných adres URL.

Přihlásit

Pomocí následující tabulky Najděte trasu specifickou pro poskytovatele.

Zprostředkovatel autorizace Trasa pro přihlášení
Azure Active Directory /.auth/login/aad
GitHubu /.auth/login/github
Twitter /.auth/login/twitter

například pro přihlášení pomocí GitHub můžete zahrnout odkaz podobný následujícímu fragmentu kódu:

<a href="/.auth/login/github">Login</a>

Pokud se rozhodnete podporovat více než jednoho poskytovatele, musíte pro každý z nich vystavit odkaz na konkrétního poskytovatele.

Pravidlo směrování můžete použít k mapování výchozího poskytovatele na přívětivou trasu, jako je /Login.

{
  "route": "/login",
  "redirect": "/.auth/login/github"
}

Přesměrování po přihlášení

Pokud chcete, aby se uživatel po přihlášení vrátil na konkrétní stránku, zadejte v post_login_redirect_uri parametru řetězce dotazu úplnou adresu URL.

Příklad:

<a href="/.auth/login/github?post_login_redirect_uri=https://zealous-water.azurestaticapps.net/success">Login</a>

Odhlásit

/.auth/logoutSměrování zaznamená uživatele z webu. Můžete přidat odkaz na navigaci na webu, aby se uživatel mohl odhlásit, jak je znázorněno v následujícím příkladu.

<a href="/.auth/logout">Log out</a>

Pravidlo směrování můžete použít k mapování popisné trasy, jako je /logout.

{
  "route": "/logout",
  "redirect": "/.auth/logout"
}

Přesměrování po odhlášení

Pokud chcete, aby se uživatel po odhlášení vrátil na konkrétní stránku, zadejte adresu URL v post_logout_redirect_uri parametru řetězce dotazu.

Blokování zprostředkovatele autorizace

Můžete chtít, aby aplikace omezila použití zprostředkovatele autorizace. Například vaše aplikace může chtít standardizovat pouze poskytovatele, kteří zveřejňují e-mailové adresy.

Pokud chcete poskytovatele zablokovat, můžete vytvořit pravidla směrování , která vrátí 404 pro požadavky na trasu určenou pro blokovaného zprostředkovatele. Chcete-li například omezit Twitter jako poskytovatele, přidejte následující pravidlo směrování.

{
  "route": "/.auth/login/twitter",
  "statusCode": 404
}

Omezení

Obecná omezení a omezení najdete v článku věnovaném kvótám .

Další kroky

1 čeká na externí certifikaci.