Codebeispiel: ASP.NET-Webdienst
Aktualisiert: 19. Juni 2015
Gilt für: Azure
In diesen Beispielen wird veranschaulicht, wie Microsoft Azure Active Directory Access Control (auch als Access Control Service oder ACS bezeichnet) in einen einfachen Webdienst integriert werden. In diesem Beispiel wird ASP.NET als Webdiensthost und Befehlszeilenclient verwendet. Der ASP.NET-Webdienst erfordert ein SWT-Token, das von ACS ausgestellt wird. Der Client fordert ein Token von ACS mit einem Benutzernamen und kennwort an, das mit ACS registriert ist. Der Code für dieses Beispiel befindet sich im Unterverzeichnis "ASPNETSimpleService" (C#\WebServices\ASPNETSimpleService) des Microsoft Azure Active Directory Access Control (ACS)-Codebeispielpakets.
Voraussetzungen
Für dieses Beispiel benötigen Sie Folgendes:
Um ein Konto auf der Azure-Homepage zu erstellen und einen Access Control Namespace zu erstellen.
Visual Studio 2010 (alle Versionen)
Weitere Details finden Sie unter ACS-Voraussetzungen (https://go.microsoft.com/fwlink/?LinkId=221065).
Konfigurieren des Beispiels
Die für dieses Beispiel erforderliche ACS-Konfiguration kann entweder über das ACS-Verwaltungsportal oder den ACS-Verwaltungsdienst ausgeführt werden. In diesem Thema werden beide Optionen beschrieben.
Option 1: Konfigurieren des Beispiels mithilfe des ACS-Verwaltungsportals
Option 2: Konfigurieren des Beispiels mithilfe des ACS-Verwaltungsdiensts
Option 1: Konfigurieren des Beispiels mithilfe des ACS-Verwaltungsportals
So konfigurieren Sie das Beispiel mithilfe des ACS-Verwaltungsportals
Wechseln Sie zum Microsoft Azure Verwaltungsportal (https://manage.WindowsAzure.com), melden Sie sich an, und klicken Sie dann auf Active Directory. (Problembehandlungstipps: Das Element "Active Directory" fehlt oder nicht verfügbar)
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.)
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.
Wenn Sie Ihre Anwendung mit ACS registrieren möchten, klicken Sie auf "Anwendungen für vertrauende Parteien", klicken Sie auf "Hinzufügen", und geben Sie dann die folgenden Informationen im Formular ein:
Geben Sie im Feld Name die Angabe ASPNET Simple Service ein.
Geben Sie im Feld "Bereich " die Eingabetaste ein. https://localhost:8000/Service/
Geben Sie im Feld "Rückgabe-URL " die Eingabetaste ein. https://localhost:8000/Service/
Wählen Sie aus dem Dropdown-Listenfeld Tokenformat die Option SWT aus.
Klicken Sie im Feld Tokensignaturschlüssel auf Generieren, um einen Tokensignaturschlüssel zu generieren. Kopieren Sie diesen Schlüssel, um ihn später in der Konfiguration zu verwenden.
Geben Sie im Feld Ablaufdatum ein entsprechendes Ablaufdatum für den Schlüssel ein. Ab diesem Datum ist der Schlüssel nicht mehr gültig.
Behalten Sie für die anderen Felder die Standardwerte bei.
Klicken Sie auf Speichern, klicken Sie dann auf Start, um zur Startseite des Access Control Service-Verwaltungsportals zurückzukehren.
Mit ihrer registrierten vertrauenden Partei ist es jetzt Zeit, die Regeln zu erstellen, die die Ansprüche bestimmen, die ACS für Ihre Anwendung ausgibt. In diesem Beispiel wird eine Regel erstellt, die allen registrierten Benutzernamen und Kennwörtern einen Anspruch action mit dem Wert reverse zuweist. Klicken Sie zur Erstellung dieser Regel auf Start, um zur Startseite des Access Control Service-Verwaltungsportalszurückzukehren. Klicken Sie dann auf Regelgruppen und anschließend auf Standardregelgruppe für ASP.NET Simple Service. Fügen Sie eine Regel mit den folgenden Einstellungen hinzu:
Wählen Sie im Abschnitt Anspruchsaussteller die Option Zugriffssteuerungsdienst aus.
Wählen Sie unter Eingabeanspruchstyp die Option Beliebig aus.
Wählen Sie unter Eingabeanspruchswert die Option Beliebig aus.
Wählen Sie unter Ausgabeanspruchstyp die Option Typ eingeben aus, und geben Sie dann action in das Feld ein.
Wählen Sie im Abschnitt Ausgabeanspruchswert die Option Wert eingeben aus, und geben Sie dann reverse in das Feld ein.
Im Gegensatz zu den Websitebeispielen basiert dieses Beispiel auf Anmeldeinformationen, die von ACS verwaltet werden. Der letzte Schritt beim Konfigurieren von ACS ist das Registrieren des Benutzernamens und des Kennworts für die zu verwendende Clientanwendung. Klicken Sie zum Konfigurieren eines neuen Benutzernamens und eines Kennworts auf Start, um zur Startseite des Access Control Service-Verwaltungsportals zurückzukehren. Klicken Sie auf Dienstidentitäten, und klicken Sie dann auf Hinzufügen, um das Formular auszufüllen. Geben Sie für dieses Beispiel acssample als Benutzernamen ein, legen Sie Kennwort als Anmeldeinformationentyp fest, und geben Sie dann pass@word1 als Kennwort ein.
Klicken Sie auf Speichern, klicken Sie dann auf Start, um zur Startseite des Access Control Service-Verwaltungsportals zurückzukehren.
Option 2: Konfigurieren des Beispiels mithilfe des ACS-Verwaltungsdiensts
Die Visual Studio Beispiellösung verfügt über eine Konsolenanwendung namens ConfigureSample, die den ACS-Verwaltungsdienst und die allgemeinen Hilfser verwendet, die in der Allgemeinen Klassenbibliothek definiert sind. Diese Anwendung kann verwendet werden, um einen Access Control Namespace für die Verwendung mit diesem Beispiel zu konfigurieren.
So konfigurieren Sie das Beispiel mithilfe des ACS-Verwaltungsdiensts
Öffnen Sie zum Konfigurieren des Beispiels SamplesConfiguration.cs (acs\Management\ManagementService\Common). Ersetzen Sie die Platzhalter in der SamplesConfiguration-Klasse in der Allgemeinen Klassenbibliothek durch Informationen zu Ihrem Access Control Namespace. Sie können die Informationen im ACS-Verwaltungsportal finden.
Um zum ACS-Verwaltungsportal zu navigieren: Wechseln Sie zum Microsoft Azure Verwaltungsportal (https://manage.WindowsAzure.com), melden Sie sich an, und klicken Sie dann auf Active Directory. (Problembehandlungstipps: Das Element "Active Directory" fehlt oder nicht verfügbar) Um einen Access Control Namespace 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.)
ServiceNamespace – Geben Sie den Namen Ihres Access Control Namespace ein.
ManagementServiceIdentityName – Geben Sie den Namen eines ACS-Verwaltungsdienstkontos ein. Die Standardeinstellung lautet "ManagementClient".
Um den Namen des Verwaltungsdienstkontos im ACS-Verwaltungsportal zu finden, klicken Sie auf "Verwaltungsdienst". Die Konten werden nach ihrem Namen unter Verwaltungsdienstkonten aufgelistet.
ManagementServiceIdentityKey – Geben Sie das Kennwort für das Verwaltungsdienstkonto ein.
Um das Kennwort für das Verwaltungsdienstkonto zu finden, klicken Sie im ACS-Verwaltungsportal auf "Verwaltungsdienst". Klicken Sie auf den Namen eines Verwaltungsdienstkontos, und klicken Sie dann unter Anmeldeinformationen auf Kennwort. Das Kennwort wird im Feld Kennwort angezeigt. Klicken Sie zum Kopieren des Kennworts auf Kennwort anzeigen.
Führen Sie die ConfigureSample-Anwendung in Visual Studio aus. Dadurch wird ACS so konfiguriert, dass dieses Beispiel ausgeführt wird.
Wenn die Anwendung ConfigureSample beendet wird, wird der generierte Signaturschlüssel der vertrauenden Seite in der Konsole ausgegeben. Kopieren Sie diesen Schlüssel in die Zwischenablage.
Ausführen des Beispiels
So führen Sie das Beispiel aus
Öffnen Sie das Beispiel in Visual Studio. Die Lösung besteht aus zwei Projekten: Dienst und Client.
Wenn Sie dies noch nicht getan haben, geben Sie Ihre Access Control Namespacedetails in Common\SamplesConfiguration.cs ein. Weitere Informationen finden Sie in Schritt 1 von Option 2: Konfigurieren über den ACS-Verwaltungsdienst. Diese Datei wird auch von den Projekten Service und Client verwendet.
Öffnen Sie die Datei web.config im Projekt Service. Geben Sie Ihren Tokensignaturschlüssel in die entsprechenden AppSettings-Elemente ein. Wenn Sie ACS mithilfe des Verwaltungsdiensts konfiguriert haben, ist dies der Wert, den Sie in die Zwischenablage kopiert haben. Verwenden Sie zum Abrufen des Tokensignaturschlüssels den Bereich Zertifikate und Schlüssel des Portals. Der folgende Codeausschnitt zeigt diesen Bereich der Datei web.config des Projekts Service:
<appSettings> <add key="IssuerSigningKey" value="...update to your signing key..."/> </appSettings>
Öffnen Sie die Datei app.config im Projekt Client. Geben Sie Ihren Benutzernamen und das Kennwort in die entsprechenden AppSettings-Elemente ein. Verwenden Sie zum Abrufen des zuvor registrierten Benutzernamens und Kennworts den Bereich Dienstidentitäten des Portals. Der folgende Codeausschnitt zeigt diesen Bereich (ordnungsgemäß aktualisiert) der Clientdatei app.config an.
<appSettings> <add key="OAuthUserName" value="acssample" /> <add key="OAuthPassword" value="pass@word1" /> <add key="ServiceAddress" value="https://localhost:8000/Service/Default.aspx" /> </appSettings>
Starten Sie zum Ausführen des Beispiels den Dienst, und starten Sie dann den Client. Geben Sie im Client eine umzukehrende Zeichenfolge ein. Das Clientkonsolenfenster sollte dann die Ausgabe anzeigen, die angibt, dass es ein Token von ACS empfangen hat.