Freigeben über


Codebeispiel: OAuth 2.0-Zertifikatauthentifizierung

Aktualisiert: 19. Juni 2015

Gilt für: Azure

In diesem Beispiel wird veranschaulicht, wie Microsoft Azure Active Directory Access Control authentifiziert werden (auch als Access Control Service oder ACS bezeichnet) mithilfe des OAuth 2.0-Protokolls, indem ein SAML-Token angezeigt wird, das von einem X.509-Zertifikat signiert ist. Dieses Zertifikat entspricht einer serviceIdentity, die auf ACS konfiguriert ist, und ACS stellt ein SWT mit einem Namenidentifiziereranspruch der ServiceIdentity aus. Dieses SWT-Token wird für die Authentifizierung mit einer durch OAuth 2.0 geschützten Ressource verwendet. Dieses Beispiel ist mit dem Entwurf 13 des OAuth 2.0-Protokolls konform. Der Code für dieses Beispiel befindet sich im Unterverzeichnis OAuth2 (C#\OAuth2) des Microsoft Azure Active Directory Access Control (ACS)-Codebeispielpakets.

Voraussetzungen

Für dieses Beispiel benötigen Sie Folgendes:

  1. Ein Konto im Azure-Portal und einem Access Control Namespace.

  2. 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.

  1. Option 1: Konfigurieren des Beispiels mithilfe des ACS-Verwaltungsportals

  2. 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

  1. 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)

  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 Ihre Anwendung mit ACS zu registrieren, klicken Sie auf "Vertrauende Parteianwendungen", klicken Sie auf "Hinzufügen", und geben Sie dann die folgenden Informationen im Formular ein:

    • Geben Sie im Feld Name die Angabe OAuth2 RP ein.

    • Geben Sie im Feld "Bereich " die Eingabetaste ein. https://oauth2relyingparty/

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

    • Klicken Sie auf Generieren, um einen neuen Schlüssel zu erstellen.

    • 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.

  5. Klicken Sie auf Speichern.

  6. 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 erstellen wir eine Regel, die von ACS generierte Ansprüche gewährt, die durchlaufen werden.

    Klicken Sie zum Erstellen dieser Regel auf Regelgruppen, und klicken Sie dann auf Standardregelgruppe für OAuth2 RP. Verwenden Sie die folgenden Einstellungen, um eine neue Regel hinzuzufügen:

    • Wählen Sie im Abschnitt Anspruchsaussteller die Option Access Control Service 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 Pass-Through-Eingabeanspruchstyp aus.

    • Wählen Sie unter Ausgabeanspruchswert die Option Pass-Through-Eingabeanspruchswert aus.

  7. Dieses Beispiel basiert auf anmeldeinformationen, die von ACS verwaltet werden.

    Klicken Sie zum Konfigurieren eines neuen Clientzertifikats für die Clientanwendung auf Dienstidentitäten, klicken Sie auf Hinzufügen, und geben Sie dann einen Namen ein. Fügen Sie den Anmeldeinformationentyp X.509-Zertifikat hinzu, und suchen Sie dann nach der Datei ACS2ClientCertificate.cer im Ordner Certificates dieses Beispiels. Klicken Sie auf Speichern.

  8. Nachdem ACS konfiguriert ist, öffnen Sie Visual Studio.

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 in der Allgemeinen Klassenbibliothek definierten Hilfshilfen verwendet. Diese Anwendung kann verwendet werden, um Ihren Access Control Namespace für die Verwendung mit diesem Beispiel zu konfigurieren.

So konfigurieren Sie das Beispiel mithilfe des ACS-Verwaltungsdiensts

  1. Aktualisieren Sie die Allgemeine Klassenbibliothek mit Informationen zu Ihrem Access Control Namespace. Öffnen Sie SamplesConfiguration.cs, und geben Sie dann die folgenden Informationen ein:

    • ServiceNamespace – Dies ist der Name Ihres Access Control Namespaces

    • 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. Führen Sie die ConfigureSample-Anwendung in Visual Studio aus. Dadurch wird ACS so konfiguriert, dass dieses Beispiel ausgeführt wird.

  3. 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

  1. Öffnen Sie das Beispiel in Visual Studio. Zusätzlich zu ConfigureSample und Common besteht die Lösung aus zwei Projekten: ProtectedResourceWebApp und Client.

  2. 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 oben genannten ACS-Verwaltungsdienst . Diese Datei wird auch vom Projekt Client verwendet.

  3. Öffnen Sie die Datei web.config im Projekt ProtectedResourceWebApp.

  4. Geben Sie Ihren Tokensignaturschlüssel in die entsprechenden AppSettings-Elemente ein. Wenn Sie den Verwaltungsdienst zum Konfigurieren von ACS verwendet haben, ist dies der Wert, den Sie in die Zwischenablage kopiert haben. Zum Abrufen des Tokensignaturschlüssels klicken Sie im ACS-Portal auf Zertifikate und Schlüssel. Der folgende Codeausschnitt zeigt diesen Bereich der Datei web.config:

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. Starten Sie ProtectedResourceWebApp, um das Beispiel auszuführen. Es wird ein Webbrowser geöffnet, das Textfeld ist jedoch leer, weil der Webbrowser nicht authentifiziert ist.

  6. Führen Sie Client aus. HTML-Code wird in einem Konsolenfenster angezeigt. Beachten Sie, dass der HTML-Code angibt, dass der Benutzer authentifiziert ist und die Ansprüche von ACS anzeigt.