Freigeben über


Szenario: Web-App (Server-App) ruft Web-API auf

Gilt für: Windows Server 2022, Windows Server 2019, AD FS 2019 und höher

Erfahren Sie, wie Sie eine Web-App erstellen, die von AD FS 2019 authentifizierte Benutzer anmeldet, und wie Sie Token mithilfe der MSAL-Bibliothek zum Aufrufen von Web-APIs erhalten.

Bevor Sie diesen Artikel lesen, sollten Sie mit den AD FS-Konzepten und dem Flow zur Gewährung von Autorisierungscodes vertraut sein.

Überblick

Overview of web app calling web api

In diesem Flow fügen Sie Ihrer Web-App (Server-App) die Authentifizierung hinzu, die daher Benutzer anmelden kann und eine Web-API aufruft. Verwenden Sie in der Web-App zum Aufrufen der Web-API die Tokenerfassungsmethode AcquireTokenByAuthorizationCode von MSAL. Sie verwenden den Autorisierungscodeflow indem Sie das abgerufene Token im Tokencache speichern. Anschließend bezieht der Controller bei Bedarf im Hintergrund automatisch Token aus dem Cache ab. Durch MSAL wird das Token bei Bedarf aktualisiert.

Web Apps, die Web-APIs aufrufen:

  • sind vertrauliche Clientanwendungen.
  • ein Geheimnis (gemeinsames Anwendungsgeheimnis, Zertifikat oder AD-Konto) bei AD FS registriert. Dieses Geheimnis wird während des Aufrufs an Azure AD übergeben, um ein Token abzurufen.

Um eine Web-App in AD FS zu registrieren und sie so zu konfigurieren, dass sie Token zum Aufrufen einer Web-API abruft, verwenden wir ein hier zur Verfügung stehendes Beispiel und führen die Schritte für die App-Registrierung und die Codekonfiguration durch.

Voraussetzungen

  • GitHub-Clienttools
  • AD FS 2019 oder höher ist konfiguriert und wird ausgeführt
  • Visual Studio 2013 oder höher

App-Registrierung in AD FS

In diesem Abschnitt erfahren Sie, wie Sie die Web-App als vertraulichen Client und die Web-API als vertrauende Seite (Relying Party, RP) in AD FS registrieren.

  1. Klicken Sie in „AD FS-Verwaltung“ mit der rechten Maustaste auf Anwendungsgruppen, und wählen Sie Anwendungsgruppe hinzufügen aus.

  2. Geben Sie im Anwendungsgruppen-Assistenten als Name den Wert WebAppToWebApi ein, und wählen Sie unter Client/Server-Anwendungen die Vorlage Serveranwendung mit Zugriff auf eine Web-API aus. Klicken Sie auf Weiter.

    Screenshot of the Welcome page of the Add Application Group Wizard showing the Server application accessing a web A P I template highlighted.

  3. Kopieren Sie den Wert für den Clientbezeichner. Der Wert wird später als Wert für ida:ClientId in der Datei Web.config der Anwendung verwendet. Geben Sie den folgenden Umleitungs-URI ein: https://localhost:44326. Klicken Sie auf Hinzufügen. Klicken Sie auf Weiter.

    Screenshot of the Server application page of the Add Application Group Wizard showing the correct client identifier and redirect U R I.

  4. Aktivieren Sie auf dem Bildschirm „Anwendungsanmeldeinformationen konfigurieren“ die Option Gemeinsames Geheimnis generieren und kopieren Sie das Geheimnis. Dieses Geheimnis wird später als Wert für ida:ClientSecret in der Datei Web.config der Anwendung verwendet. Klicken Sie auf Weiter.

    Screenshot of the Configure Application Credentials application page of the Add Application Group Wizard showing the Generate a shared secret option selected and the generated shared secret populated.

  5. Geben Sie auf dem Bildschirm „Web-API konfigurieren“ den folgenden Bezeichner ein: https://webapi. Klicken Sie auf Hinzufügen. Klicken Sie auf Weiter. Dieser Wert wird später für ida:GraphResourceId in der Datei Web.config der Anwendung verwendet.

    Screenshot of the Configure Web API page of the Add Application Group Wizard showing the correct identifier.

  6. Wählen Sie auf dem Bildschirm „Zugriffssteuerungsrichtlinie anwenden“ die Option Jedem Einzelnen Zugriff gewähren aus, und klicken Sie auf Weiter.

    Screenshot of the Choose Access Control Policy page of the Add Application Group Wizard showing the Permit everyone option highlighted.

  7. Stellen Sie auf dem Bildschirm „Anwendungsberechtigungen konfigurieren“ sicher, dass openid und user_impersonation ausgewählt sind, und klicken Sie auf Weiter.

    Screenshot of the Configure Application Permissions page of the Add Application Group Wizard showing the open I D and user impersonation options selected.

  8. Klicken Sie auf dem Bildschirm „Zusammenfassung“ auf Weiter.

  9. Klicken Sie auf dem Bildschirm „Abschließen“ auf Schließen.

Codekonfiguration

In diesem Abschnitt wird gezeigt, wie Sie eine ASP.NET Web-App konfigurieren, um einen Benutzer anzumelden und ein Token abzurufen, um die Web-API aufzurufen.

  1. Laden Sie das Beispiel hier herunter.

  2. Öffnen Sie das Beispiel mit Visual Studio.

  3. Öffnen Sie die Datei web.config. Ändern Sie Folgendes:

    • ida:ClientId – Geben Sie den Client-ID-Wert ein, der in AD FS im Abschnitt App-Registrierung unter Nr. 3 aufgeführt ist.

    • ida:ClientSecret – Geben Sie den Geheimnis-Wert ein, der in AD FS im Abschnitt App-Registrierung unter Nr. 4 aufgeführt ist.

    • ida:RedirectUri – Geben Sie den Umleitungs-URI-Wert ein, der in AD FS im Abschnitt App-Registrierung unter Nr. 3 aufgeführt ist.

    • ida:Authority – Geben Sie https://[Ihr AD FS-Hostname]/adfs ein. Beispiel: https://adfs.contoso.com/adfs

    • ida:Resource – Geben Sie den Bezeichner-Wert ein, der in AD FS im Abschnitt App-Registrierung unter Nr. 5 aufgeführt ist.

      Screenshot of the web config file showing the modified values.

Testen des Beispiels

In diesem Abschnitt wird gezeigt, wie Sie das konfigurierte Beispiel testen.

  1. Nachdem die Codeänderungen vorgenommen wurden, erstellen Sie die Projektmappe neu.

  2. Stellen Sie oben in Visual Studio sicher, dass Internet Explorer ausgewählt ist, und klicken Sie auf den grünen Pfeil.

    Screenshot of the Visual Studio UI with the IIS Express (Internet Explorer) option called out.

  3. Klicken Sie auf der Startseite auf „Anmelden“.

    Screenshot of the Home Page with the Sign in option called out.

  4. Sie werden zur AD FS-Anmeldeseite umgeleitet. Melden Sie sich an.

    Screenshot of the Sign in page.

  5. Klicken Sie nach der Anmeldung auf „Zugriffstoken“.

    Screenshot of the Home Page with the Access Token option called out.

  6. Wenn Sie auf Zugriffstoken klicken, werden die Zugriffstokeninformationen durch Aufrufen der Web-API abgerufen.

    Screenshot of the Access Token page showing the access token info.

Nächste Schritte

AD FS OpenID Connect-/OAuth-Flows und Anwendungsszenarien