Tutorial: Hinzufügen der Anmeldung bei Microsoft zu einer ASP.NET-Web-App

In diesem Tutorial erstellen Sie eine ASP.NET MVC-Web-App, in der Benutzer über die OWIN-Middleware (Open Web Interface for .NET) und die Microsoft Identity Platform angemeldet werden.

Am Ende dieser Anleitung kann Ihre Anwendung Anmeldungen von persönlichen Konten (etwa outlook.com und live.com) akzeptieren. Darüber hinaus können sich Geschäfts-, Schul- und Unikonten von Unternehmen oder Organisationen, die in Microsoft Identity Platform integriert wurden, bei Ihrer App anmelden.

Dieses Tutorial umfasst folgende Punkte:

  • Erstellen eines Projekts namens ASP.NET-Webanwendung in Visual Studio
  • Hinzufügen der offenen Webschnittstelle für die .NET (OWIN)-Middlewarekomponenten
  • Hinzufügen von Code zum Unterstützen der Benutzeranmeldung und -abmeldung
  • Registrieren der App im Azure-Portal
  • Testen der App

Voraussetzungen

Funktionsweise der über diesen Leitfaden generierten Beispiel-App

Shows how the sample app generated by this tutorial works

Die erstellte Beispielanwendung basiert auf dem Szenario, in dem Sie den Browser für den Zugriff auf eine ASP.NET-Website verwenden und aufgefordert werden, sich über die Schaltfläche „Anmelden“ zu authentifizieren. In diesem Szenario wird ein Großteil der Arbeit zum Rendern der Webseite auf dem Server erledigt.

Bibliotheken

In dieser Anleitung werden die folgenden Bibliotheken verwendet:

Bibliothek BESCHREIBUNG
Microsoft.Owin.Security.OpenIdConnect Middleware, die einer Anwendung das Verwenden von OpenIDConnect für die Authentifizierung ermöglicht
Microsoft.Owin.Security.Cookies Middleware, die einer Anwendung das Beibehalten der Benutzersitzung mithilfe von Cookies ermöglicht
Microsoft.Owin.Host.SystemWeb Middleware, die das Ausführen von OWIN-basierten Anwendungen in Internetinformationsdiensten (Internet Information Services, IIS) unter Verwendung der ASP.NET-Anforderungspipeline ermöglicht

Einrichten des Projekts

In diesem Abschnitt werden das Installieren und Konfigurieren der Authentifizierungspipeline über OWIN-Middleware für ein ASP.NET-Projekt mithilfe von OpenID Connect beschrieben.

Möchten Sie stattdessen das Visual Studio-Projekt dieses Beispiels herunterladen? Laden Sie ein Projekt herunter, und fahren Sie mit dem Schritt Registrieren Ihrer Anwendung fort, um das Codebeispiel vor der Ausführung zu konfigurieren.

Erstellen des ASP.NET-Projekts

  1. In Visual Studio: Klicken Sie auf Datei>Neu>Projekt.
  2. Wählen Sie unter Visual C#\Web die Option ASP.NET-Webanwendung (.NET Framework) aus.
  3. Geben Sie der Anwendung einen Namen, und klicken Sie auf OK.
  4. Wählen Sie Leer aus, und aktivieren Sie dann das Kontrollkästchen, um MVC-Verweise hinzuzufügen.

Hinzufügen von Authentifizierungskomponenten

  1. In Visual Studio: Navigieren Sie zu Extras>NuGet-Paket-Manager>Paket-Manager-Konsole.

  2. Fügen Sie NuGet-Pakete für OWIN-Middleware hinzu, indem Sie im Fenster „Paket-Manager-Konsole“ Folgendes eingeben:

    Install-Package Microsoft.Owin.Security.OpenIdConnect
    Install-Package Microsoft.Owin.Security.Cookies
    Install-Package Microsoft.Owin.Host.SystemWeb
    

Informationen zu diesen Bibliotheken

Diese Bibliotheken ermöglichen einmaliges Anmelden (Single Sign-On, SSO) mithilfe von OpenID Connect über die cookiebasierte Authentifizierung. Nachdem die Authentifizierung abgeschlossen ist und das Token, das den Benutzer darstellt, an Ihre Anwendung gesendet wurde, erstellt die OWIN-Middleware ein Sitzungscookie. Der Browser verwendet dann dieses Cookie bei nachfolgenden Anforderungen, damit der Benutzer sein Kennwort nicht erneut eingeben muss. Außerdem ist keine weitere Überprüfung erforderlich.

Konfigurieren der Authentifizierungspipeline

Die folgenden Schritte dienen zum Erstellen der Startup-Klasse der OWIN-Middleware, um die OpenID Connect-Authentifizierung zu konfigurieren. Diese Klasse wird automatisch ausgeführt, wenn der IIS-Prozess gestartet wird.

Tipp

Wenn das Projekt nicht die Datei Startup.cs im Stammordner enthält:

  1. Klicken Sie mit der rechten Maustaste auf den Stammordner des Projekts, und wählen sie dann Hinzufügen>Neues Element>OWIN-Startup-Klasse aus.
  2. Nennen Sie es Startup.cs.

Stellen Sie sicher, dass die ausgewählte Klasse eine OWIN-Klasse des Typs „Startup“ und keine C#-Standardklasse ist. Überprüfen Sie dazu, ob [assembly: OwinStartup(typeof({NameSpace}.Startup))] oberhalb des Namespace angezeigt wird.

  1. Fügen Sie OWIN- und Microsoft.IdentityModel-Verweise zu „Startup.cs“ hinzu:

    using Microsoft.Owin;
    using Owin;
    using Microsoft.IdentityModel.Protocols.OpenIdConnect;
    using Microsoft.IdentityModel.Tokens;
    using Microsoft.Owin.Security;
    using Microsoft.Owin.Security.Cookies;
    using Microsoft.Owin.Security.OpenIdConnect;
    using Microsoft.Owin.Security.Notifications;
    
  2. Ersetzen Sie die Startup-Klasse durch den folgenden Code:

    public class Startup
    {
        // The Client ID is used by the application to uniquely identify itself to Microsoft identity platform.
        string clientId = System.Configuration.ConfigurationManager.AppSettings["ClientId"];
    
        // RedirectUri is the URL where the user will be redirected to after they sign in.
        string redirectUri = System.Configuration.ConfigurationManager.AppSettings["RedirectUri"];
    
        // Tenant is the tenant ID (e.g. contoso.onmicrosoft.com, or 'common' for multi-tenant)
        static string tenant = System.Configuration.ConfigurationManager.AppSettings["Tenant"];
    
        // Authority is the URL for authority, composed of the Microsoft identity platform and the tenant name (e.g. https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0)
        string authority = String.Format(System.Globalization.CultureInfo.InvariantCulture, System.Configuration.ConfigurationManager.AppSettings["Authority"], tenant);
    
        /// <summary>
        /// Configure OWIN to use OpenIdConnect
        /// </summary>
        /// <param name="app"></param>
        public void Configuration(IAppBuilder app)
        {
            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
    
            app.UseCookieAuthentication(new CookieAuthenticationOptions());
            app.UseOpenIdConnectAuthentication(
                new OpenIdConnectAuthenticationOptions
                {
                    // Sets the ClientId, authority, RedirectUri 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 is 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 organizations, set ValidateIssuer to true and '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 ValidIssuers parameter
                    TokenValidationParameters = new TokenValidationParameters()
                    {
                        ValidateIssuer = false // This is a simplification
                    },
                    // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to OnAuthenticationFailed method
                    Notifications = new OpenIdConnectAuthenticationNotifications
                    {
                        AuthenticationFailed = OnAuthenticationFailed
                    }
                }
            );
        }
    
        /// <summary>
        /// Handle failed authentication requests by redirecting the user to the home page with an error in the query string
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private Task OnAuthenticationFailed(AuthenticationFailedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> context)
        {
            context.HandleResponse();
            context.Response.Redirect("/?errormessage=" + context.Exception.Message);
            return Task.FromResult(0);
        }
    }
    

Hinweis

Zur Vereinfachung dieser Schnellstartanleitung wird ValidateIssuer = false festgelegt. In echten Anwendungen müssen Sie den Aussteller überprüfen. Informationen dazu finden Sie in den Beispielen.

Weitere Informationen

Die Parameter, die Sie in OpenIDConnectAuthenticationOptions bereitstellen, dienen als Koordinaten für die Anwendung zur Kommunikation mit Microsoft Identity Platform. Da die OpenID Connect-Middleware im Hintergrund Cookies verwendet, müssen Sie außerdem die Cookieauthentifizierung einrichten, wie im Code oben gezeigt. Der ValidateIssuer-Wert weist OpenIdConnect an, den Zugriff nicht auf eine bestimmte Organisation zu beschränken.

Hinzufügen eines Controllers zum Verarbeiten von An- und Abmeldeanforderungen

Führen Sie die folgenden Schritte zum Erstellen eines neuen Controllers aus, um An- und Abmeldeverfahren verfügbar zu machen.

  1. Klicken Sie mit der rechten Maustaste auf den Ordner Controller, und wählen Sie Hinzufügen>Controller aus.

  2. Wählen Sie MVC (.NET-Version)-Controller – Leer aus.

  3. Wählen Sie Hinzufügen.

  4. Geben Sie ihm den Namen HomeController, und wählen Sie dann Hinzufügen aus.

  5. Fügen Sie der Klasse OWIN-Verweise hinzu:

    using Microsoft.Owin.Security;
    using Microsoft.Owin.Security.Cookies;
    using Microsoft.Owin.Security.OpenIdConnect;
    
  6. Fügen Sie die folgenden beiden Methoden hinzu, um die An- und Abmeldung bei Ihrem Controller zu verarbeiten, indem Sie eine Authentifizierungsaufforderung auslösen:

    /// <summary>
    /// Send an OpenID Connect sign-in request.
    /// Alternatively, you can just decorate the SignIn method with the [Authorize] attribute
    /// </summary>
    public void SignIn()
    {
        if (!Request.IsAuthenticated)
        {
            HttpContext.GetOwinContext().Authentication.Challenge(
                new AuthenticationProperties{ RedirectUri = "/" },
                OpenIdConnectAuthenticationDefaults.AuthenticationType);
        }
    }
    
    /// <summary>
    /// Send an OpenID Connect sign-out request.
    /// </summary>
    public void SignOut()
    {
        HttpContext.GetOwinContext().Authentication.SignOut(
                OpenIdConnectAuthenticationDefaults.AuthenticationType,
                CookieAuthenticationDefaults.AuthenticationType);
    }
    

Erstellen der App-Startseite für die Benutzeranmeldung

Erstellen Sie in Visual Studio eine neue Ansicht, um die Schaltfläche „Anmelden“ hinzuzufügen und Benutzerinformationen nach der Authentifizierung anzuzeigen:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner Ansichten\Start, und wählen Sie Ansicht hinzufügen aus.

  2. Nennen Sie die neue Ansicht Index.

  3. Fügen Sie der Datei den folgenden HTML-Code hinzu, der die Schaltfläche „Anmelden“ enthält:

    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Sign in with Microsoft Guide</title>
    </head>
    <body>
    @if (!Request.IsAuthenticated)
    {
        <!-- If the user is not authenticated, display the sign-in button -->
        <a href="@Url.Action("SignIn", "Home")" style="text-decoration: none;">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="300px" height="50px" viewBox="0 0 3278 522" class="SignInButton">
            <style type="text/css">.fil0:hover {fill: #4B4B4B;} .fnt0 {font-size: 260px;font-family: 'Segoe UI Semibold', 'Segoe UI'; text-decoration: none;}</style>
            <rect class="fil0" x="2" y="2" width="3174" height="517" fill="black" />
            <rect x="150" y="129" width="122" height="122" fill="#F35325" />
            <rect x="284" y="129" width="122" height="122" fill="#81BC06" />
            <rect x="150" y="263" width="122" height="122" fill="#05A6F0" />
            <rect x="284" y="263" width="122" height="122" fill="#FFBA08" />
            <text x="470" y="357" fill="white" class="fnt0">Sign in with Microsoft</text>
            </svg>
        </a>
    }
    else
    {
        <span><br/>Hello @System.Security.Claims.ClaimsPrincipal.Current.FindFirst("name").Value;</span>
        <br /><br />
        @Html.ActionLink("See Your Claims", "Index", "Claims")
        <br /><br />
        @Html.ActionLink("Sign out", "SignOut", "Home")
    }
    @if (!string.IsNullOrWhiteSpace(Request.QueryString["errormessage"]))
    {
        <div style="background-color:red;color:white;font-weight: bold;">Error: @Request.QueryString["errormessage"]</div>
    }
    </body>
    </html>
    

Weitere Informationen

Auf dieser Seite wird eine Anmeldeschaltfläche im SVG-Format mit schwarzem Hintergrund hinzugefügt:
Sign in with Microsoft button
Weitere Anmeldeschaltflächen finden Sie in den Brandingrichtlinien.

Hinzufügen eines Controllers zum Anzeigen von Ansprüchen des Benutzers

Dieser Controller veranschaulicht die Verwendungen des [Authorize]-Attributs, um einen Controller zu schützen. Dieses Attribut beschränkt den Zugriff auf den Controller, indem nur authentifizierte Benutzer zugelassen werden. Der folgende Code verwendet das Attribut zum Anzeigen von Benutzeransprüchen, die als Teil der Anmeldung abgerufen wurden:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner Controller, und wählen Sie dann Hinzufügen>Controller aus.

  2. Wählen Sie MVC {Version}-Controller – Leer aus.

  3. Wählen Sie Hinzufügen.

  4. Nennen Sie diesen Controller ClaimsController.

  5. Ersetzen Sie den Code Ihrer Controllerklasse durch den folgenden Code. Dadurch wird der Klasse das Attribut [Authorize] hinzugefügt:

    [Authorize]
    public class ClaimsController : Controller
    {
        /// <summary>
        /// Add user's claims to viewbag
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            var userClaims = User.Identity as System.Security.Claims.ClaimsIdentity;
    
            //You get the user's first and last name below:
            ViewBag.Name = userClaims?.FindFirst("name")?.Value;
    
            // The 'preferred_username' claim can be used for showing the username
            ViewBag.Username = userClaims?.FindFirst("preferred_username")?.Value;
    
            // The subject/ NameIdentifier claim can be used to uniquely identify the user across the web
            ViewBag.Subject = userClaims?.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier)?.Value;
    
            // TenantId is the unique Tenant Id - which represents an organization in Azure AD
            ViewBag.TenantId = userClaims?.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid")?.Value;
    
            return View();
        }
    }
    

Weitere Informationen

Aufgrund der Verwendung des [Authorize]-Attributs können alle Methoden dieses Controllers nur ausgeführt werden, wenn der Benutzer authentifiziert ist. Wenn der Benutzer nicht authentifiziert ist und versucht, auf den Controller zuzugreifen, löst OWIN eine Authentifizierungsaufforderung aus und zwingt den Benutzer, sich zu authentifizieren. Der vorherige Code sucht in der Liste der Ansprüche nach bestimmten Benutzerattributen, die im ID-Token des Benutzers enthalten sind. Diese Attribute enthalten den vollständigen Namen des Benutzers und den Benutzername sowie die GUID des Antragstellers. Sie enthalten auch die Mandanten-ID, die die ID der Organisation des Benutzers darstellt.

Erstellen einer Ansicht zum Anzeigen der Ansprüche des Benutzers

Erstellen Sie in Visual Studio eine neue Ansicht zum Anzeigen der Ansprüche des Benutzers auf einer Webseite:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner Ansichten\Ansprüche, und wählen Sie Ansicht hinzufügen aus.

  2. Nennen Sie die neue Ansicht Index.

  3. Fügen Sie der Datei den folgenden HTML-Code hinzu:

    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Sign in with Microsoft Sample</title>
        <link href="@Url.Content("~/Content/bootstrap.min.css")" rel="stylesheet" type="text/css" />
    </head>
    <body style="padding:50px">
        <h3>Main Claims:</h3>
        <table class="table table-striped table-bordered table-hover">
            <tr><td>Name</td><td>@ViewBag.Name</td></tr>
            <tr><td>Username</td><td>@ViewBag.Username</td></tr>
            <tr><td>Subject</td><td>@ViewBag.Subject</td></tr>
            <tr><td>TenantId</td><td>@ViewBag.TenantId</td></tr>
        </table>
        <br />
        <h3>All Claims:</h3>
        <table class="table table-striped table-bordered table-hover table-condensed">
        @foreach (var claim in System.Security.Claims.ClaimsPrincipal.Current.Claims)
        {
            <tr><td>@claim.Type</td><td>@claim.Value</td></tr>
        }
        </table>
        <br />
        <br />
        @Html.ActionLink("Sign out", "SignOut", "Home", null, new { @class = "btn btn-primary" })
    </body>
    </html>
    

Anwendung registrieren

Wenn Sie Ihre Anwendung registrieren und die Anwendungsregistrierungsinformationen Ihrer Projektmappe hinzufügen möchten, haben Sie zwei Möglichkeiten:

Option 1: Expressmodi

Führen Sie zur schnellen Registrierung Ihrer Anwendung die folgenden Schritte aus:

  1. Navigieren Sie zur Umgebung des Schnellstarts Azure-Portal – App-Registrierungen.
  2. Geben Sie einen Namen für Ihre Anwendung ein, und wählen Sie Registrieren aus.
  3. Befolgen Sie die Anweisungen, um Ihre neue Anwendung mit nur einem Klick herunterzuladen und automatisch zu konfigurieren.

Option 2: Erweiterter Modus

Führen Sie die folgenden Schritte aus, um Ihre Anwendung zu registrieren und Ihrer Projektmappe manuell die Registrierungsinformationen Ihrer App hinzuzufügen:

  1. Öffnen Sie Visual Studio, und führen Sie die folgenden Schritte aus:

    1. Wählen Sie im Projektmappen-Explorer das Projekt aus, und zeigen Sie das Eigenschaftenfenster an. (Drücken Sie F4, wenn es nicht angezeigt wird.)
    2. Ändern Sie „SSL aktiviert“ in True.
    3. Klicken Sie mit der rechten Maustaste in Visual Studio auf das Projekt, und wählen Sie Eigenschaften und dann die Registerkarte Web aus. Ändern Sie im Abschnitt Server die Einstellung Projekt-URL in die SSL-URL.
    4. Kopieren Sie die SSL-URL. Im nächsten Schritt fügen Sie diese URL im Registrierungsportal zur Liste der Umleitungs-URIs hinzu.

      Project properties
  2. Melden Sie sich beim Azure-Portal an.

  3. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie im Menü am oberen Rand den Filter Verzeichnis + Abonnement , um den Mandanten auszuwählen, in dem Sie die Anwendung registrieren möchten.

  4. Suchen Sie nach Azure Active Directory, und wählen Sie diese Option aus.

  5. Wählen Sie unter Verwalten Folgendes aus: App-Registrierungen>Neue Registrierung.

  6. Geben Sie unter Name einen Namen für Ihre Anwendung ein (beispielsweise ASPNET-Tutorial). Benutzern Ihrer App wird wahrscheinlich dieser Namen angezeigt. Sie können ihn später ändern.

  7. Fügen Sie die in Schritt 1 aus Visual Studio kopierte SSL-URL (z. B. https://localhost:44368/) unter Umleitungs-URI hinzu.

  8. Wählen Sie Registrieren.

  9. Wählen Sie unter Verwalten die Option Authentifizierung aus.

  10. Wählen Sie im Abschnitt Implizite Genehmigung und Hybridflows die Option ID-Token und dann Speichern aus.

  11. Fügen Sie im Stammordner der Datei „web.config“ im Abschnitt configuration\appSettings Folgendes hinzu:

    <add key="ClientId" value="Enter_the_Application_Id_here" />
    <add key="redirectUri" value="Enter_the_Redirect_URL_here" />
    <add key="Tenant" value="common" />
    <add key="Authority" value="https://login.microsoftonline.com/{0}/v2.0" />
    
  12. Ersetzen Sie ClientId durch die Anwendungs-ID, die Sie gerade registriert haben.

  13. Ersetzen Sie redirectUri durch die SSL-URL Ihres Projekts.

Testen Ihres Codes

Um Ihre Anwendung in Visual Studio zu testen, drücken Sie F5, um das Projekt auszuführen. Der Browser wird geöffnet und leitet Sie zu „http://localhost:{Port}“ weiter, wo die Schaltfläche Bei Microsoft anmelden angezeigt wird. Wählen Sie die Schaltfläche aus, um den Anmeldeprozess zu starten.

Wenn Sie Ihren Test ausführen möchten, verwenden Sie für die Anmeldung ein Azure AD-Konto (Geschäfts-, Schul- oder Unikonto) oder ein persönliches Microsoft-Konto (live.com oder outlook.com).

Sign in with Microsoft button shown on browser logon page in browser

Sign in to your Microsoft account

In Microsoft Identity Platform integrierte Anwendungen folgen einem Autorisierungsmodell, mit dem Benutzer und Administratoren den Zugriff auf Daten steuern können. Nachdem sich ein Benutzer mit Microsoft Identity Platform für den Zugriff auf diese Anwendung authentifiziert hat, wird er aufgefordert, seine Zustimmung für die von der Anwendung angeforderten Berechtigungen zu erteilen („Ihr grundlegendes Profil anzeigen“ und „Zugriff auf Daten beibehalten, für die Sie Zugriff erteilt haben“). Wenn der Benutzer diese Berechtigungen akzeptiert hat, wird er zu den Anwendungsergebnissen weitergeleitet. In folgenden Fällen wird dem Benutzer jedoch unter Umständen stattdessen die Seite Need admin consent (Administratoreinwilligung erforderlich) angezeigt:

  • Der Anwendungsentwickler fügt zusätzliche Berechtigungen hinzu, für die die Administratoreinwilligung erforderlich ist.
  • Der Mandant wurde (unter Unternehmensanwendungen > Benutzereinstellungen) so konfiguriert, dass Benutzer Apps den Zugriff auf Unternehmensdaten in ihrem Namen nicht gestatten können.

Weitere Informationen finden Sie unter Berechtigungen und Zustimmung im Microsoft Identity Platform-Endpunkt.

Anzeigen von Anwendungsergebnissen

Nachdem Sie sich angemeldet haben, wird der Benutzer zur Startseite Ihrer Website umgeleitet. Die Startseite ist die HTTPS-URL, die im Microsoft-Anwendungsregistrierungsportal in Ihre Anwendungsregistrierungsinformationen eingegeben wurde. Auf der Startseite werden die Willkommensnachricht „Hallo <Benutzer>“, ein Link zum Abmelden und ein Link zum Anzeigen der Benutzeransprüche angezeigt. Über den Link für die Benutzeransprüche gelangen Sie zum zuvor erstellten Claims-Controller.

Anzeigen der Ansprüche des Benutzers

Um die Benutzeransprüche anzuzeigen, wählen Sie den Link zum Navigieren zur Controlleransicht aus. Diese ist nur für authentifizierte Benutzer verfügbar.

Anzeigen der Anspruchsergebnisse

Nachdem Sie die Controlleransicht aufgerufen haben, sollten Sie eine Tabelle mit den grundlegenden Eigenschaften des Benutzers sehen:

Eigenschaft Wert BESCHREIBUNG
Name Vollständiger Name des Benutzers Dies ist der Vorname und der Nachname des Benutzers.
Benutzername Benutzer@Domäne.com Der zur Identifizierung des Benutzers verwendete Benutzername
Subject Subject Eine Zeichenfolge, die den Benutzer im Internet eindeutig identifiziert
Tenant ID Guid Dies ist eine GUID, die die Azure AD-Organisation des Benutzers eindeutig identifiziert.

Darüber hinaus sollten Sie eine Tabelle aller Ansprüche sehen, die in der Authentifizierungsanforderung enthalten sind. Weitere Informationen finden Sie in der Liste der in einem ID-Token enthaltenen Ansprüche.

Testen des Zugriffs auf eine Methode mit einem Authorize-Attribut (optional)

Führen Sie die folgenden Schritte aus, um den Zugriff als anonymer Benutzer auf einen mit dem Authorize-Attribut geschützten Controller zu testen:

  1. Wählen Sie den Link zum Abmelden des Benutzers aus, und schließen Sie den Abmeldevorgang ab.
  2. Geben Sie nun im Browser „http://localhost:{Port}/claims“ ein, um auf den mit dem Authorize-Attribut geschützten Controller zuzugreifen.

Erwartete Ergebnisse nach dem Zugriff auf einen geschützten Controller

Sie werden für die Verwendung der geschützten Controlleransicht zur Authentifizierung aufgefordert.

Erweiterte Optionen

Schutz der gesamten Website

Zum Schutz der gesamten Website fügen Sie in der Datei Global.asax unter der Methode Application_Startdem Filter GlobalFilters das AuthorizeAttribute-Attribut hinzu:

GlobalFilters.Filters.Add(new AuthorizeAttribute());

Einschränken des Anmeldezugriffs auf Ihre Anwendung

Wenn Sie die Anwendung nach dieser Anleitung erstellen, akzeptiert Ihre Anwendung standardmäßig sowohl Anmeldungen von persönlichen Konten (z. B. outlook.com, live.com u. a.) als auch von Geschäfts-, Schul- und Unikonten von Unternehmen oder Organisationen, die in Microsoft Identity Platform integriert wurden. Diese Option wird für SaaS-Anwendungen empfohlen.

Um den Anmeldezugriff des Benutzers auf Ihre Anwendung einzuschränken, stehen mehrere Optionen zur Verfügung:

Option 1: Beschränken der Benutzer auf die Active Directory-Instanz nur einer Organisation für die Anmeldung bei der Anwendung (Einzelmandant)

Diese Option wird häufig für Branchenanwendungen verwendet: Wenn Ihre Anwendung Anmeldungen nur von Konten akzeptieren soll, die zu einer bestimmten Azure AD-Instanz gehören (einschließlich Gastkonten dieser Instanz), gehen Sie wie folgt vor:

  1. Ändern Sie in der Datei „web.config“ den Wert für den Parameter Tenant von Common in den Mandantennamen der Organisation, z. B. contoso.onmicrosoft.com.
  2. Legen Sie in Ihrer OWIN-Startup-Klasse das Argument ValidateIssuer auf true fest.

Option 2: Einschränken des Zugriffs auf Benutzer in einer bestimmten Liste von Organisationen

Sie können den Anmeldezugriff auf die Benutzerkonten beschränken, die in einer Azure AD-Organisation in der Liste der zulässigen Organisationen enthalten sind:

  1. Legen Sie in Ihrer OWIN-Startup-Klasse das Argument ValidateIssuer auf true fest.
  2. Legen Sie den Wert des Parameters ValidIssuers auf die Liste der zulässigen Organisationen fest.

Option 3: Überprüfen von Ausstellern mithilfe einer benutzerdefinierten Methode

Sie können eine benutzerdefinierte Methode implementieren, um Aussteller mit dem IssuerValidator-Parameter zu überprüfen. Weitere Informationen zur Verwendung dieses Parameters finden Sie im Artikel zur TokenValidationParameters-Klasse.

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

Informieren Sie sich über das Aufrufen geschützter Web-APIs durch Web-Apps mit Microsoft Identity Platform: