Опубликовал это на форумах по сервису приложений Azure и не получил ответа, так что ...
Каркас 4.7.1
Приложение представляет собой веб-форму ASP.Net с двумя контроллерами веб-API.
Веб-сайт и контроллер HealthCheck должны разрешать анонимные запросы.
Другой контроллер должен пройти проверку подлинности в Azure Active Directory с использованием сертификата в качестве учетных данных.
Аутентификация в службе приложений установлена на
- Разрешить анонимные запросы (без действий)
- Поставщик проверки подлинности установлен на Azure Active Directory
- Режим управления установлен на Экспресс
- В приложение управления был добавлен сертификат
Единственная проблема заключается в том, что когда анонимный запрос попадает на защищенный контроллер, возвращается HTTP 404, а не 401.
Если выполняется аутентифицированный запрос, возвращается HTTP 200.
Мне не хватает некоторых настроек?
Вот карта маршрута в Global.asax.cs в Application_Start
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
Вот файл authorization.json
{
"routes": [{
"path_prefix": "/",
"policies": { "unauthenticated_action": "AllowAnonymous" }
},
{
"path_prefix": "/api",
"policies": { "unauthenticated_action": "RejectWith401" }
},
{
"http_methods": [ "GET"],
"path_prefix": "/api/HealthCheck",
"policies": { "unauthenticated_action": "AllowAnonymous" }
}]
}