Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Partie précédente : Configuration requise pour l’authentification
Dans notre exemple de scénario, l’application principale utilise une API tierce sécurisée avec une clé d’accès. Cette section illustre l’API à l’aide d’Azure Functions, mais les mêmes principes s’appliquent indépendamment de la façon ou de l’emplacement d’implémentation de l’API, que vous hébergez l’application sur un autre fournisseur de cloud ou un serveur web traditionnel.
L’aspect clé est que toutes les demandes clientes adressées au point de terminaison protégé doivent inclure la clé d’accès, que l’application doit gérer en toute sécurité. Cette section fournit une vue d’ensemble de l’implémentation de cette API à l’aide d’Azure Functions, mais vous pouvez adapter les principes à vos besoins spécifiques.
Exemple d’implémentation d’API tierce
L’exemple d’API tierce est un point de terminaison simple qui retourne un nombre aléatoire compris entre 1 et 999. L’API est sécurisée avec une clé d’accès, qui doit être fournie dans la demande d’accès au point de terminaison. À des fins de démonstration, cette API est déployée sur le point de terminaison. https://msdocs-example-api.azurewebsites.net/api/RandomNumber Pour appeler l’API, toutefois, vous devez fournir la clé d0c5atM1cr0s0ft d’accès dans un ?code= paramètre d’URL ou dans une 'x-functions-key' propriété de l’en-tête HTTP. Par exemple, après avoir déployé l’application et l’API, essayez cette URL dans un navigateur ou curl : https://msdocs-example-api.azurewebsites.net/api/RandomNumber?code=d0c5atM1cr0s0ft.
Si la clé d’accès est valide, le point de terminaison retourne une réponse JSON qui contient une propriété unique, « value », dont la valeur est un nombre compris entre 1 et 999, par {"value": 959}exemple .
Le point de terminaison est implémenté en Python et déployé sur Azure Functions. Le code est le suivant :
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))
Dans l’exemple de référentiel, ce code se trouve sous third_party_api/RandomNumber/__init__.py. Le dossier RandomNumber fournit le nom de la fonction et __init__.py contient le code. Un autre fichier du dossier, function.json, décrit quand la fonction est déclenchée. D’autres fichiers du dossier parent third_party_api fournissent des détails pour l'application Function App Azure qui héberge la fonction.
Pour déployer le code, le script d’approvisionnement de l’exemple effectue les étapes suivantes :
Créez un compte de stockage pour Azure Functions avec la commande Azure CLI,
az storage account createafin de gérer l'état et les opérations internes.Créez une application Azure Functions avec la commande Azure CLI.
az function app createAprès avoir attendu 60 secondes pour que l’hôte soit entièrement approvisionné, déployez le code à l’aide de la commande Azure Functions Core Tools.
func azure functionapp publishAffectez la clé d’accès,
d0c5atM1cr0s0ftà la fonction. (Consultez Sécurisation d’Azure Functions pour obtenir un arrière-plan sur les clés de fonction.)Dans le script d’approvisionnement, cette étape s’effectue à l’aide de la commande Azure CLI az functionapp function keys set.
Les commentaires sont inclus pour montrer comment effectuer cette étape dans un appel d’API REST à l’API Functions Key Management si vous le souhaitez. Pour appeler cette API REST, un autre appel d’API REST doit d’abord être effectué pour récupérer la clé principale de l’application de fonction.
Vous pouvez également attribuer des clés d’accès via le portail Azure. Dans la page de l’application Functions, sélectionnez Functions, puis sélectionnez la fonction spécifique à sécuriser (qui est nommée RandomNumber dans cet exemple). Dans la page de la fonction, sélectionnez Clés de fonction pour ouvrir la page dans laquelle vous pouvez créer et gérer ces clés.