(0) exportieren Drucken
Alle erweitern

Codebeispiel: Benutzerdefinierte ASP.NET MVC 3-Anmeldeseite

Veröffentlicht: Mai 2011

Letzte Aktualisierung: Februar 2014

Betrifft: Azure

In diesem Beispiel wird gezeigt, wie eine benutzerdefinierte Anmelde- oder Homebereicherkennungs-Seite in einer ASP.NET MVC3-Anwendung erstellt wird, die Zugriffssteuerung für Microsoft Azure Active Directory (auch Zugriffssteuerungsdienst oder ACS) verwendet. Der Code für dieses Beispiel befindet sich im Unterverzeichnis MVC3CustomSignInPage (C#\Websites\MVC3CustomSignInPage) des Codebeispiele für die Zugriffssteuerung (Access Control Service, ACS) für Microsoft Azure Active Directory-Pakets.

Folgendes ist erforderlich, um dieses Beispiel auszuführen:

  1. Ein Konto im Azure-Portal (http://go.microsoft.com/fwlink/?LinkId=130560) und ein Namespace für die Zugriffssteuerung.

  2. Visual Studio 2010 (beliebige Version).

  3. ASP .NET MVC3 (http://www.asp.net/mvc/mvc3)

  4. Windows Identity Foundation SDK

Weitere Informationen finden Sie unter ACS-Voraussetzungen (http://go.microsoft.com/fwlink/?LinkId=221065).

Die ACS-Konfiguration, die für dieses Beispiel erforderlich ist, kann mithilfe des ACS-Verwaltungsportals oder des ACS-Verwaltungsdiensts ausgeführt werden. In diesem Thema werden beide Optionen beschrieben.

  1. Navigieren Sie zum Microsoft Azure-Verwaltungsportal (https://manage.WindowsAzure.com), melden Sie sich an, und klicken Sie dann auf Active Directory. (Hinweis für die Fehlerbehebung: Das Element "Active Directory" fehlt oder ist nicht verfügbar)

  2. Um einen Namespace für die Zugriffssteuerung zu erstellen, klicken Sie auf Neu, auf Anwendungsdienste, auf Zugriffssteuerung und dann auf Schnellerfassung. (Oder klicken Sie auf Namespaces für die Zugriffssteuerung und dann auf Neu.)

  3. Um einen Namespace für die Zugriffssteuerung zu verwalten, wählen Sie den Namespace aus und klicken Sie dann auf Verwalten. (Oder klicken Sie auf Namespaces für die Zugriffssteuerung, wählen Sie den Namespace aus und klicken Sie dann auf Verwalten.)

    Durch diese Aktion wird das Access Control Service-Verwaltungsportal geöffnet.

  4. Um Beziehungen mit den Identitätsanbietern einzurichten, klicken Sie auf Identitätsanbieter, und wählen Sie dann die Identitätsanbieter aus, die sie verwenden möchten z. B. Google, Yahoo! und Facebook. Weitere Informationen zum Abrufen der als Voraussetzung erforderlichen Schlüssel für Facebook finden Sie unter Vorgehensweise: Konfigurieren von Facebook als Identitätsanbieter (http://go.microsoft.com/fwlink/?LinkId=221151). Klicken Sie dann im linken Navigationsmenü der Seite auf den Link Start, um zur Hauptseite zurückzukehren.

  5. Klicken Sie zum Registrieren der Anwendung bei ACS auf dem Access Control Service-Verwaltungsportal auf der Hauptseite auf den Link Anwendungen der vertrauenden Seite, wählen Sie Hinzufügen aus, und geben Sie dann die folgenden Informationen in das Formular ein:

    • Geben Sie im Feld Name die Angabe ASPNET MVC3 Custom ein.

    • Geben Sie unter Bereich die Angabe http://localhost:64000/ ein.

    • Geben Sie im Feld Rückgabe-URL die Angabe http://localhost:64000/Account/SignIn ein.

    • Wählen Sie im Feld Tokenformat die Option SAML 2.0 aus.

    • Wählen Sie im Abschnitt Identitätsanbieter die Anbieter Facebook, Google, Windows Live ID und Yahoo! aus.

    • Wählen Sie im Feld Tokensignatur die Option Dienstnamespacezertifikat verwenden (Standard) aus.

  6. Klicken Sie auf Speichern, und navigieren Sie dann zurück zur Hauptseite.

  7. Nachdem die Anwendung der vertrauende Seite konfiguriert wurde, ist es nun an der Zeit, die Regeln zu erstellen, die die Ansprüche festlegen, die ACS für Ihre Anwendung ausstellt. In diesem Beispiel werden alle vom Identitätsanbieter ausgestellten Ansprüche mithilfe von Pass-Through übergeben. Klicken Sie zum Erstellen dieser Regel auf der Hauptseite auf Regelgruppen, und klicken Sie dann auf Standardregelgruppe für ASPNET MVC3 Custom.

  8. Klicken Sie am unteren Rand der Seite auf den Link Generieren. Stellen Sie sicher, dass Facebook, Yahoo und ausgewählt sind, und klicken Sie dann auf Generieren.

  9. Öffnen Sie ACS, wenn Visual Studio konfiguriert ist.

Das Visual Studio-Beispielprojekt enthält eine Befehlszeilenanwendung namens ConfigureSample, die den ACS-Verwaltungsdienst sowie die allgemeinen Hilfsprogramme verwendet, die in der Klassenbibliothek Common definiert sind. Diese Anwendung kann zum Konfigurieren Ihres Namespace für die Zugriffssteuerung für den Einsatz in diesem Beispiel verwendet werden.

  1. Aktualisieren Sie die Klassenbibliothek Common mit Informationen zu Ihrem Namespace für die Zugriffssteuerung. Öffnen Sie SamplesConfiguration.cs, und geben Sie dann die folgenden Informationen ein:

    • ServiceNamespace – Dies ist der Namespace, der mit ACS verwendet wird.

    • ManagementServiceIdentityName – Dies ist der Kontoname des Verwaltungsdiensts.

    • ManagementServiceIdentityKey – Dies ist das Kennwort, das dem Verwaltungsdienstkonto zugeordnet ist.

    • AcsHostUrl – Dies ist der Hostname von ACS.

  2. Öffnen Sie im Projekt ConfigureSample die Datei Program.cs, und geben Sie dann die folgenden Informationen ein:

    1. applicationId – Dies ist die Anwendungs-ID der Facebook-Anwendung.

    2. applicationSecret – Dies ist das Anwendungsgeheimnis der Facebook-Anwendung.

    Einzelheiten zum Abrufen dieser Schlüssel finden Sie unter Vorgehensweise: Konfigurieren von Facebook als Identitätsanbieter (http://go.microsoft.com/fwlink/?LinkId=221151).

  3. Führen Sie die Anwendung ConfigureSample in Visual Studio aus. Auf diese Weise wird ACS für die Ausführung dieses Beispiels konfiguriert.

  1. Öffnen Sie das Beispiel unter Websites\MVC3CustomSignInPage\MVC3CustomSignInPage.sln in Visual Studio.

  2. Klicken Sie mit der rechten Maustaste auf MVCCustomSignInPage, und wählen Sie dann STS-Verweis hinzufügen aus dem Kontextmenü aus, um ACS als STS-Verweis hinzuzufügen.

  3. Geben Sie im Dialogfeld den Stamm der Webanwendung in das Feld Anwendungs-URI ein, und klicken Sie dann auf Weiter. Für diese Übung lautet der Wert http://localhost:64000/.

    noteHinweis
    Der nachstehende Schrägstrich ist wichtig, weil er den in ACS für die vertrauende Seite eingegebenen Werten entspricht. Der Assistent gibt eine Warnung aus, dass Ihre Website kein SSL verwendet. Akzeptieren Sie diese Warnung, indem Sie auf die Schaltfläche Ja klicken. Denken Sie jedoch daran, dass eine Produktionswebsite für diese Szenarien so gut wie immer SSL verwenden sollte.

  4. Wählen Sie im nächsten Fenster das Optionsfeld Vorhandenen STS verwenden aus, und geben Sie dann den URI der Metadaten des WS-Verbunds an, die von Ihrem Namespace für die Zugriffssteuerung veröffentlicht werden. Sie finden diesen URI im Portal unter Anwendungsintegration. Wenn Ihr Namespace für die Zugriffssteuerung mvc3samples ist, lautet der URI https://mvc3samples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. Nachdem Sie diesen Wert eingegeben haben, klicken Sie auf Weiter.

  5. Da Ihre Website keine verschlüsselten Token erfordert, klicken Sie in den verbleibenden Dialogfeldern auf Weiter, und klicken Sie dann auf Fertig stellen.

  6. Ihre Anwendung ist nun für die Verwendung von ACS mit ASP .NET-Ressourcenpauschalschutz konfiguriert. Sie müssen diesen Schutz deaktivieren, damit Sie Ihre eigene benutzerdefinierte Anmeldeseite mit detaillierteren MVC3-Authentifizierungsfiltern verwenden können. Löschen Sie in der Datei web.config unter configuration die folgende Einstellung:

    <location path="FederationMetadata">
       <system.web>
         <authorization>
           <allow users="*" />
         </authorization>
       </system.web>
    </location>
    
    
  7. Löschen Sie unter system.web die folgende Einstellung:

    <authorization>
         <deny users="?" />
       </authorization>
    
    

    Nachdem diese beiden Einstellungen entfernt wurden, führt ASP .NET keine Authentifizierung oder Autorisierung in Ihrem Auftrag aus.

  8. Drücken Siein Visual Studio F5, um die Anwendung auszuführen. Ihr Browser navigiert zur Hauptseite der Anwendung.

  9. Klicken Sie auf den Link Anmelden in oberen rechten Ecke, und wählen Sie dann einen Identitätsanbieter aus der angezeigten Liste aus. Nach der Authentifizierung kehren Sie zur Startseite zurück. Ihre Benutzerinformationen werden in der oberen rechten Ecke angezeigt (beachten Sie, dass keinen Benutzernamen bereitstellt).

  10. Klicken Sie auf Anmelden, um sich abzumelden. Auf diese Weise werden die Sitzungscookies gelöscht, und Sie gelangen erneut auf die Hauptseite.

  11. Klicken auf den Link Verzeichnis. Da Sie nicht mehr authentifiziert sind, werden Sie aufgefordert, einen Identitätsanbieter für den Zugriff auf die Seite Verzeichnis auszuwählen.

Dies geschieht, weil die Seite Verzeichnis (Index in DirectoryController) mithilfe von RequireAuthenticationAttribute geschützt ist. Nachdem Sie einen Identitätsanbieter ausgewählt und sich authentifiziert haben, werden Sie erneut an die Seite Verzeichnis weitergeleitet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft