Ich möchte eine C# Azure-Funktion mit HTTP-Trigger erstellen. Ich möchte es mit einem API Key sichern, einen separaten Schlüssel pro Kunde zur Verfügung stellen, und die Funktion sollte kundenspezifische Daten liefern, also muss sie identifizieren, wer sie anruft.Konfigurieren von kundenspezifischen API-Schlüsseln für Azure-Funktionen
Kann ich Azure-Funktions-API-Schlüssel verwenden, um den Kunden zu identifizieren, z. den Namen des Schlüssels erhalten, der übergeben wurde? Oder kann man innerhalb der azure-Funktion nicht wissen, mit welchem Schlüssel die Anfrage authentifiziert wurde?
Wenn es eine Methode wie GetApiKeyName()
gäbe, könnte ich den Schlüsselnamen gegen eine Liste von Kunden in meiner Datenbank überprüfen und verschiedene Daten zurückgeben, die auf dem Aufruf der Funktion basieren. z.B. Stellen Sie sich vor, ich habe ein Verkaufs-Tracking-System und meine Funktion ist /api/GetMonthlySales
. Wenn Kunde 1 die Funktion mit seinem API-Schlüssel aufruft, sollten sie ihre monatlichen Verkäufe erhalten und wenn Kunde 2 sie anruft, erhalten sie einen anderen Betrag.
Wenn dies nicht möglich ist, bedeutet das, dass ich jedem Kunden zusätzliche Authentifizierungsdaten geben muss, damit diese an jeden Funktionsaufruf übergeben werden, z. eine Kundennummer und einen geheimen Schlüssel. Aber das schlägt den Zweck der Azure-Funktionen API-Schlüssel, richtig?
Ein ähnliches Szenario wäre, wenn ich Kunden berechnen möchte, wenn sie meine Funktion aufrufen. Wie identifiziere ich, welcher Kunde meine Funktion anruft?
Für jetzt entschied ich mich, die Azure-Authentifizierung zu verwenden * und * diese gleichen API-Schlüssel in die db zu legen. Dann weiß ich, dass Azure dafür sorgt, dass nur jemand mit einem gültigen Schlüssel die Funktion aufruft, und ich schaue nach, wer das ist, indem ich den querystring 'code' -Parameter ergreife und ihn in der DB finde. Um neue Kunden bereitzustellen, muss ich sie beide zur Azure-Funktion auth hinzufügen und sie dann zu meiner DB hinzufügen. Hoffentlich wird es in Zukunft Unterstützung dafür geben, aber es ist nicht so schwerfällig, wenn Sie nur wenige Kunden haben. – Rory