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 dem Microsoft Entra-Anwendungsproxy und der Microsoft Authentication Library (MSAL) können Ihre nativen Apps 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

Der Begriff "lokal" ist ein veralteter Begriff, der auf die Zeit zurückgeht, in der physische Server am Unternehmensstandort untergebracht waren. 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ömmlicher 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:

Microsoft Entra-Anwendungsproxy-API-Zugriff

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) 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 microsoft Entra ID P1- oder P2-Features wie die mehrstufige Microsoft Entra-Authentifizierung und die maschinelle Lernsicherheit 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 im Lernprogramm: 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 mindestens als Anwendungsadministrator beim Microsoft Entra Admin Center an.

  3. Navigieren Sie zu Entra ID>Enterprise-Apps.

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

  5. Suchen Sie auf der Seite "Microsoft Entra Gallery durchsuchen " den Abschnitt " Lokale Anwendungen ", und wählen Sie " Lokale Anwendung hinzufügen" aus. Die Seite " Eigene lokale Anwendung hinzufügen " 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 bei NameSecretAPI ein.

    2. Geben Sie neben der internen URL die URL ein, die Sie für den Zugriff auf die API aus Ihrem Intranet verwenden.

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

    4. Wählen Sie "Erstellen" aus, und warten Sie, bis die App erstellt wurde.

    API-App hinzufügen

  8. Wählen Sie auf der Seite "Unternehmensanwendungen – Alle Anwendungen " die SecretAPI-App 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. Legen Sie "Sichtbar" auf "Benutzer" am unteren Rand der Seite "Eigenschaften" auf "Nein" fest, und wählen Sie dann "Speichern" aus.

    Für Benutzer nicht 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 " in der linken Navigation aus.

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

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

  4. Suchen Sie auf der Seite "Benutzer und Gruppen " nach Benutzern, die auf die App zugreifen können, und wählen Sie sie aus, einschließlich mindestens selbst. Nachdem Sie alle Benutzer ausgewählt haben, wählen Sie "Auswählen" aus.

    Benutzer auswählen und zuweisen

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

Hinweis

APIs, die integrierte Windows-Authentifizierung verwenden, erfordern möglicherweise zusätzliche Schritte.

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 mindestens als Anwendungsadministrator beim Microsoft Entra Admin Center an.

  2. Navigieren Sie zu Entra ID>Enterprise-Apps>App-Registrierungen.

  3. Wählen Sie "Neue Registrierung" aus.

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

    1. Geben Sie unter "Name" "AppProxyNativeAppSample" ein.

    2. Wählen Sie unter "Unterstützte Kontotypen" nur "Konten" in diesem Organisationsverzeichnis (nur Contoso – Einzelner Mandant) aus.

    3. Wählen Sie unter Umleitungs-URL die Option "Öffentlicher Client/nativer Client" (Mobile 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.

      Neue Anwendungsregistrierung

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 AppProxyNativeAppSample aus.

  2. Wählen Sie auf der Seite "AppProxyNativeAppSample " api-Berechtigungen im linken Navigationsbereich 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 " APIs, die meine Organisation verwendet " aus, und suchen Sie dann nach "SecretAPI", und wählen Sie "SecretAPI" 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.

    Wählen Sie ein A P I aus.

  6. Zurück auf der Seite "API-Berechtigungen " können Sie " Administratorzustimmung erteilen" für Contoso auswählen, um zu verhindern, dass andere 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 abzurufen. 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 zu 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 den Namespace using Microsoft.Identity.Client; dem Code hinzu.

  2. Bearbeiten Sie den systemeigenen Anwendungscode im Authentifizierungskontext der Microsoft-Authentifizierungsbibliothek (MSAL), um dieses angepasste Codebeispiel einzuschließen.

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 des Mandanten 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 AppProxyNativeAppSample-Anwendungs-ID (Client) in das <add key="ida:ClientId" value="" /> Feld ein. Sie können diesen Wert (eine GUID) auf der Seite " Übersicht " von AppProxyNativeAppSample im linken Navigationsbereich unter "Verwalten" suchen und kopieren.

  3. Fügen Sie den AppProxyNativeAppSample-Umleitungs-URI in das <add key="ida:RedirectUri" value="" /> Feld ein. Sie können diesen Wert (einen URI) auf der Seite " Authentifizierung von AppProxyNativeAppSample" im linken Navigationsbereich unter "Verwalten" suchen und kopieren. 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 SecretAPI-Anwendungs-ID-URI 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 URL der SecretAPI-Startseite in das <add key="todo:TodoListBaseAddress" value="" /> Feld ein. Sie können diesen Wert (eine URL) über die Seite "SecretAPI Branding & properties " in der linken Navigation unter "Verwalten" suchen und kopieren.

Hinweis

Wenn die Lösung den Fehler invalid Resx filenicht erstellt und meldet, erweitern Sie im Projektmappen-Explorer 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 mit der App anmelden und dann einen Erfolgsbildschirm anzeigen, um zu bestätigen, dass sie erfolgreich mit der SecretAPI verbunden wurde.

Der Screenshot zeigt eine Nachricht

Nächste Schritte