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:
Melden Sie sich beim Azure-Portal an.
Navigieren Sie zum Menü des Azure-Portals. Wählen Sie Alle Ressourcen und dann Ihr Azure Maps-Konto aus.
Wählen Sie im linken Bereich unter Einstellungen die Option Authentifizierung aus.
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 WertClient 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:
- Erstellen Sie eine Azure Key Vault-Instanz.
- 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.
- 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. - Weisen Sie den Zugriff auf die
set
-Berechtigung für Geheimnisse sich selbst als Entwickler zu. - 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.
- Entfernen Sie die
set
-Berechtigung Ihrer Geheimnisse. - Implementieren Sie zum Abrufen des gemeinsam genutzten Schlüsselgeheimnisses aus Azure Key Vault die Microsoft Entra-Authentifizierung in der Daemonanwendung.
- 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:
Melden Sie sich beim Azure-Portal an.
Wählen Sie Microsoft Entra ID aus.
Klicken Sie im linken Bereich unter Verwalten auf App-Registrierungen.
Wählen Sie die Registerkarte + Neue Registrierung aus.
Geben Sie einen Namen ein, und wählen Sie einen Supportkontotyp aus.
Wählen Sie Registrieren.
Zuweisen delegierter API-Berechtigungen
So weisen Sie Azure Maps delegierte API-Berechtigungen zu:
Melden Sie sich beim Azure-Portal an, falls Sie dies noch nicht getan haben.
Wählen Sie Microsoft Entra ID aus.
Klicken Sie im linken Bereich unter Verwalten auf App-Registrierungen.
Wählen Sie Ihre Anwendung aus.
Klicken Sie im linken Bereich unter Verwalten auf API-Berechtigungen.
Wählen Sie Berechtigung hinzufügen aus.
Wählen Sie die Registerkarte Von meiner Organisation verwendete APIs aus.
Geben Sie Azure Maps in das Suchfeld ein.
Wählen Sie Azure Maps aus.
Aktivieren Sie das Kontrollkästchen Access Azure Maps (Auf Azure Maps zugreifen).
Wählen Sie Berechtigungen hinzufügen aus.
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:
Klicken Sie im linken Bereich unter Verwalten auf Zertifikate und Geheimnisse.
Wählen Sie Zertifikat hochladen.
Klicken Sie rechts neben dem Textfeld auf das Dateisymbol.
Wählen Sie eine CRT-, CER- oder PEM-Datei aus, und klicken Sie auf Hinzufügen.
Erstellen eines Clientgeheimnisses
So erstellen Sie einen geheimen Clientschlüssel:
Klicken Sie im linken Bereich unter Verwalten auf Zertifikate und Geheimnisse.
Wählen Sie + Neuer geheimer Clientschlüssel aus.
Geben Sie eine Beschreibung für den geheimen Clientschlüssel ein.
Wählen Sie Hinzufügen.
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.
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:
Melden Sie sich beim Azure-Portal an, falls Sie dies noch nicht getan haben.
Wählen Sie Microsoft Entra ID aus.
Klicken Sie im linken Bereich unter Verwalten auf App-Registrierungen.
Wählen Sie Ihre Anwendung aus.
Daraufhin sollte die Übersicht angezeigt werden. Kopieren Sie die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant).
In diesem Artikel wird die Anwendung bruno zum Erstellung der Tokenanforderung verwendet. Sie können jedoch auch eine andere API-Entwicklungsumgebung nutzen.
Öffnen Sie die bruno-App, und wählen Sie NEW REQUEST aus, um die Anforderung zu erstellen.
Legen Sie im Fenster NEW REQUEST den Typ auf HTTP fest. Geben Sie einen Namen für die Anforderung ein, z. B. POST-Tokenanforderung.
Wählen Sie die HTTP-Methode GET in der Dropdownliste URL aus, und geben Sie dann die folgende URL ein:
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
Hinweis
Ersetzen Sie:
{Tenant-ID}
mit der Verzeichnis-ID (Mandant){Client-ID}
mit der Anwendungs-ID (Client){Client-Secret}
mit Ihrem geheimen Clientschlüssel
Wählen Sie die Schaltfläche „Ausführen“ aus.
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: