2016-03-17 2 views
1

По соображениям безопасности мне нужно, чтобы Github попросил пользователя снова войти в систему, чтобы подтвердить, что он фактически является владельцем учетной записи GitHub, пытающейся использовать OAuth2 в моем текущем проекте с одним знаком входа.PHP - OAuth2 force Повторная авторизация Github (relogging)

Для Linkedin и Google у меня возникли и тот же вопрос, на Facebook есть возможность в developers.facebook.com, что сила для повторной аутентификации oauth2 каждый раз, но сейчас я использовал этот код, чтобы заставить Facebook повторной аутентификации:

public function getRequestParams() { 
    return array(
     'auth_type' => 'reauthenticate' 
    ); 
} 

Я искал весь день вчера, а также провел сегодня все утро. Это ОБЯЗАТЕЛЬНАЯ вещь для веб-приложения клиента, приложение ДОЛЖНО повторять для Linkedin/Facebook/Github/Google, я, вероятно, могу заставить его работать с Linkedin/Google, но я не вижу никакого решения с Github.

Просто попросить новый токен ничего не делать, потому что учетная запись Github все еще регистрируется и будет автоматически авторизована. И, очевидно, я не могу смириться с файлами cookie с другого URL-адреса.

В любом случае я могу это сделать? Я почти уверен, что вообще не нужно делать это с помощью параметра OAuth2 (иначе я бы смог добавить его в мой абстрактный класс, позволяя ему работать с любым добавленным SingleSignOn, что было бы оптимальным, но, казалось бы, невозможным).

Я задал подобный вопрос здесь OAuth2, но я считаю, что это просто не возможно OAuth2 Single-sign-on component, force reauthentication

Но для Github специфически, любая возможность заставить пользователя войти в систему каждый раз есть OAuth вызов сделал?

ответ

0

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

  1. OAuth2 является основой, которая не обеспечивает функциональные возможности, использовать его, например, чтобы сделать что-то абстрактное и использовать одни и те же методы для Github/Facebook/Linkedin/и т.д., без необходимости использовать 5 различных SDK,
  2. Если социальные медиа не предлагают функциональность, тогда вы не можете этого сделать. Если вы не хотите совершить почти по-граничную хакерскую атаку и уничтожить сеансы пользователей/файлы cookie. Даже если это возможно, возможно, это не законно и, безусловно, не является удобным для пользователя.

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

Смежные вопросы