Sdílet prostřednictvím


Nastavení externího přihlášení Google v ASP.NET Core

Valeriy Novytskyy, Rick Anderson a Sharaf Abacery

V tomto kurzu se dozvíte, jak povolit přihlašování uživatelů pomocí účtů Google, a to pomocí ukázkového projektu v ASP.NET Core, který byl vytvořen v rámci použití externích zprostředkovatelů přihlášení Identity v ASP.NET Core. Postupujte podle oficiálních pokynů Googlu v části Přihlášení s Googlem pro web: Nastavení pro vytvoření ID klienta rozhraní Google API.

Vytvoření aplikace v Googlu

  • Přejděte na stránku Google API &Services platformy Google Cloud.
  • Pokud žádný projekt neexistuje, vytvořte nový projekt výběrem tlačítka Vytvořit projekt . Pokud chcete vybrat jiný projekt než existující projekt, který se načte, vyberte tlačítko načteného projektu v levém horním rohu uživatelského rozhraní a pak projekt. Pokud chcete přidat nový projekt, vyberte tlačítko načteného projektu v levém horním rohu uživatelského rozhraní a pak tlačítko Nový projekt .
  • Při vytváření nového projektu:
    • Zadejte název projektu.
    • Volitelně můžete vybrat organizaci pro projekt.
    • Vyberte tlačítko Vytvořit.

Po vytvoření projektu se načte stránka Řídicí panel projektu, kde je možné projekt nakonfigurovat.

Otevřete kartu Přihlašovací údaje a vytvořte klienta OAuth.

Předpokladem pro vytvoření přihlašovacích údajů je konfigurace obrazovky souhlasu OAuth. Pokud není nakonfigurovaný souhlas, zobrazí se výzva ke konfiguraci obrazovky souhlasu.

  • Na bočním panelu vyberte Konfigurovat obrazovku souhlasu nebo vyberte obrazovku souhlasu OAuth .
  • Na obrazovce souhlasu OAuth vyberte Začínáme.
  • Nastavte název aplikace a e-mail podpory uživatelů.
  • Nastavte typ cílové skupiny na Externí.
  • Přidejte kontaktní údaje zadáním kontaktní e-mailové adresy.
  • Odsouhlaste podmínky.
  • Vyberte Vytvořit.

Vytvořte přihlašovací údaje klienta pro aplikaci otevřením položky nabídky na bočním panelu Clients:

  • Vyberte tlačítko Vytvořit klienta .
  • Jako typ aplikace vyberte webovou aplikaci.
  • Zadejte název klienta.
  • Přidejte identifikátor URI autorizovaného přesměrování. Pro místní testování použijte výchozí adresu https://localhost:{PORT}/signin-google, kde {PORT} zástupný symbol je port aplikace.
  • Vyberte tlačítko Vytvořit a vytvořte klienta.
  • Uložte ID klienta a tajný klíč klienta, které se používají později v konfiguraci aplikace ASP.NET.

Poznámka:

Segment identifikátoru URI /signin-google je nastavený jako výchozí zpětné volání zprostředkovatele ověřování Google. Při konfiguraci middlewaru ověřování Google prostřednictvím vlastnosti zděděné od třídy RemoteAuthenticationOptions.CallbackPath je možné změnit výchozí URI zpětného volání GoogleOptions.

Při nasazování aplikace zvolte jednu z následujících možností:

  • Aktualizujte identifikátor URI přesměrování aplikace v Google Console na identifikátor URI přesměrování nasazené aplikace.
  • Vytvořte novou registraci Google API v konzoli Google Console pro produkční aplikaci s produkčním přesměrovacím URI.

Uložení ID klienta Google a tajného klíče

U správce tajných kódů ukládejte citlivá nastavení, například ID klienta Google a hodnoty tajných kódů. Pro tuto ukázku postupujte takto:

  1. Inicializuje projekt pro úložiště tajných kódů podle pokynů v bezpečném úložišti tajných kódů aplikací ve vývoji v ASP.NET Core.

  2. Uložte citlivá nastavení do místního tajného úložiště pomocí tajných klíčů Authentication:Google:ClientId (hodnota: {CLIENT ID} zástupný symbol) a Authentication:Google:ClientSecret (hodnota: {CLIENT SECRET} zástupný symbol):

    dotnet user-secrets set "Authentication:Google:ClientId" "{CLIENT ID}"
    dotnet user-secrets set "Authentication:Google:ClientSecret" "{CLIENT SECRET}"
    

Oddělovač : nefunguje s hierarchickými klíči proměnných prostředí na všech platformách. Například oddělovač : není podporován v Bash. Dvojitá podtržítka __je:

  • Podporováno všemi platformami.
  • Automaticky nahrazeno dvojtečkou, :.

Správa přihlašovacích údajů rozhraní API a použití v konzole rozhraní API

Konfigurace ověřování Google

Přidejte do Program souboru ověřovací službu:

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
    googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});

Přidejte ověřovací službu do Startup.ConfigureServices:

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
    googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});

Přetížení AddAuthentication(IServiceCollection, String) nastavuje vlastnost DefaultScheme. Přetížení AddAuthentication(IServiceCollection, Action<AuthenticationOptions>) umožňuje konfigurovat možnosti ověřování, které lze použít k nastavení výchozích schémat ověřování pro různé účely. Následná volání AddAuthentication přebíjejí předtím nakonfigurované vlastnosti AuthenticationOptions.

Rozšiřující metody AuthenticationBuilder, které registrují obslužnou rutinu pro ověřování, lze volat pouze jednou pro každé ověřovací schéma. Existují přetížení, která umožňují konfigurovat vlastnosti schématu, název schématu a zobrazovaný název.

Přihlášení pomocí Googlu

  • Spusťte aplikaci a vyberte Přihlásit se.
  • V části Přihlásit se pomocí jiné služby vyberte Google.
  • Prohlížeč se přesměruje na Google pro ověřování.
  • Vyberte účet Google a přihlaste se nebo zadejte přihlašovací údaje Google.
  • Pokud se přihlásíte poprvé, zobrazí se výzva, aby aplikace mohla získat přístup k informacím o účtu Google.
  • Prohlížeč se přesměruje zpět do aplikace, kde je možné nastavit e-mail.

Uživatel je teď přihlášený pomocí přihlašovacích údajů Google.

Řešení problémů

Další kroky

  • Tento článek ukazuje ověřování pomocí Googlu. Informace o ověřování u jiných externích poskytovatelů najdete v tématu Použití externích zprostředkovatelů přihlášení v Identity ASP.NET Core.
  • Po nasazení aplikace do Azure resetujte ClientSecret v nastavení Rozhraní API Google.
  • V Azure Portálu nastavte Authentication:Google:ClientId a Authentication:Google:ClientSecret jako nastavení aplikace. Konfigurační systém je nastavený tak, aby načítal klíče z proměnných prostředí.