Запрещено при попытке выполнить функцию POST в Azure - PullRequest
0 голосов
/ 18 февраля 2019

Я задействовал функцию Azure.

Приложение функции защищено Azure Active Directory, поэтому для его вызова мне необходимо войти в систему, используя свои учетные данные AAD.

И всенормально, когда я выполняю вызов GET для этой функции.

Но когда я пытаюсь сделать вызов POST, я получаю следующую ошибку: 403 Forbidden You do not have permission to view this directory or page.

Функцияразвернут с использованием Visual Studio и его точка входа выглядит следующим образом:

public static async Task<HttpResponseMessage> Run(
    [HttpTrigger(
        AuthorizationLevel.Anonymous, 
        "post", "get", 
        Route = null)] HttpRequestMessage req, 
    TraceWriter log)
{
    ...
}

1 Ответ

0 голосов
/ 19 февраля 2019

Это нормально работает для меня, и ниже приведены шаги, которые я сделал:

  1. Развернутая функция Azure v1 из Visual Studio со следующим кодом:
[FunctionName("Function1")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            // parse query parameter
            string name = req.GetQueryNameValuePairs()
                .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
                .Value;

            if (name == null)
            {
                // Get request body
                dynamic data = await req.Content.ReadAsAsync<object>();
                name = data?.name;
            }

            return name == null
                ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
                : req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
        }
Включить EasyAUth из портала с помощью AAD.

EasyAuthImage

Получите ClientID и Client Secret вашего AAD-приложения с блейда аутентификации / авторизации.

ClientID/ClientSceret

Получить токен можно с помощью нижеуказанного звонка почтальона:

Postman

Как только вы получите токен от почтальона, как показано выше, вызовите функцию Azure, используя тот же токен, показанный ниже:

FunctionCall

...