Azure функция прокси - обязательный заголовок запроса - PullRequest
0 голосов
/ 29 мая 2020

Я хотел бы использовать прокси-функцию Azure, чтобы ограничить доступ к API, требуя наличия указанного заголовка запроса X-MY-HEADER. Я не хочу на самом деле проверять здесь значение заголовка, просто он присутствует.

Я не могу найти никаких примеров этого, и некоторые методы проб и ошибок не помогли. Конфигурация прокси-сервера работает правильно перед добавлением дополнительного заголовка.

Я пробовал что-то вроде:

{
  "proxies": {
    "Mock API - POST": {
      "matchCondition": {
        "methods": [ "POST" ],
        "route": "/api",
        "request.headers.X-MY-HEADER": "{*}"
      },
      "responseOverrides": {
        "response.headers.Location": "https://REAL/API/ADDRESS/ETC"
      }
    }
  }
}

также "request.headers": "X-MY-HEADER", но ни один из них не работает.

Возможно ли это сделать, и у меня просто неправильный синтаксис?

Если заголовок отсутствует, я рад, что он просто 404.

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете выполнить авторизацию следующим образом:

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;

namespace FunctionApp62
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            if (req.Headers.Keys.Contains("X-MY-HEADER"))
            {
                log.LogInformation("has header X-MY-HEADER!");
                //put your process logic here.
            }

            return new OkObjectResult("!!!!!!!!!!!!!!!!!!!!!!");
        }
    }
}

(выполните авторизацию в c логах вашей функции, если запрос имеет заголовок, тогда сделайте что-нибудь.)

...