Szenario: Web-App (Server-App) ruft Web-API auf
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.
Übersicht
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.
Klicken Sie in „AD FS-Verwaltung“ mit der rechten Maustaste auf Anwendungsgruppen, und wählen Sie Anwendungsgruppe hinzufügen aus.
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. Klicke auf Weiter.
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. Klicke auf Weiter.
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.
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.
Wählen Sie auf dem Bildschirm „Zugriffssteuerungsrichtlinie anwenden“ die Option Jedem Einzelnen Zugriff gewähren aus, und klicken Sie auf Weiter.
Stellen Sie auf dem Bildschirm „Anwendungsberechtigungen konfigurieren“ sicher, dass openid und user_impersonation ausgewählt sind, und klicken Sie auf Weiter.
Klicken Sie auf dem Bildschirm „Zusammenfassung“ auf Weiter.
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.
Laden Sie das Beispiel hier herunter.
Öffnen Sie das Beispiel mit Visual Studio.
Ö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/adfsida:Resource
– Geben Sie den Bezeichner-Wert ein, der in AD FS im Abschnitt App-Registrierung unter Nr. 5 aufgeführt ist.
Testen des Beispiels
In diesem Abschnitt wird gezeigt, wie Sie das konfigurierte Beispiel testen.
Nachdem die Codeänderungen vorgenommen wurden, erstellen Sie die Projektmappe neu.
Stellen Sie oben in Visual Studio sicher, dass Internet Explorer ausgewählt ist, und klicken Sie auf den grünen Pfeil.
Klicken Sie auf der Startseite auf „Anmelden“.
Sie werden zur AD FS-Anmeldeseite umgeleitet. Melden Sie sich bei Azure an.
Klicken Sie nach der Anmeldung auf „Zugriffstoken“.
Wenn Sie auf Zugriffstoken klicken, werden die Zugriffstokeninformationen durch Aufrufen der Web-API abgerufen.