Schnellstart: ASP.NET-Web-App, die Microsoft Entra-Benutzer anmeldet
Willkommen! Dies ist wahrscheinlich nicht die Seite, die Sie erwartet haben. Während wir an einer Korrektur arbeiten, sollten Sie über diesen Link zum richtigen Artikel gelangen:
Schnellstart: Hinzufügen von „Mit Microsoft anmelden“ zu einer ASP.NET-Web-App
Wir entschuldigen uns für die Unannehmlichkeiten und bitten Sie um Geduld, während wir an einer Lösung arbeiten.
In dieser Schnellstartanleitung laden Sie ein Codebeispiel herunter und führen es aus. Es zeigt, wie ein*e ASP.NET-Web-App Benutzer*in mit Microsoft Entra-Konten anmelden kann.
Schritt 1: Konfigurieren Ihrer Anwendung im Azure-Portal
Damit das Codebeispiel in diesem Schnellstart funktioniert, müssen Sie https://localhost:44368/ als Umleitungs-URI eingeben.
Ihre Anwendung ist mit diesem Attribut konfiguriert.
Schritt 2: Herunterladen des Projekts
Führen Sie das Projekt mit Visual Studio 2019 aus.
Tipp
Es wird empfohlen, das Archiv in ein Verzeichnis in der Nähe des Stammverzeichnisses Ihres Laufwerks zu extrahieren, um Fehler zu vermeiden, die durch Beschränkungen der Pfadlänge unter Windows verursacht werden.
Schritt 3: Ihre App ist konfiguriert und betriebsbereit
Sie haben das Projekt mit Werten Ihrer App-Eigenschaften konfiguriert.
Extrahieren Sie die ZIP-Datei in einem lokalen Ordner in der Nähe des Stammverzeichnisses. Extrahieren Sie es beispielsweise in C:\Azure-Samples.
Es wird empfohlen, das Archiv in ein Verzeichnis in der Nähe des Stammverzeichnisses Ihres Laufwerks zu extrahieren, um Fehler zu vermeiden, die durch Beschränkungen der Pfadlänge unter Windows verursacht werden.
Öffnen Sie die Projektmappe in Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
Abhängig von der verwendeten Visual Studio-Version müssen Sie möglicherweise mit der rechten Maustaste auf das Projekt >AppModelv2-WebApp-OpenIDConnect-DotNet klicken und NuGet-Pakete wiederherstellen auswählen.
Öffnen Sie die Paket-Manager-Konsole, indem Sie Ansicht>Weitere Fenster>Paket-Manager-Konsole auswählen. Führen Sie dann
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
aus.
Hinweis
Enter_the_Supported_Account_Info_Here
Weitere Informationen
In diesem Abschnitt erhalten Sie eine Übersicht über den erforderlichen Code für die Benutzeranmeldung. Diese Übersicht kann hilfreich sein, um die Funktionsweise des Codes und die Hauptargumente zu verstehen und zu ermitteln, wie Sie einer vorhandenen ASP.NET-Anwendung eine Anmeldung hinzufügen.
Funktionsweise des Beispiels
NuGet-Pakete der OWIN-Middleware
Sie können die Authentifizierungspipeline mit cookiebasierter Authentifizierung über OpenID Connect in ASP.NET mit OWIN-Middlewarepaketen einrichten. Sie können diese Pakete installieren, indem Sie die folgenden Befehle in der Paket-Manager-Konsole in Visual Studio ausführen:
Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb
OWIN-Startklasse
Die OWIN-Middleware verwendet eine Startklasse, die beim Start des Hostingprozesses ausgeführt wird. In dieser Schnellstartanleitung befindet sich die Datei startup.cs im Stammordner. Der folgende Code zeigt die Parameter, die in dieser Schnellstartanleitung verwendet werden:
public void Configuration(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
// Sets the client ID, authority, and redirect URI as obtained from Web.config
ClientId = clientId,
Authority = authority,
RedirectUri = redirectUri,
// PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it's using the home page
PostLogoutRedirectUri = redirectUri,
Scope = OpenIdConnectScope.OpenIdProfile,
// ResponseType is set to request the code id_token, which contains basic information about the signed-in user
ResponseType = OpenIdConnectResponseType.CodeIdToken,
// ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
// To only allow users from a single organization, set ValidateIssuer to true and the 'tenant' setting in Web.> config to the tenant name
// To allow users from only a list of specific organizations, set ValidateIssuer to true and use the ValidIssuers parameter
TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = false // Simplification (see note below)
},
// OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to > the OnAuthenticationFailed method
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = OnAuthenticationFailed
}
}
);
}
Hierbei gilt: BESCHREIBUNG ClientId
Die Anwendungs-ID der im Azure-Portal registrierten Anwendung Authority
STS-Endpunkt (Security Token Service, Sicherheitstokendienst) für den zu authentifizierenden Benutzer. Dies ist in der Regel https://login.microsoftonline.com/{tenant}/v2.0
für die öffentliche Cloud. In dieser URL ist {tenant} der Name Ihres Mandanten, Ihre Mandanten-ID odercommon
für einen Verweis auf den allgemeinen Endpunkt. (Der allgemeine Endpunkt wird für mehrinstanzenfähige Anwendungen verwendet.)RedirectUri
Die URL, an die Benutzer nach der Authentifizierung über Microsoft Identity Platform umgeleitet werden PostLogoutRedirectUri
Die URL, an die Benutzer nach der Abmeldung umgeleitet werden. Scope
Die Liste der angeforderten Bereiche, getrennt durch Leerzeichen ResponseType
Die Anforderung, dass die Antwort von der Authentifizierung einen Autorisierungscode und ein ID-Token enthält TokenValidationParameters
Eine Liste von Parametern für die Tokenüberprüfung. In diesem Fall wird ValidateIssuer
auffalse
festgelegt, um anzugeben, dass Anmeldungen von beliebigen persönlichen Kontotypen oder Geschäfts-, Schul- oder Unikontotypen akzeptiert werden können.Notifications
Eine Liste von Delegaten, die für OpenIdConnect
-Nachrichten ausgeführt werden können
Hinweis
Zur Vereinfachung dieser Schnellstartanleitung wird ValidateIssuer = false
festgelegt. Überprüfen Sie in einer echten Anwendung den Aussteller. Informationen dazu finden Sie in den Beispielen.
Authentifizierungsaufforderung
Sie können den Benutzer zur Anmeldung zwingen, indem Sie eine Authentifizierungsaufforderung in Ihrem Controller anfordern:
public void SignIn()
{
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties{ RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
Tipp
Das Anfordern einer Authentifizierungsaufforderung mithilfe dieser Methode ist optional. Dies wird in der Regel verwendet, wenn Sie möchten, dass auf eine Ansicht sowohl durch authentifizierte als auch durch nicht authentifizierte Benutzer zugegriffen werden kann. Alternativ können Sie Controller mit der im nächsten Abschnitt beschriebenen Methode schützen.
Attribut zum Schützen eines Controllers oder von Controlleraktionen
Sie können einen Controller oder Controlleraktionen mithilfe des [Authorize]
-Attributs schützen. Dieses Attribut beschränkt den Zugriff auf den Controller oder die Aktionen, indem nur authentifizierte Benutzer auf die Aktionen im Controller zugreifen können. Eine Authentifizierungsaufforderung erfolgt dann automatisch, wenn ein nicht authentifizierter Benutzer auf eine Aktion oder einen Controller zugreifen möchte, die bzw. der mit dem Attribut [Authorize]
versehen ist.
Hilfe und Support
Wenn Sie Hilfe benötigen, ein Problem melden möchten oder sich über Ihre Supportoptionen informieren möchten, finden Sie weitere Informationen unter Hilfe und Support für Entwickler.
Nächste Schritte
Probieren Sie das ASP.NET-Tutorial aus, um eine vollständige Schritt-für-Schritt-Anleitung zum Erstellen von Anwendungen und neuen Features zu erhalten, einschließlich einer vollständigen Erläuterung dieses Schnellstarts.