2015-03-30 3 views
3

Я использую идентификатор ASP.NET с помощью формы auth в приложении MVC6 и пытаюсь реализовать Basic auth для конечных точек API.Внедрение Basic Auth в ASP.NET 5

Я бы подумал, что будет готовое промежуточное программное обеспечение, которое сделает это, но не смогли его найти. Я посмотрел сайт Filters test https://github.com/aspnet/Mvc/tree/dev/test/WebSites/FiltersWebSite, и я не могу понять, что он делает/какие части важны.

Я попытался использовать предварительный подход вручную, выполнив базовое auth в файле авторизации, но SuppressFormsAuthenticationRedirect, похоже, исчез, и CookieAuthenticationHandler переадресовывает страницу входа.

+0

Чтобы ответить на «преднастроенным промежуточный слой» вопрос, «Basic аутентификация не соответствует требованиям безопасности [катана команды]» - https: // katanaproject. codeplex.com/workitem/381 – Sam

+0

Я подозреваю, что мне нужно подклассифицировать как CookieAuthenticationMiddleware, так и CookieAuthenticationHandler, и воспроизвести всю логику, скрытую в 'UseIdentity', или переписать помощник' UseIdentity', чтобы сделать Cookie auth пассивным и вручную перенаправлять всюду, что необходимо? – Sam

+0

Вы ориентируетесь на определенный веб-хост (например, IIS) – Malgaur

ответ

0

Поскольку вы ориентируетесь на IIS, я предлагаю использовать IIS для базовой проверки подлинности. Вы можете удалить файл web.config в свою папку wwwroot с помощью раздела, чтобы настроить основные параметры проверки подлинности.


Если вы хотите остаться хозяином агностиком, вам понадобится промежуточное ПО. Вот некоторые варианты реализации: https://github.com/Kukkimonsuta/Odachi/tree/master/src/Odachi.Security.BasicAuthentication

+1

AFAIK IIS поддерживает только Basic Auth для учетных записей Windows - мне нужно auth с идентификатором ASP.NET. Во всяком случае, я не вижу, как это решает переадресацию внутри промежуточного ПО OWIN? – Sam

+0

Да, я видел это - посмотри мой комментарий на ответ Барта. Реальная проблема заключается не в базовом auth (у меня это работает через фильтр atm), он настраивает/модифицирует CookieAuthenticationHandler, поэтому он не захватывает запрос/ответ. – Sam

2

Базовый auth не существует по дизайну. Команда безопасности против этого. Вероятно, они сделают образец позже.

вы можете прочитать обсуждение по этому вопросу здесь: https://github.com/aspnet/Security/issues/209

+0

Спасибо за поднятие вопроса @Bart. Я не могу сказать, что согласен с «давайте не будем реализовывать эту часть спецификации HTTP, потому что кто-то может использовать ее неправильно», но я думаю, что они должны делать то, что делает их счастливыми. – Sam

+0

Сторонний вариант, на который ссылается в нижней части обсуждения: https://github.com/Kukkimonsuta/Odachi/blob/master/src/Odachi.Security.BasicAuthentication/BasicAuthenticationAppBuilderExtensions.cs – Sam