Schützen einer Webanwendung mit Benutzeranmeldung

Der folgende Leitfaden bezieht sich auf eine Anwendung, die auf Webservern gehostet wird, mehrere Geschäftsszenarien verwaltet und auf Webservern bereitgestellt wird. Die Anwendung hat die Anforderung, geschützte Ressourcen bereitzustellen, die nur für Microsoft Entra-Benutzer geschützt sind. Das Ziel des Szenarios besteht darin, die Webanwendung für die Authentifizierung bei Microsoft Entra ID zu aktivieren und Azure Maps-REST-APIs im Auftrag des Benutzers aufzurufen.

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.

Erstellen einer Anwendungsregistrierung in Microsoft Entra ID

Sie müssen die Webanwendung in Microsoft Entra ID erstellen, damit Benutzer sich anmelden können. Diese Webanwendung delegiert den Benutzerzugriff dann an Azure Maps-REST-APIs.

  1. Wählen Sie im Azure-Portal in der Liste der Azure-Dienste die Optionen Microsoft Entra ID>App-Registrierungen>Neue Registrierung aus.

    A screenshot showing application registration in Microsoft Entra ID.

  2. Geben Sie einen Namen ein, und wählen Sie einen Supportkontotyp aus. Geben Sie einen Umleitungs-URI an, der die URL darstellt, für die Microsoft Entra ID das Token ausstellt. Dies ist die URL, unter der das Kartensteuerelement gehostet wird. Weitere Informationen finden Sie im Microsoft Entra ID-Szenario: Web-App, die Benutzer anmeldet. Führen Sie die angegebenen Schritte im Microsoft Entra-Szenario aus.

  3. Sobald die Registrierung der Anwendung abgeschlossen ist, vergewissern Sie sich, dass Benutzer sich bei der Anwendung anmelden können. Wenn die Anmeldung funktioniert, kann der Anwendung ein delegierter Zugriff auf die REST-APIs von Azure Maps erteilt werden.

  4. Zum Zuweisen delegierter API-Berechtigungen an Azure Maps wechseln Sie zur Anwendung, und wählen Sie API-Berechtigungen>Berechtigung hinzufügen aus. Wählen Sie Azure Maps in der Liste Von meiner Organisation verwendete APIs aus.

    A screenshot showing add app API permissions.

  5. Aktivieren Sie das Kontrollkästchen neben Auf Azure Maps zugreifen, und wählen Sie dann Berechtigungen hinzufügen aus.

    A screenshot showing select app API permissions.

  6. Aktivieren Sie die Webanwendung für das Aufrufen der REST-APIs von Azure Maps, indem Sie die App-Registrierung mit einem Anwendungsgeheimnis konfigurieren. Detaillierte Anweisungen finden Sie unter Eine Web-App, die Web-APIs aufruft: App-Registrierung. Ein Geheimnis ist erforderlich, um sich bei Microsoft Entra im Namen des Benutzers zu authentifizieren. Das Registrierungszertifikat oder Geheimnis der App sollte in einem sicheren Speicher aufbewahrt werden, damit die Web-App zur Authentifizierung bei Microsoft Entra ID abgerufen werden kann.

    • Wenn für die Anwendung bereits eine Microsoft Entra-App-Registrierung und ein Geheimnis konfiguriert wurden, kann dieser Schritt übersprungen werden.

    Tipp

    Wenn die Anwendung in einer Azure-Umgebung gehostet wird, empfehlen wir, verwaltete Identitäten für Azure-Ressourcen und eine Azure Key Vault-Instanz zu verwenden, um auf Geheimnisse zuzugreifen. Dies geschieht durch Beziehen eines Zugriffstokens für den Zugriff auf Geheimnisse oder Zertifikate in Azure Key Vault. Informationen zum Herstellen einer Verbindung mit Azure Key Vault zum Abrufen von Geheimnissen finden Sie im Tutorial zum Herstellen einer Verbindung mithilfe einer verwalteten Identität.

  7. Implementieren Sie einen sicheren Token-Endpunkt für das Azure Maps Web SDK, um auf ein Token zuzugreifen.

    • Ein Beispiel eines Tokencontrollers finden Sie unter Azure Maps: Microsoft Entra ID-Beispiele.
    • Informationen zu einer Nicht-AspNetCore- oder anderen Implementierung finden Sie unter Beziehen des Tokens für die App in der Microsoft Entra-Dokumentation.
    • Der geschützte Token-Endpunkt ist dafür zuständig, dem authentifizierten und autorisierten Benutzer ein Zugriffstoken für den Aufruf der REST-APIs von Azure Maps zurückzugeben.
  8. Informationen zum Konfigurieren der rollenbasierten Zugriffssteuerung in Azure (Azure RBAC) für Benutzer oder Gruppen finden Sie unter Erteilen von rollenbasiertem Zugriff für Benutzer.

  9. Konfigurieren Sie die Webanwendungsseite mit dem Azure Maps Web SDK für den Zugriff auf den sicheren Token-Endpunkt.

var map = new atlas.Map("map", {
        center: [-122.33, 47.64],
        zoom: 12,
        language: "en-US",
        authOptions: {
            authType: "anonymous",
            clientId: "<insert>",  // azure map account client id
            getToken: function (resolve, reject, map) {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", "/api/token", true); // the url path maps to the token endpoint.
                xhttp.onreadystatechange = function () {
                    if (this.readyState === 4 && this.status === 200) {
                        resolve(this.responseText);
                    } else if (this.status !== 200) {
                        reject(this.responseText);
                    }
                };

                xhttp.send();
            }
        }
    });
    map.events.add("tokenacquired", function () {
        console.log("token acquired");
    });
    map.events.add("error", function (err) {
        console.log(JSON.stringify(err.error));
    });

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.

Nächste Schritte

Weitere Informationen zum Webanwendungsszenario:

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: