Нетрудно изменить процесс входа в систему аутентификации форм, чтобы в дополнение к обычной проверке подлинности объект WebClient выполнял базовую аутентификацию с URL-адресом api/token, обслуживаемым веб-Api DAL, настроенным с помощью Thinktecture IdentityModel , Затем возвращаемый токен сеанса может быть сохранен в словаре сеанса для последующего использования при вызове DAL.Аутентификация мостовых форм и OAUTH
Проблема в том, что эти токены имеют разные сроки жизни.
Я мог бы перезаписать приложение, чтобы сохранить учетные данные в localStorage для использования, воссоздавая токен сеанса по мере необходимости, но это уродливо и не идеально с точки зрения безопасности.
Возможно, существуют способы настройки долговечности токенов для одной или обеих этих систем, но я не знаю, какие условия поиска использовать (я пробовал искать долговечность токенов и срок действия токенов, но результаты не помогли).
Меня интересуют как философские, так и прагматические предложения о том, как лучше всего согласовать два типа безопасности веб-приложений. Я был бы очень удивлен, если бы не было ответов на эту тему, если бы я знал, что искать.
Немного фона, так как некоторые люди не поняли, о чем я прошу.
Там большая уродливая старая школа ASP.NET веб-приложение, которое использует на основе форм безопасности
Я только что добавили новый материал в виде отдельного приложения DAL, который использует Thinktecture IdentityModel. Этот DAL используется двумя приложениями, приложением ASP.NET и Durandal SPA.
Они используют одну и ту же базу данных для проверки учетных данных, поэтому они имеют одинаковое пространство идентичности.
Я изменил процесс входа в старый приложение, чтобы он также предоставлял учетные данные и получал токен сеанса из ThinkTecture IdentityModel. Этот токен помещается в коллекцию сеанса, который будет отображаться всякий раз, когда старое приложение вызывает DAL.
Если запустить старое приложение, проверку подлинности, делать вещи и закрыть браузер, а потом снова открыть браузер, у вас есть вход в приложение ASP.NET без Войти происходящий так что нет никакой возможности создать маркер сеанса. Это проблема. Мне нужно, чтобы оба токена имели одинаковый жизненный цикл.
Я подумал об одном возможном подходе. Я представляю его ниже в качестве ответа, чтобы люди могли выразить свое мнение по существу или внести уточнения в комментарии. Если я подумаю о каких-либо других идеях, я брошу их в качестве ответов, и я надеюсь, что вы сделаете то же самое.
Есть ли какая-то причина, по которой вы не можете просто использовать срок действия более короткого токена для обоих токенов? Когда первый срок истекает, просто требуется повторная аутентификация и либо отозвать долгоживущий токен, либо просто заменить его. – mpowered
Что вы ищете, это конфигурация истечения срока действия токена. однако ваш вопрос, поскольку он очень низок, подробно о том, что вы делаете, и о том, что вы пытаетесь достичь. почему вы использовали localStorage (клиентскую сторону) для токена OAUTH, а также формируете auth (на стороне сервера). – Bishoy