2016-11-07 3 views
0

Я работаю над проектом, в котором я пытаюсь добавить дополнительный уровень безопасности. Идея заключается в том, что когда токен Oauth генерируется, мы сравниваем его с одним, сохраненным в нашей БД, если они не совпадают, тогда пользователю отказывают. Моя проблема в том, что я пытаюсь выполнить сравнение во время потока аутентификации прямо перед тем, как токен будет передан конечному пользователю из конечной точки/токена, но я не могу найти, где получить доступ к сгенерированному токену во время запроса на аутентификацию. Я только см. его, когда запрос наконец предоставлен. Просто нужно руководство, в котором находится свойство access_token.Сравните маркер Oauth с ранее сохраненным токеном

ответ

0

Я не могу ответить полностью, не зная, какую библиотеку вы используете. Если это IdentityServer3, я не знаю, как это сделать, но вам не следует в любом случае по нескольким причинам.

  • Токены не должны выдаваться до тех пор, пока пользователь не будет аутентифицирован. Может быть, я что-то упустил, но не могу придумать обстоятельства, когда вам нужно будет отклонить пользователя на этом этапе.
  • Каждый токен должен быть уникальным, поэтому вы не должны ожидать генерации токена, который уже существует.

Я также хочу отметить, что если вы используете самодельные токены, их не нужно сохранять, поскольку они могут быть проверены с использованием только открытого ключа сертификата.

Если вы можете уточнить, что вы подразумеваете под дополнительной безопасностью, я мог бы придумать что-то более полезное, но, надеюсь, это все равно полезно.

+0

Я использую Microsoft.Owin.Security.OAuth на веб-платформе api. В основном я пытаюсь отслеживать токены, поэтому, когда пользователь удаляется или активно, этот токен будет перекрестной ссылкой с onces, которые были сохранены ранее. – savage305

+0

Получил это. Я думаю, что мои предыдущие пункты все еще сохраняются, но я думаю, что вы могли бы решить это по-другому. Вы правильно настроили 'OAuthAuthorizationServerOptions' в классе запуска? У этого есть «Провайдер», который появляется, который можно реализовать, чтобы определить, как происходит авторизация. Если это так, вы можете просто добавить туда чек, чтобы узнать, удален или неактивен пользователь (или какая-либо другая пользовательская логика) и вернуть желаемый ответ. Я ожидаю, что это произойдет до появления новых токенов, поэтому нет необходимости сравнивать к старым жетонам в этом случае (хотя это фактически невозможно). –