Freigeben über


Verwenden des Microsoft Entra-Anwendungsproxys, um sicheren Zugriff auf eine API (Application Programming Interface) bereitzustellen, die in einer privaten Cloud oder lokal gehostet wird

Geschäftslogik befindet sich oftmals in einer privaten Anwendungsprogrammierschnittstelle (API). Die API wird lokal oder in einer privaten Cloud ausgeführt. Ihre nativen Android-, iOS-, Mac- oder Windows-Apps müssen mit den API-Endpunkten interagieren, um Daten zu verwenden oder Benutzerinteraktionen bereitzustellen. Mit Microsoft Entra Anwendungsproxy und der Microsoft Authentication Library (MSAL) können Ihre nativen Anwendungen sicher auf Ihre privaten Cloud-APIs zugreifen. Der Microsoft Entra-Anwendungsproxy ist eine schnellere und sicherere Lösung als das Öffnen von Firewallports und das Steuern von Authentifizierung und Autorisierung auf Anwendungsebene.

Tipp

Lokal ist ein Legacy-Begriff aus der Zeit, als sich physische Server noch in den Räumlichkeiten des Unternehmens befanden. Jetzt werden viele selbst gehostete Workloads auf einem virtuellen Computer in einem Rechenzentrum ausgeführt. Die Begriffe „lokal“ und „private Cloud“ werden austauschbar verwendet.

Dieser Artikel führt Sie schrittweise durch die Einrichtung einer Microsoft Entra-Anwendungsproxylösung für das Hosting eines Web-API-Diensts, auf den native Apps zugreifen können.

Überblick

Die folgende Abbildung zeigt eine herkömmliche Methode zum Veröffentlichen lokaler APIs. Dieser Ansatz erfordert das Öffnen der Ports 80 und 443 für eingehenden Datenverkehr.

Herkömmliche API-Zugriff

Die folgende Abbildung zeigt, wie Sie mit dem Microsoft Entra-Anwendungsproxy APIs sicher veröffentlichen können, ohne Ports für eingehenden Datenverkehr zu öffnen:

API-Zugriff mit dem Microsoft Entra-Anwendungsproxy

Der Microsoft Entra-Anwendungsproxy bildet das Rückgrat der Lösung und fungiert dabei als öffentlicher Endpunkt für den API-Zugriff. Er stellt Authentifizierung und Autorisierung bereit. Sie können über eine Vielzahl von Plattformen auf Ihre APIs zugreifen, indem Sie die MSAL-Bibliotheken (Microsoft Authentication Library, MSAL) verwenden.

Da die Authentifizierung und Autorisierung von Microsoft Entra-Anwendungsproxy auf Microsoft Entra ID aufbaut, können Sie Microsoft Entra Conditional Access verwenden, um sicherzustellen, dass nur vertrauenswürdige Geräte auf APIs zugreifen können, die über Anwendungsproxy veröffentlicht werden. Verwenden Sie Microsoft Entra-Einbindung oder Microsoft Entra-Hybrideinbindung für Desktopcomputer und Intune Managed für Geräte. Sie können auch die Vorteile von P1- oder P2-Features von Microsoft Entra ID wie Microsoft Entra-Multi-Faktor-Authentifizierung und die durch maschinelles Lernen unterstützte Sicherheit von Microsoft Entra ID Protection nutzen.

Voraussetzungen

Für diese exemplarische Vorgehensweise benötigen Sie Folgendes:

Veröffentlichen der API über den Anwendungsproxy

Um eine API außerhalb Ihres Intranets über den Anwendungsproxy zu veröffentlichen, folgen Sie dem gleichen Muster wie bei der Veröffentlichung von Web-Apps. Weitere Informationen finden Sie unter Tutorial: Hinzufügen einer lokalen Anwendung für den Remotezugriff über den Anwendungsproxy in Microsoft Entra ID.

Um die SecretAPI-Web-API über den Anwendungsproxy zu veröffentlichen:

  1. Erstellen und veröffentlichen Sie das SecretAPI-Projekt als ASP.NET-Web-App auf Ihrem lokalen Computer oder im Intranet. Stellen Sie sicher, dass Sie auf die Web-App lokal zugreifen können.

  2. Melden Sie sich beim Microsoft Entra Admin Center mindestens mit der Rolle Anwendungsadministrator an.

  3. Browsen Sie zu Identität>Anwendungen>Unternehmensanwendungen.

  4. Wählen Sie oben auf der Seite Unternehmensanwendungen – Alle Anwendungen die Option Neue Anwendung aus.

  5. Navigieren Sie auf der Seite Microsoft Entra-Katalog durchsuchen zum Abschnitt Lokale Anwendungen, und wählen Sie Lokale Anwendung hinzufügen aus. Die Seite Fügen Sie Ihre eigene lokale Anwendung hinzu wird angezeigt.

  6. Wenn Sie keinen privaten Netzwerkconnector haben, werden Sie zur Installation aufgefordert. Wählen Sie Privaten Netzwerkconnector herunterladen aus, um den Connector herunterzuladen und zu installieren.

  7. Fügen Sie Informationen auf der Seite Eigene lokale Anwendung hinzufügen hinzu.

    1. Geben Sie neben NameSecretAPI ein.

    2. Geben Sie die URL neben Interne URL ein, die Sie verwenden, um auf die API über Ihr Intranet zuzugreifen.

    3. Stellen Sie sicher, dass Vorauthentifizierung auf Microsoft Entra ID festgelegt ist.

    4. Klicken Sie auf Erstellen, und warten Sie, bis die App erstellt wurde.

    Hinzufügen der API-App

  8. Wählen Sie auf der Seite Unternehmensanwendungen – Alle Anwendungen die App SecretAPI aus.

  9. Wählen Sie auf der Seite SecretAPI – Übersicht die Option Eigenschaften im linken Navigationsbereich aus.

  10. Sie möchten nicht, dass APIs für Endbenutzer im Bereich MyApps verfügbar sein sollen. Legen Sie daher Für Benutzer sichtbar unten auf der Seite Eigenschaften auf Nein fest, und wählen Sie dann Speichern aus.

    Nicht für Benutzer sichtbar

Die Web-API wird jetzt über den Microsoft Entra-Anwendungsproxy veröffentlicht. Als Nächstes fügen Sie Benutzer hinzu, die auf die Anwendung zugreifen können.

  1. Wählen Sie auf der Seite SecretAPI – Übersicht die Option Benutzer und Gruppen im linken Navigationsbereich aus.

  2. Wählen Sie auf der Seite Benutzer und Gruppen die Option Benutzer hinzufügen aus.

  3. Wählen Sie auf der Seite Zuweisung hinzufügen die Option Benutzer und Gruppen aus.

  4. Suchen Sie auf der Seite Benutzer und Gruppen nach Benutzern, und wählen Sie die Benutzer aus, die auf die App zugreifen können (wählen Sie mindestens sich selbst aus). Nachdem Sie alle Benutzer ausgewählt haben, wählen Sie Auswählen aus.

    Auswählen und Zuweisen von Benutzern

  5. Wählen Sie auf der Seite Zuweisung hinzufügen die Option Zuweisen aus.

Hinweis

Für APIs, die die integrierte Windows-Authentifizierung verwenden, sind möglicherweise zusätzliche Schritte erforderlich.

Registrieren der nativen App und Gewähren des Zugriffs auf die API

Native Apps sind Programme, die für die Verwendung auf einer bestimmten Plattform oder auf einem bestimmten Gerät entwickelt wurden. Bevor Ihre native App eine Verbindung herstellen und auf eine API zugreifen kann, müssen Sie sie in Microsoft Entra ID registrieren. Die folgenden Schritte zeigen, wie Sie eine native App registrieren und ihr Zugriff auf die Web-API gewähren können, die Sie über den Anwendungsproxy veröffentlicht haben.

So registrieren Sie die native AppProxyNativeAppSample-App:

  1. Melden Sie sich beim Microsoft Entra Admin Center mindestens mit der Rolle Anwendungsadministrator an.

  2. Navigieren Sie zu Identität>Anwendungen>Unternehmensanwendungen>App-Registrierungen.

  3. Wählen Sie Neue Registrierung aus.

  4. Geben Sie Informationen auf der Seite Anwendung registrieren ein.

    1. Geben Sie AppProxyNativeAppSample unter Name ein.

    2. Wählen Sie unter Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis (Nur Contoso – einzelner Mandant) aus.

    3. Wählen Sie in der Dropdownliste Umleitungs-URL die Option Öffentlicher Client/nativ (mobil und Desktop) aus, und geben Sie dann *https://login.microsoftonline.com/common/oauth2/nativeclient * ein.

    4. Wählen Sie Registrieren aus, und warten Sie, bis die App erfolgreich registriert wurde.

      Registrierung einer neuen Anwendung

Die AppProxyNativeAppSample-Anwendung ist jetzt in Microsoft Entra ID registriert. Gewähren Sie Ihrer nativen Anwendung Zugriff auf die SecretAPI-Web-API:

  1. Wählen Sie auf der Seite App-Registrierungen die App AppProxyNativeAppSample aus.

  2. Wählen Sie auf der Seite AppProxyNativeAppSample im linken Navigationsbereich API-Berechtigungen aus.

  3. Wählen Sie auf der Seite API-Berechtigungen die Option Berechtigung hinzufügen aus.

  4. Wählen Sie auf der ersten Seite API-Berechtigungen anfordern die Registerkarte Von meiner Organisation verwendete APIs aus, und suchen Sie dann nach SecretAPI. Wählen Sie diese Option aus.

  5. Aktivieren Sie auf der nächsten Seite API-Berechtigungen anfordern das Kontrollkästchen neben user_impersonation, und wählen Sie dann Berechtigungen hinzufügen aus.

    Auswählen einer API.

  6. Auf der Seite API-Berechtigungen können Sie Administratorzustimmung für Contoso erteilen auswählen, um zu verhindern, dass Benutzer der App einzeln zustimmen müssen.

Konfigurieren des Codes der nativen App

Der letzte Schritt besteht im Konfigurieren der nativen App. Der Code muss der Form1.cs-Datei in der NativeClient-Beispiel-App hinzugefügt werden. Der Code verwendet die MSAL-Bibliothek, um das Token zu erwerben. Das Token fordert den API-Aufruf an und fügt ihn an den Header in der Anforderung an. Das Token wird als Bearer-Zertifikat angefügt. Weitere Informationen zur MSAL finden Sie unter Hinzufügen von MSAL zu Ihrem Projekt und Hinzufügen des Verweises auf MSAL.

  1. Fügen Sie in Form1.cs dem Code den Namespace using Microsoft.Identity.Client; hinzu.

  2. Bearbeiten Sie den Code für native Anwendungen im Authentifizierungskontext der Microsoft-Authentifizierungsbibliothek (MSAL), sodass er diesen benutzerdefinierten Beispielcode enthält.

Konfigurieren Sie die systemeigene Anwendung, um eine Verbindung mit Microsoft Entra ID herzustellen und die API mithilfe des Anwendungsproxys aufzurufen. Aktualisieren Sie dann die Platzhalterwerte in der App.config-Datei mit NativeClient sample app-Werten von Microsoft Entra ID.

  1. Fügen Sie die Verzeichnis-ID (Mandant) in das <add key="ida:Tenant" value="" />-Feld ein. Sie können diesen Wert (eine GUID) auf der Seite Übersicht einer Ihrer Apps finden und kopieren.

  2. Fügen Sie die Anwendungs-ID (Client) von AppProxyNativeAppSample in das <add key="ida:ClientId" value="" />-Feld ein. Kopieren Sie diesen Wert (eine GUID) auf der Seite Übersicht von AppProxyNativeAppSample im linken Navigationsbereich unter Verwalten.

  3. Fügen Sie den Umleitungs-URI von AppProxyNativeAppSample in das <add key="ida:RedirectUri" value="" />-Feld ein. Kopieren Sie diesen Wert (einen URI) auf der Seite Authentifizierung von AppProxyNativeAppSample im linken Navigationsbereich unter Verwalten. Dieser Schritt ist optional, da MSAL die Methode PublicClientApplicationBuilder.WithDefaultRedirectUri() verwendet, um den empfohlenen Uniform Resource Identifier (URI) einzufügen.

  4. Fügen Sie den Anwendungs-ID-URI von SecretAPI in das <add key="todo:TodoListResourceId" value="" />-Feld ein. Der Wert ist identisch mit todo:TodoListBaseAddress. Der URI-Wert befindet sich auf der Seite API verfügbar machen der SecretAPI-Anwendung. Suchen Sie im linken Navigationsbereich unter Verwalten.

  5. Fügen Sie die Homepage-URL von SecretAPI in das <add key="todo:TodoListBaseAddress" value="" />-Feld ein. Kopieren Sie diesen Wert (eine URL) auf der Seite Branding properties Branding und Eigenschaften von SecretAPI im linken Navigationsbereich unter Verwalten.

Hinweis

Wenn die Projektmappe nicht erstellt wird und der Fehler für eine ungültige ResX-Datei angezeigt wird, erweitern Sie im Projektmappen-Explorer den Eintrag Eigenschaften, klicken Sie mit der rechten Maustaste auf Resources.resx, und wählen Sie dann Code anzeigen aus. Kommentieren Sie die Zeilen 121 bis 123.

Nachdem Sie die Parameter konfiguriert haben, erstellen Sie die native App, und führen Sie sie aus. Wenn Sie die Schaltfläche Anmelden auswählen, können Sie sich anmelden. Die App zeigt dann einen Erfolgsbildschirm an, um zu bestätigen, dass Sie erfolgreich eine Verbindung mit SecretAPI hergestellt haben.

Der Screenshot zeigt die Meldung „SecretAPI erfolgreich“ und die Schaltfläche „OK“.

Nächste Schritte