Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Předchozí část: Požadavky na ověřování
V ukázkovém scénáři hlavní aplikace využívá rozhraní API třetí strany, které je zabezpečené pomocí přístupového klíče. Tato část ukazuje rozhraní API využívající Azure Functions, ale stejné principy platí bez ohledu na to, jak nebo kde je rozhraní API implementované – ať už hostujete aplikaci na jiném poskytovateli cloudu nebo na tradičním webovém serveru.
Klíčovým aspektem je, že všechny požadavky klientů na chráněný koncový bod musí obsahovat přístupový klíč, který musí aplikace bezpečně spravovat. Tato část obsahuje přehled o tom, jak implementovat takové rozhraní API pomocí Azure Functions, ale principy můžete přizpůsobit vašim konkrétním potřebám.
Příklad implementace rozhraní API třetích stran
Příklad rozhraní API třetích stran je jednoduchý koncový bod, který vrátí náhodné číslo v rozsahu 1 až 999. Rozhraní API je zabezpečené pomocí přístupového klíče, který musíte zadat v požadavku pro přístup ke koncovému bodu. Pro demonstrační účely se toto rozhraní API nasadí do koncového bodu https://msdocs-example-api.azurewebsites.net/api/RandomNumber. Pokud ale chcete volat rozhraní API, musíte zadat přístupový klíč d0c5atM1cr0s0ft buď v parametru ?code= adresy URL, nebo ve 'x-functions-key' vlastnosti hlavičky HTTP. Například po nasazení aplikace a rozhraní API zkuste tuto adresu URL v prohlížeči nebo curl: https://msdocs-example-api.azurewebsites.net/api/RandomNumber?code=d0c5atM1cr0s0ft.
Pokud je přístupový klíč platný, vrátí koncový bod odpověď JSON, která obsahuje jednu vlastnost "value", což je číslo od 1 do 999, například {"value": 959}.
Koncový bod se implementuje v Pythonu a nasadí se do Azure Functions. Kód je následující:
import logging
import random
import json
import azure.functions as func
def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('RandomNumber invoked via HTTP trigger.')
random_value = random.randint(1, 1000)
dict = { "value" : random_value }
return func.HttpResponse(json.dumps(dict))
V ukázkovém úložišti se tento kód nachází v části third_party_api/RandomNumber/__init__.py. Složka RandomNumber poskytuje název funkce a __init__.py obsahuje kód. Další soubor ve složce ,function.json, popisuje, kdy je funkce aktivována. Další soubory v nadřazené složce third_party_api poskytují podrobnosti o aplikaci Funkcí Azure, která je hostitelem samotné funkce.
Pokud chcete nasadit kód, skript zřizování ukázky provede následující kroky:
Vytvořte záložní účet úložiště pro Azure Functions pomocí příkazu Azure CLI pro
az storage account createsprávu stavu a interních operací.Pomocí příkazu
az function app createAzure CLI vytvořte aplikaci Azure Functions.Po 60 sekundách, než se hostitel plně zřídí, nasaďte kód pomocí příkazu
func azure functionapp publish.Přiřaďte k funkci přístupový klíč
d0c5atM1cr0s0ft. (Viz Zabezpečení Azure Functions pro zázemí o klíčích funkcí.)V zřizovacím skriptu se tento krok provádí pomocí příkazu az functionapp function keys set Azure CLI.
V komentářích se dozvíte, jak v případě potřeby provést tento krok voláním rozhraní REST API do rozhraní API služby Functions Key Management . Aby bylo možné toto rozhraní REST API volat, musí být nejprve provedeno další volání rozhraní REST API, aby se načetl hlavní klíč funkční aplikace.
Přístupové klíče můžete přiřadit také prostřednictvím webu Azure Portal. Na stránce aplikace Functions vyberte Funkce a pak vyberte konkrétní funkci, která se má zabezpečit (která je v tomto příkladu pojmenovaná RandomNumber ). Na stránce funkce vyberte Klíče funkcí a otevřete stránku, na které můžete tyto klíče vytvořit a spravovat.