Schnellstart: Anfordern eines SAS-Tokens für STAC-Sammlung

In dieser Schnellstartanleitung rufen Sie ein SAS-Token auf Sammlungsebene ab, das von anderen Anwendungen für den Zugriff auf STAC-Sammlungsressourcen in einem verwalteten Speicherkonto in einer Microsoft Planetary Computer Pro GeoCatalog-Ressource verwendet werden kann.

In einigen Anwendungen müssen Sie ein SAS-Token auf Sammlungsebene übergeben, um authentifizierten Zugriff auf Objekte zu ermöglichen, die in einem verwalteten Speicherkonto gespeichert sind.

Beispielsweise stellt ein SAS-Token beim Abrufen von Ressourcen auf Sammlungsebene , wie z. B. Zarr-Daten, temporäre Berechtigungen für den Zugriff auf die Daten direkt aus dem BLOB-Speicher bereit.

In diesem Beispiel wird gezeigt, wie Sie ein SAS-Token auf Sammlungsebene von der /sas/token/{collection_id} Route anfordern.

1. Abrufen eines Zugriffstokens für die Autorisierung für einen GeoCatalog

from datetime import datetime, timedelta
import requests
from azure.identity import AzureCliCredential

# Resource ID for Planetary Computer Pro Geocatalog
MPCPRO_APP_ID = "https://geocatalog.spatio.azure.com"

_access_token = None

def getBearerToken():
    global _access_token
    if not _access_token or datetime.fromtimestamp(_access_token.expires_on) < datetime.now() + timedelta(minutes=5):
        credential = AzureCliCredential()
        _access_token = credential.get_token(f"{MPCPRO_APP_ID}/.default")

    return {"Authorization": f"Bearer {_access_token.token}"}

2. Anfordern eines SAS-Tokens für eine STAC-Sammlung

Greifen Sie auf den Endpunkt zu, der Ihr temporäres SAS-Token auf STAC-Sammlungsebene zurückgibt.

geocatalog_url = "<your-geocatalog-url>"
collection_id = "<your-collection-id>"

response = requests.get(
        f"{geocatalog_url}/sas/token/{collection_id}",
        headers=getBearerToken(),
        params={"api-version": "2025-04-30-preview"}
    )

sas_token = response.json()["token"]

print(f"SAS Token: {sas_token}")

Die sas_token Variable enthält die Tokenzeichenfolge, die Sie an Anwendungen übergeben können, die Ressourcen auf Sammlungsebene abrufen müssen.