Re: Re[6]: OAuth2 openmt 3.0.4 for facebook, vk.com etc

2015-04-08 Пенетрантность Maxim Solodovnik
ну Вы напишите какие поля какой провайдер предоставляет и как они
называются (если это возможно) и я поправлю чтобы нормально работало

2015-04-08 15:05 GMT+06:00 Alexey Terekhov deadl...@mail.ru:

  Спасибо за ответы!!!

 Получается так:
 1. OAutch - в целом работает хорошо, однако желательно в будущем улучшить
 обработчик ошибок.
 internal error поменять, на что-нибудь более понятное.

 2. Для кривых соц.сетей использовать внешний обработчик который вернет
 системе поля: login,email,fist_name,last_name.
 * было бы неплохо расширить список полей обрабатываемых от OAuth2 (тел для
 sms,дата рождения и т.п.)

 3. Думаю для входа через OAutch 3.0.4 сегодня можно и нужно! прописать
 префиксы сети к login
 так как два одинаковых логин приведут к internal error.
 а поле email делать пустым, это должно решить вопрос с входом из соц.сетей
 но мы теряем связь с этими пользователями, нет возможности им написать на
 email.
 или попробовать добавить к email префикс - но такой адрес может не пройти
 валидацию и привести к новым ошибкам.

 ! в 3.0.2 пользователь может менять в профиле emal адрес на любой
 свободный.

 + думаю необходим flag в config разрешающий использовать одинаковые email
 для разных типов входов
 и идентифицировать их как разных пользователей в системе.
 сопоставлять при авторизации e-mail с типом входа.
 то есть, может быть N одинаковых e-mail для N разных типов входов - каждый
 тип входа + email уникальный аккаунт.

 + в последствии реализовать в профиле управление входами, объединение
 аккаунтов с различных входов.

 Ушел дописывать свой костыль, думаю добавить вход через mail.ru.
 если кому-нибудь интересе вход, еще через что-нибудь кроме:
 yandex,google,facebook,vk.com,mail.ru - пишите.
 так как мне этих 5 систем хватит.

 По результату, думаю завтра, опишу свои настройки OAuth2 для нормальных
 сетей и входы/обработка/выводы костыля для кривых
 может кому-нибудь пригодится.

 ---
 С уважением, Алексей Терехов.
 +7 926 076 15 20

 Среда,  8 апреля 2015, 11:52 +06:00 от Maxim Solodovnik 
 solomax...@gmail.com:
 1) по поводу ошибки я думаю что вот это
 https://issues.apache.org/jira/browse/OPENMEETINGS-1196 она
 
 2) логин с одним мылом и разными провайдерами - хороший вопрос, надо
 подумать
 
 3) request_method может быть 0 == post и 1 == get. тут недоглядели, надо
 было сохранять этот енум по именам
 
 4) доп поля, сейчас не достаются, но это можно, patches are welcome :)
 
 ну я так думаю что internal error надо починить к релизу 3.0.5 (будет
 через
 неделю примерно) а остальное подумать и сделать к следующей версии
 помощь в тестировании будет очень кстати :)
 
 2015-04-08 7:13 GMT+06:00 Alexey Terekhov  deadl...@mail.ru :
 
   Доброй ночи.
 
  в OM 3.0.4
  google работает прописал ключи и в путь...
  yandex нужно изменить 'email_param_name' и 'login_param_name' с
  'default_email' на 'login'. (так как в ответе от яндекса нет
 default_email).
 
  facebook, vk.com решил через костыль. :)
 
  в admin/oauth2
  request_key_url=http://localhost/crutch.php
 
 
 request_token_attributes=code={$code}client_id={$client_id}client_secret={$client_secret}redirect_uri={$redirect_uri}
  request_token_url=
 http://localhost/crutch.php?access_token={$access_token}
  OM обращается к моему скрипту php, скрипт
  на запрос 1 POST. возвращает access_token в JSON формате
  на запрос 2 GET. возвращает login,email,firs_name,last_name в JSON
 формате
 
  задача скрипта получить данные от соц. сетей и вернуть их в нужном
  формате в OpenMeeting.
 
  Думаю это важный BUG или ВОПРОС:
  по Русски:
  если я зарегистрировался через email + login + password, то попытка
 зайти
  через соц.сеть в которой указан мой email
  приведет к internat error!
  к тому же приведет если в ответе от соц. сети будет login который уже
 есть
  в системе = internat error.
 
  или например у меня один email указан в google и контакте, я смогу
  заходить только через то, через что был первый вход, другую кинет
  в internat error.
 
  = в системе не может быть более одного пользователя с login или email.
  то есть email и login должны быть уникальными, исключение пустые
  (возможно одна запить где email= и login=;
  неограниченно email=, login=random() или email=random(), login=)
  но если login задан, такого второго быть не может!
 
  1. если к логин можно прикрутить префикс, то как быть с email - ВОПРОС.
 
  2. Возможность заходить через e-mail и соц. сети одному и тому же
  пользователю.
  - как идентифицировать, что это один и тот же человек из разных систем,
 а
  не злоумышленник
  зарегился под чужой email в контакте и пробует зайдет с правами админа.
 
  ДОП. ВОПРОСЫ:
  1. В таблице `oauth_servers` есть поле `request_method` типа int
  Используется ли оно, если да, то какие возможны значения?
 
  2. Кроме login,email,firs_name,last_name - может ли система еще
 что-нибудь
  принять, например phone, photo и т.п.
  или нужно в базе через костыль ковыряться?
 
  Мои соображения:
  Я думаю, что тут  ключевым является требования к безопасности и 

Re[6]: OAuth2 openmt 3.0.4 for facebook, vk.com etc

2015-04-08 Пенетрантность Alexey Terekhov
 Спасибо за ответы!!!

Получается так:
1. OAutch - в целом работает хорошо, однако желательно в будущем улучшить 
обработчик ошибок.
internal error поменять, на что-нибудь более понятное.

2. Для кривых соц.сетей использовать внешний обработчик который вернет 
системе поля: login,email,fist_name,last_name.
* было бы неплохо расширить список полей обрабатываемых от OAuth2 (тел для 
sms,дата рождения и т.п.)

3. Думаю для входа через OAutch 3.0.4 сегодня можно и нужно! прописать 
префиксы сети к login
так как два одинаковых логин приведут к internal error.
а поле email делать пустым, это должно решить вопрос с входом из соц.сетей
но мы теряем связь с этими пользователями, нет возможности им написать на email.
или попробовать добавить к email префикс - но такой адрес может не пройти 
валидацию и привести к новым ошибкам.

! в 3.0.2 пользователь может менять в профиле emal адрес на любой свободный. 

+ думаю необходим flag в config разрешающий использовать одинаковые email для 
разных типов входов
и идентифицировать их как разных пользователей в системе.
сопоставлять при авторизации e-mail с типом входа.
то есть, может быть N одинаковых e-mail для N разных типов входов - каждый тип 
входа + email уникальный аккаунт.

+ в последствии реализовать в профиле управление входами, объединение аккаунтов 
с различных входов.

Ушел дописывать свой костыль, думаю добавить вход через mail.ru.
если кому-нибудь интересе вход, еще через что-нибудь кроме: 
yandex,google,facebook,vk.com,mail.ru - пишите.
так как мне этих 5 систем хватит.

По результату, думаю завтра, опишу свои настройки OAuth2 для нормальных сетей 
и входы/обработка/выводы костыля для кривых
может кому-нибудь пригодится.

---
С уважением, Алексей Терехов.
+7 926 076 15 20

Среда,  8 апреля 2015, 11:52 +06:00 от Maxim Solodovnik solomax...@gmail.com:
1) по поводу ошибки я думаю что вот это
https://issues.apache.org/jira/browse/OPENMEETINGS-1196 она

2) логин с одним мылом и разными провайдерами - хороший вопрос, надо
подумать

3) request_method может быть 0 == post и 1 == get. тут недоглядели, надо
было сохранять этот енум по именам

4) доп поля, сейчас не достаются, но это можно, patches are welcome :)

ну я так думаю что internal error надо починить к релизу 3.0.5 (будет через
неделю примерно) а остальное подумать и сделать к следующей версии
помощь в тестировании будет очень кстати :)

2015-04-08 7:13 GMT+06:00 Alexey Terekhov  deadl...@mail.ru :

  Доброй ночи.

 в OM 3.0.4
 google работает прописал ключи и в путь...
 yandex нужно изменить 'email_param_name' и 'login_param_name' с
 'default_email' на 'login'. (так как в ответе от яндекса нет default_email).

 facebook, vk.com решил через костыль. :)

 в admin/oauth2
 request_key_url=http://localhost/crutch.php

 request_token_attributes=code={$code}client_id={$client_id}client_secret={$client_secret}redirect_uri={$redirect_uri}
 request_token_url=http://localhost/crutch.php?access_token={$access_token}
 OM обращается к моему скрипту php, скрипт
 на запрос 1 POST. возвращает access_token в JSON формате
 на запрос 2 GET. возвращает login,email,firs_name,last_name в JSON формате

 задача скрипта получить данные от соц. сетей и вернуть их в нужном
 формате в OpenMeeting.

 Думаю это важный BUG или ВОПРОС:
 по Русски:
 если я зарегистрировался через email + login + password, то попытка зайти
 через соц.сеть в которой указан мой email
 приведет к internat error!
 к тому же приведет если в ответе от соц. сети будет login который уже есть
 в системе = internat error.

 или например у меня один email указан в google и контакте, я смогу
 заходить только через то, через что был первый вход, другую кинет
 в internat error.

 = в системе не может быть более одного пользователя с login или email.
 то есть email и login должны быть уникальными, исключение пустые
 (возможно одна запить где email= и login=;
 неограниченно email=, login=random() или email=random(), login=)
 но если login задан, такого второго быть не может!

 1. если к логин можно прикрутить префикс, то как быть с email - ВОПРОС.

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

 ДОП. ВОПРОСЫ:
 1. В таблице `oauth_servers` есть поле `request_method` типа int
 Используется ли оно, если да, то какие возможны значения?

 2. Кроме login,email,firs_name,last_name - может ли система еще что-нибудь
 принять, например phone, photo и т.п.
 или нужно в базе через костыль ковыряться?

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

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

 * логин от соц. сетей делать уникальным