Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
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.
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) aAuthentication: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ů
- Pokud přihlášení nefunguje bez chyb, přepněte do vývojového režimu, aby se aplikace a registrace Google snadněji ladily.
- Pokud se při počáteční migraci nevytvořila databáze lokality, dojde k následující chybě: Při zpracování požadavku došlo k selhání operace databáze. Výběrem možnosti Použít migrace vytvořte databázi a aktualizujte stránku, abyste mohli pokračovat po chybě.
- Informace o chybě HTTP 500 po úspěšném ověření požadavku poskytovatelem OAuth 2.0, jako je Google, a jak implementovat externí ověřování pro React a další aplikace SPA, najdete v tématu Middleware nespravuje trasu 'signin-google' po úspěšném ověření v Asp.Net Core Web Api External Login Authentication (
dotnet/AspNetCore.Docs
#14169).
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
aAuthentication:Google:ClientSecret
jako nastavení aplikace. Konfigurační systém je nastavený tak, aby načítal klíče z proměnných prostředí.