Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Valeriy Novytskyy und Rick Anderson
In diesem Artikel wird erläutert, wie Sie eine ASP.NET Core-App erstellen, mit der Benutzer sich mit OAuth 2.0 mit Anmeldeinformationen von externen Authentifizierungsanbietern anmelden können.
Die Anbieter Facebook, Twitter, Google und Microsoft werden in den folgenden Abschnitten behandelt und verwenden das in diesem Artikel erstellte Starterprojekt. Andere Anbieter stehen in Paketen von Drittanbietern wie OpenIddict, AspNet.Security.OAuth.Providers und AspNet.Security.OpenId.Providers zur Verfügung.
Benutzer können sich mit ihren vorhandenen Anmeldeinformationen anmelden, ist praktisch für die Benutzer und verschiebt viele der Komplexitäten der Verwaltung des Anmeldevorgangs auf einen Drittanbieter.
Erstellen eines neuen ASP.NET Core-Projekts
- Wählen Sie die Vorlage ASP.NET Core-Web-App aus. Wählen Sie OK aus.
- Wählen Sie in der Eingabe Authentifizierungstyp die Option Einzelne Konten aus.
Anwenden von Migrationen
- Führen Sie die App aus, und klicken Sie auf den Link Registrieren.
- Geben Sie die E-Mail-Adresse und das Kennwort für das neue Konto ein, und wählen Sie dann Registrieren aus.
- Befolgen Sie die Anweisungen zum Anwenden von Migrationen.
Weiterleiten von Anforderungsinformationen mit einem Proxy oder Lastenausgleich
Wenn die App hinter einem Proxyserver oder Lastenausgleich bereitgestellt wird, können einige der ursprünglichen Anforderungsinformationen im Anforderungsheader an die App weitergeleitet werden. Zu diesen Informationen gehören in der Regel das sichere Anforderungsschema (https), den Host und die Client-IP-Adresse. Apps lesen diese Anforderungsheader nicht automatisch, um die ursprünglichen Anforderungsinformationen zu ermitteln und zu verwenden.
Das Schema wird bei der Linkgenerierung verwendet, die den Authentifizierungsflow bei externen Anbietern betrifft. Der Verlust des sicheren Schemas (https) führt dazu, dass die App falsche unsichere Umleitungs-URLs generiert.
Verwenden Sie Middleware für weitergeleitete Header, um der App zur Anforderungsverarbeitung die Informationen der ursprünglichen Anforderung verfügbar zu machen.
Weitere Informationen finden Sie unter Konfigurieren von ASP.NET Core für die Arbeit mit Proxyservern und Lastenausgleichen.
Verwenden des geheimen Managers zum Speichern von Token, die von Anmeldeanbietern zugewiesen wurden
Anmeldeanbieter aus dem Bereich der sozialen Medien weisen während des Registrierungsvorgangs Token des Typs Anwendungs-ID und Anwendungsgeheimnis zu. Die genauen Tokennamen unterscheiden sich je nach Anbieter. Diese Token stellen die Anmeldeinformationen dar, die die App für den Zugriff auf die API des Anbieters verwendet. Die Token stellen Benutzergeheimnisse dar, die mithilfe des geheimen Managers mit Ihrer App-Konfiguration verknüpft werden können. Benutzergeheimnisse sind eine sicherere Alternative zum Speichern von Token in einer Konfigurationsdatei wie z. B. appsettings.json.
Wichtig
Secret Manager ist nur für lokale Entwicklung und Tests vorgesehen. Schützen Sie Staging- und Produktionsgeheimnisse mit dem Azure Key Vault-Konfigurationsanbieter, der auch für lokale Entwicklung und Tests verwendet werden kann, wenn Sie den geheimen Manager lieber nicht lokal verwenden möchten.
Anleitungen zum Speichern der token, die von jedem Anmeldeanbieter zugewiesen werden, finden Sie unter Sichere Speicherung geheimer App-Schlüssel in der Entwicklung in ASP.NET Core.
Konfigurieren von Anmeldeanbietern
Verwenden Sie die folgenden Artikel, um Anmeldeanbieter und die App zu konfigurieren:
- Facebook-Anweisungen
- Twitter-Anweisungen
- Google-Anweisungen
- Microsoft-Anweisungen
- Andere Anbieter-Anweisungen
Mehrere Authentifizierungsanbieter
Wenn für die App mehrere Anbieter erforderlich sind, verketten Sie die Anbietererweiterungsmethoden unter 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
});
Detaillierte Konfigurationsanleitungen zu jedem Anbieter finden Sie in den jeweiligen Artikeln.
Optional ein Kennwort festlegen
Wenn Sie sich bei einem externen Anmeldeanbieter registrieren, wird kein Kennwort bei der App registriert. Dadurch wird das Erstellen und Merken eines Kennworts für die Website gemildert, sie macht Sie aber auch vollständig vom externen Anmeldeanbieter für den Websitezugriff abhängig. Wenn der externe Anmeldeanbieter nicht verfügbar ist, können Sie sich nicht bei der App anmelden.
So erstellen Sie ein Kennwort und melden sich mit Ihrer E-Mail an, die Sie während des Anmeldevorgangs mit externen Anbietern festgelegt haben:
- Wählen Sie in der oberen rechten Ecke den Link "Hello-E-Mail-Alias<>" aus, um zur Ansicht "Verwalten" zu navigieren:
- Wählen Sie Erstellen aus:
- Legen Sie ein gültiges Kennwort fest, und Sie können diese Anmeldeinformationen verwenden, um sich mit Ihrer E-Mail-Adresse anzumelden.