Schützen einer Daemon-Anwendung

In diesem Artikel wird beschrieben, wie Sie Daemonanwendungen in einer vertrauenswürdigen und sicheren Umgebung in Microsoft Azure Maps hosten.

Beispiele für Daemonanwendungen:

  • Azure-Webaufträge
  • Azure-Funktionen-App
  • Windows-Dienst
  • Ein laufender und zuverlässiger Hintergrunddienst

Anzeigen von Azure Maps-Authentifizierungsdetails

So zeigen Sie Ihre Azure Maps-Kontoauthentifizierungsdetails im Azure-Portal an:

  1. Melden Sie sich beim Azure-Portal an.

  2. Navigieren Sie zum Menü des Azure-Portals. Wählen Sie Alle Ressourcen und dann Ihr Azure Maps-Konto aus.

  3. Wählen Sie im linken Bereich unter Einstellungen die Option Authentifizierung aus.

    Screenshot showing your Azure Maps authentication options in the Azure portal.

Bei der Erstellung des Azure Maps-Kontos werden drei Werte erstellt. Sie werden verwendet, um zwei Authentifizierungsarten in Azure Maps zu unterstützen:

  • Microsoft Entra-Authentifizierung: Die Client ID stellt das Konto dar, das für REST-API-Anforderungen verwendet werden soll. Der Wert Client ID sollte in der Anwendungskonfiguration gespeichert und später abgerufen werden, bevor Azure Maps-HTTP-Anforderungen mit Microsoft Entra-Authentifizierung übermittelt werden.
  • Authentifizierung über gemeinsam verwendete Schlüssel: Der Primärschlüssel (Primary Key) und der Sekundärschlüssel (Secondary Key) werden als Abonnementschlüssel für die Authentifizierung über gemeinsam verwendete Schlüssel verwendet. Bei der Authentifizierung über gemeinsam verwendete Schlüssel wird der durch das Azure Maps-Konto generierte Schlüssel bei jeder Anforderung an Azure Maps übergeben. Es wird empfohlen, die Schlüssel regelmäßig neu zu generieren. Um aktuelle Verbindungen während der Neugenerierung aufrechtzuerhalten, werden zwei Schlüssel bereitgestellt. Ein Schlüssel kann verwendet werden, während der andere neu generiert wird. Bei der Neugenerierung Ihrer Schlüssel müssen Sie alle Anwendungen, die auf dieses Konto zugreifen, so aktualisieren, dass die neuen Schlüssel verwendet werden. Weitere Informationen finden Sie unter Authentifizierung mit Azure Maps.

Wichtig

Für Produktionsanwendungen sollten Microsoft Entra ID und die rollenbasierte Zugriffssteuerung von Azure (Role-Based Access Control, Azure RBAC) implementiert werden. Eine Übersicht über Microsoft Entra-Konzepte finden Sie unter Authentifizierung mit Azure Maps.

Szenario: Authentifizierung mit gemeinsam genutzten Schlüsseln mit Azure Key Vault

Anwendungen, die die Authentifizierung mit gemeinsam genutzten Schlüsseln einsetzen, sollten die Schlüssel in einem sicheren Speicher speichern. In diesem Szenario wird beschrieben, wie Sie Ihren Anwendungsschlüssel sicher als Geheimnis in Azure Key Vault speichern. Anstatt den gemeinsam genutzten Schlüssel in der Anwendungskonfiguration zu speichern, kann ihn die Anwendung als Azure Key Vault-Geheimnis abrufen. Damit Schlüssel einfacher neu generiert werden können, wird empfohlen, dass Anwendungen nur jeweils einen Schlüssel verwenden. Anwendungen können den nicht genutzten Schlüssel dann neu generieren und den neu generierten Schlüssel in Azure Key Vault bereitstellen, während die aktuellen Verbindungen mit einem Schlüssel aufrechterhalten werden. Weitere Informationen zum Konfigurieren von Azure Key Vault finden Sie im Azure Key Vault-Entwicklerleitfaden.

Wichtig

Dieses Szenario greift indirekt über Azure Key Vault auf die Microsoft Entra ID zu. Es wird jedoch empfohlen, die Microsoft Entra-Authentifizierung direkt zu verwenden. Die direkte Authentifizierung mit Microsoft Entra ID vermeidet zusätzliche Komplexität und umgeht die Notwendigkeit, die Authentifizierung mit gemeinsam genutzten Schlüsseln zu verwenden und Key Vault einzurichten.

Dieser Vorgang wird in den folgenden Schritten beschrieben:

  1. Erstellen Sie eine Azure Key Vault-Instanz.
  2. Erstellen Sie einen Microsoft Entra-Dienstprinzipal, indem Sie eine App-Registrierung oder verwaltete Identität erstellen. Der erstellte Dienstprinzipal ist für den Zugriff auf Azure Key Vault verantwortlich.
  3. Weisen Sie dem Dienstprinzipalzugriff auf Azure Key Vault-Geheimnisse die get-Berechtigung zu. Ausführliche Anweisungen zum Festlegen von Berechtigungen finden Sie unter Zuweisen einer Key Vault-Zugriffsrichtlinie über das Azure-Portal.
  4. Weisen Sie den Zugriff auf die set-Berechtigung für Geheimnisse sich selbst als Entwickler zu.
  5. Legen Sie den gemeinsam genutzten Schlüssel in den Key Vault-Geheimnissen fest, und referenzieren Sie die Geheimnis-ID als Konfiguration für die Daemonanwendung.
  6. Entfernen Sie die set-Berechtigung Ihrer Geheimnisse.
  7. Implementieren Sie zum Abrufen des gemeinsam genutzten Schlüsselgeheimnisses aus Azure Key Vault die Microsoft Entra-Authentifizierung in der Daemonanwendung.
  8. Erstellen Sie eine Azure Maps-REST-API-Anforderung mit dem gemeinsam genutzten Schlüssel. Jetzt kann die Daemonanwendung den gemeinsam genutzten Schlüssel aus der Key Vault-Instanz abrufen.

Tipp

Wenn die App in der Azure-Umgebung gehostet wird, wird empfohlen, eine verwaltete Identität zu verwenden, um die Kosten und die Komplexität der Verwaltung eines Authentifizierungsgeheimnisses zu verringern. Informationen zum Einrichten einer verwalteten Identität finden Sie unter Tutorial: Verbinden von Key Vault mit einer Azure-Web-App in .NET mithilfe einer verwalteten Identität.

Szenario: Funktionsweise der rollenbasierten Zugriffssteuerung von Microsoft Entra

Nach der Erstellung eines Azure Maps-Kontos wird der Client ID-Wert von Azure Maps auf der Authentifizierungsdetailseite des Azure-Portals angezeigt. Dieser Wert steht für das Konto, das für REST-API-Anforderungen verwendet werden soll. Dieser Wert sollte in der Anwendungskonfiguration gespeichert und abgerufen werden, bevor HTTP-Anforderungen ausgeführt werden. Das Ziel des Szenarios besteht darin, die Daemonanwendung für die Authentifizierung bei Microsoft Entra ID zu aktivieren und Azure Maps-REST-APIs aufzurufen.

Tipp

Es wird empfohlen, Azure Virtual Machines, Virtual Machine Scale Sets oder App Services als Host zu verwenden, damit Sie die Vorteile der Komponenten von verwalteten Identitäten nutzen können.

Hosten eines Daemon in Azure-Ressourcen

Wenn die Daemonanwendung in Azure-Ressourcen ausgeführt wird, können Sie verwaltete Azure-Identitäten konfigurieren, um von niedrigen Kosten und minimalem Verwaltungsaufwand für Anmeldeinformationen zu profitieren.

Informationen zum Aktivieren des Anwendungszugriffs auf eine verwaltete Identität finden Sie in der Übersicht über verwaltete Identitäten.

Beispiele für Vorteile verwalteter Identitäten:

  • Kryptografieauthentifizierung mit einem öffentlichen Schlüssel des vom Azure-System verwalteten X509-Zertifikats
  • Microsoft Entra-Sicherheit mit X509-Zertifikaten anstelle von geheimen Clientschlüsseln.
  • Azure verwaltet und erneuert alle Zertifikate, die der verwalteten Identitätsressource zugeordnet sind.
  • Einfachere Verwaltung von Anmeldeinformationen, da eine verwaltete Identität keinen geschützten Geheimnisspeicherdienst wie Azure Key Vault erfordert

Hosten eines Daemon in Azure-externen Ressourcen

Verwaltete Identitäten sind nur verfügbar, wenn sie in einer Azure- Umgebung ausgeführt werden. Daher müssen Sie einen Dienstprinzipal über eine Microsoft Entra-Anwendungsregistrierung für die Daemonanwendung konfigurieren.

Erstellen einer neuen Anwendungsregistrierung

Wenn Sie Ihre Anwendungsregistrierung bereits erstellt haben, wechseln Sie zu Zuweisen delegierter API-Berechtigungen.

So fügen Sie eine neue Anwendungsregistrierung hinzu:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie Microsoft Entra ID aus.

  3. Klicken Sie im linken Bereich unter Verwalten auf App-Registrierungen.

  4. Wählen Sie die Registerkarte + Neue Registrierung aus.

    A screenshot showing application registration in Microsoft Entra ID.

  5. Geben Sie einen Namen ein, und wählen Sie einen Supportkontotyp aus.

    Create app registration.

  6. Wählen Sie Registrieren aus.

Zuweisen delegierter API-Berechtigungen

So weisen Sie Azure Maps delegierte API-Berechtigungen zu:

  1. Melden Sie sich beim Azure-Portal an, falls Sie dies noch nicht getan haben.

  2. Wählen Sie Microsoft Entra ID aus.

  3. Klicken Sie im linken Bereich unter Verwalten auf App-Registrierungen.

  4. Wählen Sie Ihre Anwendung aus.

    Select app registrations.

  5. Klicken Sie im linken Bereich unter Verwalten auf API-Berechtigungen.

  6. Wählen Sie Berechtigung hinzufügen aus.

    Add app permission.

  7. Wählen Sie die Registerkarte Von meiner Organisation verwendete APIs aus.

  8. Geben Sie Azure Maps in das Suchfeld ein.

  9. Wählen Sie Azure Maps aus.

    Request app permission.

  10. Aktivieren Sie das Kontrollkästchen Access Azure Maps (Auf Azure Maps zugreifen).

  11. Wählen Sie Berechtigungen hinzufügen aus.

    Select app API permissions.

Erstellen eines geheimen Clientschlüssels oder Konfigurieren eines Zertifikats

Für die Implementierung der server- oder anwendungsbasierten Authentifizierung in Ihrer Anwendung können Sie eine von zwei Optionen auswählen:

  • Hochladen eines öffentlichen Schlüsselzertifikats
  • Erstellen Sie einen geheimen Clientschlüssel.
Hochladen eines öffentlichen Schlüsselzertifikats

So laden Sie ein öffentliches Schlüsselzertifikat hoch:

  1. Klicken Sie im linken Bereich unter Verwalten auf Zertifikate und Geheimnisse.

  2. Wählen Sie Zertifikat hochladen. Upload certificate.

  3. Klicken Sie rechts neben dem Textfeld auf das Dateisymbol.

  4. Wählen Sie eine CRT-, CER- oder PEM-Datei aus, und klicken Sie auf Hinzufügen.

    Upload certificate file.

Erstellen eines Clientgeheimnisses

So erstellen Sie einen geheimen Clientschlüssel:

  1. Klicken Sie im linken Bereich unter Verwalten auf Zertifikate und Geheimnisse.

  2. Wählen Sie + Neuer geheimer Clientschlüssel aus.

    New client secret.

  3. Geben Sie eine Beschreibung für den geheimen Clientschlüssel ein.

  4. Klicken Sie auf Hinzufügen.

    Add new client secret.

  5. Kopieren Sie das Geheimnis, und speichern Sie es sicher in einem Dienst wie Azure Key Vault. Verwenden Sie das Geheimnis aus dem Abschnitt Anfordern eines Tokens mit einer verwalteten Identität dieses Artikels.

    Copy client secret.

    Wichtig

    Anweisungen zum sicheren Speichern eines Zertifikats oder Geheimnisses finden Sie im Azure Key Vault-Entwicklerleitfaden. Sie verwenden diesen geheimen Schlüssel, um Token von der Microsoft Entra ID abzurufen.

Gewähren von rollenbasierter Zugriffssteuerung für Benutzer in Azure Maps

Sie können die rollenbasierte Zugriffssteuerung in Azure (Azure RBAC) verwenden, indem Sie mindestens einer Azure Maps-Rollendefinition eine Microsoft Entra-Gruppe oder einen Sicherheitsprinzipal zuweisen.

Die verfügbaren Azure-Rollendefinitionen für Azure Maps finden Sie unter Anzeigen der integrierten Azure Maps-Rollendefinitionen.

Ausführliche Schritte zum Zuweisen einer verfügbaren Azure Maps-Rolle zur erstellten verwalteten Identität oder zum Dienstprinzipal finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.

Informationen zum effizienten Verwalten des Zugriffs auf Azure Maps-Apps und -Ressourcen für eine Vielzahl von Benutzer*innen finden Sie unter Verwalten des Zugriffs auf Apps und Ressourcen mithilfe von Microsoft Entra-Gruppen.

Wichtig

Damit Benutzer*innen sich bei einer Anwendung authentifizieren können, müssen sie zuerst in Microsoft Entra ID erstellt werden. Weitere Informationen finden Sie unter Hinzufügen oder Löschen von Benutzer*innen mithilfe von Microsoft Entra.

Informationen zur effektiven Verwaltung eines großen Verzeichnisses für Benutzer*innen finden Sie in der Dokumentation mit grundlegenden Informationen zu Microsoft Entra ID.

Warnung

Integrierte Azure Maps-Rollendefinitionen bieten einen sehr umfangreichen Autorisierungszugriff auf viele Azure Maps-REST-APIs. Informationen, wie Sie den Zugriff auf APIs auf ein Mindestmaß beschränken, finden Sie unter Erstellen einer benutzerdefinierten Rollendefinition und Zuweisen der systemseitig zugewiesenen Identität zur benutzerdefinierten Rollendefinition. Dadurch wird die geringste Berechtigung aktiviert, die für den Zugriff der Anwendung auf Azure Maps erforderlich ist.

Anfordern eines Tokens mit einer verwalteten Identität

Nachdem eine verwaltete Identität für die Hostressource konfiguriert wurde, können Sie mit dem Azure SDK oder der REST-API ein Token für Azure Maps abrufen. Weitere Informationen hierzu finden Sie unter Abrufen eines Zugriffstokens.

Anforderungstoken mit Anwendungsregistrierung

Nachdem Sie Ihre App registriert und mit Azure Maps verknüpft haben, müssen Sie ein Zugriffstoken anfordern.

So fordern Sie das Zugriffstoken an:

  1. Melden Sie sich beim Azure-Portal an, falls Sie dies noch nicht getan haben.

  2. Wählen Sie Microsoft Entra ID aus.

  3. Klicken Sie im linken Bereich unter Verwalten auf App-Registrierungen.

  4. Wählen Sie Ihre Anwendung aus.

  5. Daraufhin sollte die Übersicht angezeigt werden. Kopieren Sie die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant).

    Copy token parameters.

In diesem Artikel wird die Anwendung Postman zum Erstellung der Tokenanforderung verwendet. Sie können jedoch auch eine andere API-Entwicklungsumgebung einsetzen.

  1. Klicken Sie in der Postman-App auf New (Neu).

  2. Klicken Sie im Fenster Create New (Neu erstellen) auf HTTP Request (HTTP-Anforderung).

  3. Geben Sie einen Anforderungsnamen (Request name) für die Anforderung ein, z. B. POST Token Request (POST-Tokenanforderung).

  4. Wählen Sie als HTTP-Methode POST aus.

  5. Geben Sie die folgende URL in die Adressleiste ein (ersetzen Sie {Tenant-ID} durch die Verzeichnis-ID (Mandant), {Client-ID} durch die Anwendungs-ID (Client) und {Client-Secret} durch Ihren geheimen Clientschlüssel):

    https://login.microsoftonline.com/{Tenant-ID}/oauth2/v2.0/token?response_type=token&grant_type=client_credentials&client_id={Client-ID}&client_secret={Client-Secret}&scope=https://atlas.microsoft.com/.default
    
  6. Wählen Sie Senden aus.

  7. Die folgende JSON-Antwort sollte angezeigt werden:

{
    "token_type": "Bearer",
    "expires_in": 86399,
    "ext_expires_in": 86399,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFq..."
}

Weitere Informationen zum Authentifizierungsflow finden Sie unter OAuth 2.0-Flow für Clientanmeldeinformationen auf Microsoft Identity Platform.

Nächste Schritte

Ausführlichere Beispiele:

Suchen der API-Nutzungsmetriken für Ihr Azure Maps-Konto:

Sehen Sie sich Beispiele an, die zeigen, wie Sie Microsoft Entra ID in Azure Maps integrieren: