Ajex может получить доступ к API защиты без входа в Active Directory - PullRequest
0 голосов
/ 20 февраля 2019

Я последовал этому примеру (https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad) и выбрал «OAuth 2.0» в «Настройках> Авторизация пользователя» для Echo API.

Затем я создал html-файл и активировал ajaxвызов Echo API "https://{myapi}.azure -api.net / echo / resource-cached? param1 = sample"

Я предполагаю, что я должен получить сообщение об ошибке "Отказано в доступе или нет авторизации", поскольку предполагается, что этот APIбыть защищенным моим OAuth-сервером (в соответствии с примером, это мой AD). Однако этот ajax-вызов возвращает код состояния: 200. Мне не нужно входить в AD, но я могу использовать API.

   $(document).ready(function(){
      $("button").click(function(){
        $.ajax({
             url: "https://{myapi}.azure-api.net/echo/resource?param1=sample"
            ,headers: {
                'Cache-Control':'no-cache',
                'Ocp-Apim-Trace':'true',
                'Ocp-Apim-Subscription-Key':'xxxxxxxxxxxxxxxxxxxxxx'
            }
            ,success: function(result){
                $("#div1").html(JSON.stringify(result));
                }
            ,error : function(result) {
                alert(JSON.stringify(result));
            }
        });

      });
    });

Я создал еще один API с именем "demo" вручную с ложным ответом. Этот API возвращает json {'sampleField': 'test'}. Мой вызов Ajex получает json без вызова, даже если я применил "OAuth 2.0" как«Авторизация пользователя» в этом API.

Есть что-то, что я пропустил или неправильно понял, как это работает?

1 Ответ

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

Наконец, JWT требуется, чтобы заблокировать его.

...