Sdílet prostřednictvím


Ověřování externího zprostředkovatele v ASP.NET Core Identity

Autoři: Valerij Novytskyj a Rick Anderson

Tento článek vysvětluje, jak vytvořit aplikaci ASP.NET Core, která uživatelům umožňuje přihlásit se pomocí OAuth 2.0 s přihlašovacími údaji od externích zprostředkovatelů ověřování.

V následujících sekcích jsou popsáni zprostředkovatelé Facebook, Twitter, Google a Microsoft a využívá se úvodní projekt vytvořený v tomto článku. Další poskytovatelé jsou k dispozici v balíčcích třetích stran, jako OpenIddict, AspNet.Security.OAuth.Providers a AspNet.Security.OpenId.Providers.

Umožňuje uživatelům přihlásit se pomocí svých stávajících přihlašovacích údajů, což je vhodné pro uživatele a přesouvá mnoho složitostí správy procesu přihlašování na třetí stranu.

Vytvoření nového projektu ASP.NET Core

  • Vyberte šablonu webové aplikace ASP.NET Core. Vyberte OK.
  • V poli Typ ověřování vyberte Jednotlivé účty.

Provedení migrací

  • Spusťte aplikaci a vyberte odkaz Zaregistrovat.
  • Zadejte e-mail a heslo nového účtu a pak vyberte Zaregistrovat.
  • Řiďte se pokyny pro aplikaci migrací.

Předávání informací o požadavcích pomocí proxy serveru nebo nástroje pro vyrovnávání zatížení

Pokud je aplikace nasazená za proxy serverem nebo nástrojem pro vyrovnávání zatížení, mohou se některé z původních informací o požadavku předávat do aplikace v hlavičce požadavku. Tyto informace obvykle zahrnují zabezpečené schéma požadavků (https), hostitele a IP adresu klienta. Aplikace tyto hlavičky požadavků nenačítají automaticky, aby zjistily a využily informace o původním požadavku.

Schéma se používá při generování odkazů, které ovlivňuje tok ověřování s externími zprostředkovateli. Ztráta zabezpečeného schématu (https) způsobí, že aplikace generuje nesprávné a nezabezpečené adresy URL pro přesměrování.

Pomocí middlewaru Forwarded Headers zpřístupníte aplikaci informace o původním požadavku pro zpracování požadavků.

Další informace najdete v tématu Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení.

Ukládání tokenů přiřazených zprostředkovateli přihlášení pomocí Správce tajných kódů

Zprostředkovatelé přihlašovacích údajů pro sociální sítě přiřazují během procesu registrace tokeny ID aplikace a tajný kód aplikace. Přesné názvy tokenů se liší podle zprostředkovatele. Tyto tokeny představují přihlašovací údaje, které aplikace používá pro přístup k rozhraní API poskytovatele. Tokeny představují tajné kódy uživatelů , které je možné propojit s konfigurací vaší aplikace pomocí Secret Manageru. Tajné kódy uživatelů jsou bezpečnější alternativou k ukládání tokenů do konfiguračního souboru, jako je appsettings.json.

Důležité

Správce tajných kódů je určen pouze pro místní vývoj a testování. Chraňte pracovní a produkční tajné kódy pomocí zprostředkovatele konfigurace služby Azure Key Vault, který se dá použít také pro místní vývoj a testování, pokud nechcete používat Secret Manager místně.

Pokyny k ukládání tokenů přiřazených jednotlivými zprostředkovateli přihlášení najdete v tématu Bezpečné úložiště tajných kódů aplikací při vývoji v ASP.NET Core.

Konfigurace zprostředkovatelů přihlášení

Ke konfiguraci zprostředkovatelů přihlášení a aplikace použijte následující články:

Několik zprostředkovatelů ověřování

Pokud aplikace vyžaduje více poskytovatelů, zřetězte metody rozšíření provideru na AddAuthentication:

builder.Services.AddAuthentication()
    .AddGoogle(options =>
    {
        // Google configuration options
    })
    .AddFacebook(options =>
    {
        // Facebook configuration options
    })
    .AddMicrosoftAccount(options =>
    {
        // Microsoft Account configuration options
    })
    .AddTwitter(options =>
    {
        // Twitter configuration options
    });

Podrobné pokyny ke konfiguraci jednotlivých poskytovatelů najdete v příslušných článcích.

Volitelně můžete nastavit heslo.

Když se zaregistrujete u externího zprostředkovatele přihlášení, nemáte v aplikaci zaregistrované heslo. Tím se zbavíte nutnosti vytvářet a pamatovat si heslo pro stránku, ale zároveň vás to činí zcela závislými na externím poskytovateli přihlášení pro přístup ke stránce. Pokud externí zprostředkovatel přihlášení není dostupný, nebudete se moct přihlásit k aplikaci.

Vytvoření hesla a přihlášení pomocí e-mailu, který jste nastavili během procesu přihlašování s externími poskytovateli:

  • Výběrem odkazu Hello < alias e-mailu> v pravém horním rohu se přesuňte do zobrazení Spravovat.

Zobrazení správy webové aplikace

  • Vyberte Vytvořit:

Stránka pro nastavení hesla

  • Nastavte platné heslo a pomocí těchto přihlašovacích údajů se můžete přihlásit pomocí své e-mailové adresy.

Další informace