Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält schrittweise Anleitungen für Entwickler und Administratoren zum Einrichten der sicheren Anwendungsauthentifizierung und des Zugriffs auf Microsoft Planetary Computer Pro. Durch die Anwendung von Microsoft Entra ID und verwalteten Identitäten können Anwendungen nahtlos authentifiziert werden, ohne Anmeldeinformationen zu verwalten, um eine sichere Interaktion mit Planetary Computer Pro-Ressourcen sicherzustellen. Unabhängig davon, ob Ihre Anwendung in Azure oder anderen Umgebungen ausgeführt wird, beschreibt dieses Handbuch die erforderlichen Konfigurationen, einschließlich rollenbasierter Zugriffssteuerung (RBAC) und Tokenakquisition, um den sicheren Zugriff zu ermöglichen.
Hinweis
Für Anwendungen, die Azure AD B2C oder Microsoft Entra External ID unterstützen, die Features wie Social Identity Providers unterstützen, müssen die Anwendungen diese Identitätslösungen weiterhin zum Proxyauthentifizierungsverkehr verwenden, da Planetary Computer Pro keine Alternativen zur Microsoft Entra ID-Authentifizierung unterstützt.
Authentifizierungsoptionen und Empfehlungen
In der folgenden Tabelle wird der empfohlene Authentifizierungsansatz basierend darauf zusammengefasst, wo Ihre Anwendung ausgeführt wird und wie sie auf Ressourcen zugreift.
| Anwendungshostingumgebung | Zugriffstyp erforderlich | Empfohlener Identitätstyp | Explanation |
|---|---|---|---|
| Ausführen auf Azure (VM, App Service, Funktionen, Container-Apps usw.) | App-Only (Anwendung agiert eigenständig) | Verwaltete Identität (vom Benutzer zugewiesen empfohlen) | Sicherheit und Verwaltbarkeit: Beseitigt die Notwendigkeit, Anmeldeinformationen (geheime Schlüssel oder Zertifikate) in Code oder Konfiguration zu speichern und zu verwalten. Azure verwaltet den Wechsel von Anmeldeinformationen automatisch. Vom Benutzer zugewiesen wird für die Gemeinsame Nutzung über mehrere Ressourcen hinweg bevorzugt. |
| Ausführen auf Azure (VM, App Service, Funktionen, Container-Apps usw.) | Delegiert (Anwendung handelt im Namen eines Benutzers) | Verwaltete Identität (vom Benutzer zugewiesen empfohlen) | Nutzt die Azure-Integration: Kombiniert die Sicherheitsvorteile von Managed Identity für die Anwendung selbst mit standardmäßigen Benutzerauthentifizierungsflüssen. Vereinfacht die Infrastruktureinrichtung in Azure. |
| Ausführen außerhalb von Azure (lokal, andere Cloud, Entwicklercomputer) | App-Only (Anwendung agiert eigenständig) | Dienstprinzipal | Standard für externe Apps: Die etablierte Methode für Nicht-Azure-Anwendungen zur Authentifizierung mit der Microsoft Entra-ID. Erfordert die sichere Verwaltung von Anmeldeinformationen (geheimen Schlüsseln oder Zertifikaten). |
| Ausführen außerhalb von Azure (lokal, andere Cloud, Entwicklercomputer) | Delegiert (Anwendung handelt im Namen eines Benutzers) | Dienstprinzipal | Standard für externe Apps: Ermöglicht standardmäßige OAuth 2.0-Flüsse für die Benutzeranmeldung und zustimmung für Anwendungen außerhalb von Azure, wobei die registrierte Identität der Anwendung in der Entra-ID verwendet wird. |
| Ausführen außerhalb von Azure (Alternative) | Nur App oder delegiert | Verwaltete Identität | Bietet Azure-Vorteile: Indem sie die Anwendung in einem Azure-Computedienst (z. B. einer VM oder Container-App) hosten, kann sie die erweiterte Sicherheit und Verwaltbarkeit verwalteter Identitäten verwenden und die Verwaltung von Anmeldeinformationen vermeiden, obwohl der Ursprung möglicherweise nicht als Azure gilt. |
Voraussetzungen
- Azure-Konto mit einem aktiven Abonnement (kostenloses Azure-Konto erstellen)
- Eine vorhandene GeoCatalog-Ressource.
Anwendungen, die auf Azure ausgeführt werden
Für Anwendungen, die in Azure ausgeführt werden, empfehlen wir, einen Typ von Microsoft Entra Identity zu erstellen, der als vom Benutzer zugewiesene verwaltete Identität bezeichnet wird, um auf geoCatalog-Ressource zuzugreifen. Die Anwendungen können die verwalteten Identitäten verwenden, um Microsoft Entra-Token zu erhalten (siehe Abschnitt "Zugriffstoken erwerben" für den Zugriff auf Microsoft Planetary Computer Pro , ohne anmeldeinformationen verwalten zu müssen. Weitere Informationen zu verwalteten Identitäten und zu welchem Typ Sie auswählen möchten, finden Sie unter "Was sind verwaltete Identitäten für Azure-Ressourcen". Um von Benutzern zugewiesene verwaltete Identitäten für Ihre Anwendung zu erstellen, die auf Azure ausgeführt wird, befolgen Sie die Verwendung verwalteter Identitäten für App Service und Azure Functions.
Anwendungen, die nicht auf Azure ausgeführt werden
Für Anwendungen, die nicht auf Azure ausgeführt werden, z. B. lokal oder auf anderen Cloudanbietern gehostet, empfehlen wir, die Anwendung im Microsoft Entra Admin Center zu registrieren, einschließlich eines Umleitungs-URI zum Empfangen von Sicherheitstoken, um eine Vertrauensstellung zwischen Ihrer App und Der Microsoft Identity Platform einzurichten. Durch die Registrierung der App in Microsoft Entra wird automatisch ein Dienstprinzipal für die App erstellt, den Sie später RBAC-Rollen zuweisen können. Wenn Ihre Anwendung über eine Einstellung zum Konfigurieren der Microsoft Entra ID-Authentifizierung verfügt, können Sie dazu die "Anwendungs-ID (Client-ID) der registrierten App" und "Verzeichnis-ID (Mandant)" verwenden.
Wenn Sie die Anwendung in Microsoft Entra nicht wie empfohlen registrieren können, haben Sie eine weitere Möglichkeit, die Anwendung in einer Azure-VM- oder Container-App auszuführen. Sie können eine vom Benutzer zugewiesene verwaltete Identität erstellen und sie der Vm-App (VM) oder der Container-App zuweisen, wie hier beschrieben : Konfigurieren verwalteter Identitäten auf virtuellen Azure-Computern (VMs) und verwalteten Identitäten in Azure Container-Apps. Die Anwendung kann sich mit der verwalteten Identität anmelden, um auf die GeoCatalog-Ressource zuzugreifen. Wenn die Anwendung z. B. innerhalb einer VM mit einer vom Benutzer zugewiesenen verwalteten Identität ausgeführt werden soll, können Sie Folgendes verwenden:
!az login --identity --username <client_id|object_id|resource_id>
Sie finden die Client-ID, Objekt-ID oder Ressourcen-ID der verwalteten Identität im Azure-Portal. Als Alternative zur CLI befindet sich der Python-Beispielcode im Abschnitt "Zugriffstoken erwerben" für den Zugriff auf Microsoft Planetary Computer Pro.
azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>)
Nachdem Sie eine vom Benutzer zugewiesene verwaltete Identität oder einen Dienstprinzipal für Ihre Anwendung wie zuvor beschrieben erstellt haben, müssen Sie den Typ des Anwendungszugriffsszenarios festlegen: Nur-App-Zugriff, der nur als eigene Identität oder delegierten Zugriff der Anwendung fungiert und im Namen eines angemeldeten Benutzers fungiert.
Nur App-Zugriff
In diesem Zugriffsszenario agiert die Anwendung eigenständig und ohne einen angemeldeten Benutzer, als Standardverhalten. Sie können mit dem Abschnitt Microsoft Planetary Computer Pro RBAC-Konfiguration für Anwendungen fortfahren, um der Anwendung die entsprechenden Rollen zuzuweisen.
Delegierter Zugriff
In diesem Zugriffsszenario hat sich ein Benutzer bei einer Clientanwendung angemeldet. Die Clientanwendung greift im Namen des Benutzers auf die Ressource zu. Sie müssen sicherstellen, dass den Benutzern der Anwendung die richtigen RBAC-Rollen zugewiesen werden, wie im Abschnitt " Erstellen und Verwalten von Benutzern" beschrieben. Außerdem müssen Sie die API-Berechtigungen der Anwendung mit delegierten Berechtigungen konfigurieren. Gehen Sie dazu wie folgt vor:
- Melden Sie sich beim Microsoft Entra Admin Center an
- Navigieren Sie zu Identität>Anwendungen>App-Registrierungen, und wählen Sie dann Ihre Clientanwendung aus.
- Wählen Sie unter "Verwalten" API-Berechtigungen aus.
- Wählen Sie "Berechtigung hinzufügen" aus.
- Auswählen der Registerkarte "APIs, die meine Organisation verwendet "
- Geben Sie azure Orbital Planetary Computer in das Suchfeld ein.
- Wählen Sie den übereinstimmenden Eintrag aus (die App-ID sollte 6388acc4-795e-43a9-a320-33075c1eb83b sein). Es wird als Azure Orbital Microsoft Planetary Computer Pro angezeigt.
- Wählen Sie im Feld "Delegierte Berechtigungen" aus . Aktivieren Sie das Kontrollkästchen neben user_impersonation.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie den Link „Administratoreinwilligung zuweisen“ aus (sofern Sie im Mandanten für diese Berechtigung eine Administratoreinwilligung erteilen möchten) aus.
Das delegierte Authentifizierungsmuster wird auch beim Herstellen einer Verbindung von QGIS verwendet.
Microsoft Planetary Computer Pro RBAC-Konfiguration für Anwendungen
Nachdem Sie eine verwaltete Identität für eine Anwendung erstellt haben, die auf Azure ausgeführt wird, oder einen Dienstprinzipal für eine Anwendung, die nicht auf Azure ausgeführt, aber in Microsoft Entra registriert ist, müssen Sie den Identitäten über die RBAC-Konfiguration die richtigen Berechtigungen für den Zugriff auf die GeoCatalog-Ressource erteilen.
Nachfolgend finden Sie ein ausführliches Beispiel zum Konfigurieren der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC), um der benutzerseitig zugewiesenen verwalteten Identität der Anwendung die Rolle „GeoCatalog-Administrator“ zuzuweisen. Sie können die gleichen Schritte im Azure-Portal ausführen, um RBAC für den Dienstprinzipal einer Anwendung zu konfigurieren.
Navigieren Sie im Azure-Portal auf der linken Seite zur Registerkarte „IAM“ (Identity & Access Management) der Microsoft Planetary Computer Pro-Ressource.
Wählen Sie Rollenzuweisung hinzufügen und wählen Sie dann GeoCatalog-Administrator unter "Aufgabenbereich Rollen" aus.
Wählen Sie die Schaltfläche Weiter und dann das Optionsfeld Verwaltete Identität aus.
Wählen Sie unter "Mitglieder auswählen" und dann das Abonnement und die vom Benutzer zugewiesene verwaltete Identität im Bereich "Verwaltete Identitäten auswählen " auf der rechten Seite aus.
Wählen Sie " Weiter" aus, um die Informationen zu überprüfen und die Überprüfung abzuschließen + Zuweisen.
Abrufen eines Zugriffstokens für den Zugriff auf Microsoft Planetary Computer Pro
Nachdem Sie die rollenbasierte Zugriffssteuerung so konfiguriert haben, dass Ihre Anwendung über die erforderlichen Berechtigungen verfügt, muss die Anwendung ein Zugriffstoken für die Authentifizierung von Anforderungen abrufen. Python-Beispielcode unten:
import azure.identity
credential = azure.identity.DefaultAzureCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com/")
headers = {"Authorization": f"Bearer {token.token}"}
Hinweis
Wenn Ihrer Anwendung mehrere verwaltete Identitäten zugewiesen sind, müssen Sie explizit das richtige übergeben: azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>) Alternativ können Sie Umgebungsvariablen Ihrer Anwendung im Azure-Portal konfigurieren, um "AZURE_CLIENT_ID" mit der Client-ID der richtigen verwalteten Identität hinzuzufügen.
Hinweis
Sie können abhängig vom erwarteten Benutzerauthentifizierungsverhalten .default oder user_impersonation als Geltungsbereich für credential.get_token() hinzufügen.
Hinweis
Wenn Es sich bei Ihrer Anwendung um eine Web-App handelt, stellen Sie sicher, dass Sie bei jeder Änderung ihrer Code- oder App-Konfiguration den Webbrowser schließen und erneut öffnen, um zu vermeiden, dass zwischengespeicherte Anmeldeinformationen verwendet werden.
Weitere Informationen zu Zugriffstoken finden Sie in der Microsoft Identity Platform . Wenn Sie Zugriffstoken durch einen Aufruf von DefaultAzureCredentials() abrufen, werden die abgerufenen Token von der Anmeldeinformationsinstanz zwischengespeichert. Die Lebensdauer des Tokens und deren Aktualisierung werden automatisch verwaltet. Sie können eine Instanz von DefaultAzureCredential weitergeben und GetToken() oder GetTokenAsync() direkt aufrufen, kurz bevor Sie ein Token benötigen, damit Sie immer ein Token erhalten, das nicht abgelaufen ist. Wenn Sie eine Sitzung lange offen halten müssen, können Sie den Tokenablauf in einem Fehlerhandler behandeln, um die Ausnahme abzufangen und ein neues Token abzurufen.
Wenn Sie DefaultAzureCredentials() nicht verwenden können und stattdessen Methoden wie AzureCliCredential() verwenden, um Zugriffstoken zu erwerben, müssen Sie die Lebensdauer und die Aktualisierung des Tokens verwalten. Weitere Informationen finden Sie unter Konfigurierbare Tokenlebensdauern in der Microsoft Identity Platform und Aktualisierungstoken in der Microsoft Identity Platform .