2016-10-24 9 views
1

У меня есть проект, который использует централизованный веб-сайт ASP.NET MVC, который реализует архитектуру OWIN ASP.NET Identity. Нашего централизованный сайт был использован для:Аутентификация OWIN и «онлайн-пользователи»

  • гранта знака с именем пользователя/паролем
  • субсидия обновить маркер
  • добавление/удаление и изменения пользователей/роли и претензии
  • маркера гранта через OAuthentication и социальный Вход (Twitter, Facebook ...)

Пока все хорошо, но теперь у меня появился новый запрос. Ярлык должен иметь возможность «отслеживать пользователей онлайн», что невозможно, на мой взгляд, потому, что ASP.NET Identity OAuth предоставляет токены и обновлять токены, но у него нет понятия «сеанс» и «онлайн-аутентифицированные пользователи», ,

Любая идея или предложение о том, как я могу реализовать эту функциональность?

+0

является «ярус» просто хорошее имя для менеджеров по продажам, требующих функции? – trailmax

ответ

0

Это зависит немного от вашего точного определения для , отслеживающего онлайн-пользователей, но при условии его легкого определения вы можете выполнить это, введя точно, что вы сказали, что у вас еще нет; сессий.

В условиях аутентификации ваше приложение ASP.NET MVC действует как сервер идентификации/авторизации (IP/AS), но это не значит, что он не может или не должен иметь представление о сеансе. Обычно сеансы являются обычной практикой в ​​IP/AS, потому что таким образом они могут обеспечить единый вход для приложений, которые полагаются на них.

Например, как Google, так и Facebook действуют как IP/AS для других приложений, и оба они поддерживают сеансы. Вы можете утверждать, что в двух случаях они делают гораздо больше, чем просто действуют как IP/AS, поэтому сеансы должны быть.

Однако поставщики, ориентированные только на службы аутентификации и авторизации, также полагаются на сеансы. Например, Auth0 uses sessions as a way to provide the single sign-on experience, о котором я упоминал ранее.

Внедряя сеансы, вы должны иметь возможность поддерживать список онлайн-пользователей, прошедших проверку подлинности, с точки зрения IP/AS. Большой вопрос в том, действительно ли это то, что хотят ваши бизнес-пользователи, когда говорят отслеживать онлайн-пользователей.

 
Раскрытие: Я инженер Auth0.


 
Update:

Что касается фактического осуществления сессии, это зависит от требований, но традиционный подход к стороне клиента печенья и на стороне сервера длительного хранения должны сделать трюк. Его не нужно интегрировать с ASP.NET Identity, вам просто нужно отслеживать, что определенный идентификатор пользователя (через его уникальный идентификатор пользователя) имеет активный сеанс; когда они аутентифицируются.

Тогда возникает проблема принятия решения о завершении этого сеанса, это часть, которая будет в основном зависеть от точных требований.Это может быть так же просто, как пользователь также переходит к IP/AS для выхода из системы или более сложным, если вы хотите запустить единый вход из другого приложения.

В отношении жетонов вы также можете рассмотреть возможность отмены токенов обновления после окончания сеанса (выход из системы). Таким образом, есть много движущихся частей и вещей для реализации.

Если вы еще не сделали это уже вы должны также проверить:

+0

Я знаю Auth0 очень хорошо, но, к сожалению, я не могу его использовать, потому что это не бюджет, у нас есть облачный продукт, и использование Auth0 было отклонено два года назад из-за высоких затрат. Однако я ничего не могу найти о управлении сеансом с помощью идентификаторов и токенов ASP.NET. – Raffaeu

+0

Да, я был в корпоративном мире уже много лет, поэтому я знаю это чувство. Руководителям легко проверять цены на что-то внешнее, но они никогда не рассчитали реальных затрат на внедрение, обеспечение и поддержание внутренних решений. Что касается вашей точки в управлении сеансом, я обновил ответ. –

+0

Angelo благодарит за обновление. К сожалению, затраты на внешние инструменты, такие как OAuth0, должны быть дебетованы у наших облачных клиентов, у которых есть тысячи пользователей каждый, поэтому мы решили перейти к нашей собственной реализации – Raffaeu