Чтобы лучше понять, а затем внедрить его в наши проекты, я создал приложение-функция с 3 конечными точками (исходный код в эту суть) и настроить 6 тестов доступности (типа Ping Test):
oktest: https://myfuncname.azurewebsites.net/api/ok (parse dependent requests = false)
oktest2: https://myfuncname.azurewebsites.net/api/ok (parse dependent requests = true)
badtest: https://myfuncname.azurewebsites.net/api/bad (parse dependent requests = false)
badtest2: https://myfuncname.azurewebsites.net/api/bad (parse dependent requests = true)
errtest: https://myfuncname.azurewebsites.net/api/err (parse dependent requests = false)
errtest2: https://myfuncname.azurewebsites.net/api/err (parse dependent requests = true)
Приложение-функция настроено с помощью AAD с использованием идентификатора клиента и разрешенных аудиторий токенов.
/ok returns 200 content OK
/bad returns 400 content BAD
/err returns 500
Тестирование конечных точек Azure с помощью Postman (с использованием действительного токена носителя) дает ожидаемые результаты, как и в локальной среде размещения.
Я ожидаю 100%-й успех в oktest
и oktest2
и 100%-й сбой в других тестах.
Я получаю следующие результаты:
oktest: success 21 fail 0
oktest2: success 17 fail 0
badtest: success 20 fail 2
badtest2: success 17 fail 0
errtest: success 21 fail 1
errtest2: success 17 fail 0
Затем я устанавливаю для аутентификации значение Разрешить анонимность и получаю следующие результаты после некоторого цикла:
oktest: success 31 fail 0
oktest2: success 36 fail 0
badtest: success 29 fail 9
badtest2: success 25 fail 8
errtest: success 28 fail 8
errtest2: success 24 fail 7
Совершенно очевидно, что первые настройки аутентификации предотвращали HTTP-пингование конечных точек. Возможно ли сохранить аутентификацию AAD или нам нужно переосмыслить нашу сетевую архитектуру?
Любая помощь или предложение будут очень признательны!
С уважением, Джакомо С.С.