76

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

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

Head of Wialon Local Department
Gurtam
77

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

deal , приношу свои извинения. Перепроверил: на самом деле SID разный. А исходный мой вопль был навеян тем, что вторая сессия открывается сразу залогиненной.

78

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

deal wrote:

kravchik, дело в том, что когда Вы копируете строку с sid-ом в новую вкладку - создаётся дубликат сессии, по сути новая сессия.
И sid там другой. При этом обе сессии продолжают существовать и продлеваться (т.к. в каждой вкладке продолжают идти запросы).
Логаут удаляет только текущую сессию, дубликаты продолжают работать - такова наша концепция.
Однако стоит учесть, что время любой сессии ограничено 5 минутами бездействия. Под бездействием имеется ввиду отсутствие любых запросов, в том числе avl_evts, которые выполняются в мониторинге каждые 2 секунды. Т.е. через 5 минут после закрытия вкладки эта сессия удалится.
Если речь идёт о ситуации, когда sid был передан другому человеку и нужно чтобы по Вашему логауту его сессия тоже удалилась, то для этого нужно логиниться при помощи токена (или выставлять галочку Запомнить при логине). После этого даже если передать стороннему человеку sid или токен - его дубликат сессии будет удалён после Вашего логаута (т.к. при логауте удаляется токен).
Только у это дела есть некоторая инерционность - около минуты.

Логин выполняю через authHash созданные при условии авторизации по токену.
При логауте  - если пользователь авторизовался через authHash - токен видимо не удалятся и сессии живут.

С другой стороне само по себе копирование сессии и создание дубликата сессии при этом - это некий скрытый дополнительный вид авторизации - по моему мнению неестественный.

Так получается что если в интерфейсе нажать на пользователя - затем пункт меню ВЫХОД - после этого попадаем на окно ввода логина пароля - затем нажимаем на браузеере кнопку НАЗАД и опять становимся как бы авторизованными это тоже концепция ???

79

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

BoolAB, если не нужно, чтобы делался дубликат сессии (в новой вкладке был "не залогиненный" Wialon) - не подавайте туда действующий sid. И тогда получите форму авторизации.

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

kravchik, приведите строки с Вашей авторизацией в ЛС. Возможно тут есть неучтённые моменты с нашей стороны.

Head of Wialon Local Department
Gurtam
80

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

Коллеги, а может кто-нибудь поделиться примером встраивания формы авторизации в собственную страничку? Что-то playground у меня криво открывается, а сам сообразить не могу...:(

81

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

gofk, если речь о встраивании формы авторизации в свой сайт (визитку)
для возможности с Вашего сайта попасть сразу в мониторинг,
то для этого Вы можете воспользоваться упрощённой формой авторизации (login_simple.html).
Сделать это можно добавив iframe в нужную область на сайте примерно так:

<iframe name="simple_form" src="http://hosting.wialon.com/login_simple.html?title=Monitoring&lang=en" scrolling="no" style="width: 230px; height: 290px; border: 0; margin: 10px;"></iframe>

Описание параметров здесь http://sdk.wialon.com/wiki/ru/sidebar/r … gin/login.

Head of Wialon Local Department
Gurtam
82

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

Некоторое время назад сделал небольшое приложение для Андроида, которое использует SDK (http://forum.gurtam.com/viewtopic.php?id=7170). Недавно обнаружилось, что механизм логина, используемый там, уже не работает. Вот теперь пытаюсь разобраться как все правильно сделать с новым способом аутентификации. Первый вопрос который всплывает: пользователю нужно будет теперь вносить в настройки приложения семидесятизначный токен что ли?
Если нет, то как это должно правильно делаться? Могу ли я как-то сам запрашивать токен используя логин/пароль? В смысле не заставляя пользователя заполнять какие-то формы и копировать строки неимоверной длины?

83

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

kalaschnikow, в приложении теперь необходимо показывать нашу новую форму авторизации http://hosting.wialon.com/login.html или ваш.днс/login.html. Эту фому можно стилизовать при помощи стороннего css. Есть также ряд других параметров.

Для отображения формы на адроиде можно воспользоваться компонентом типа WebView.
Пользователь вводит логин/пароль -> происходит редирект -> вы проверяете наличие параметра access_token ->
если он есть, вызваете запрос svc=token/login&params={"token":"<access_token>"} с полученным токеном ->
в результате получаете json с sid-ом, который и используете во всех дальнейших запросах.

Также дальше Вы можете запомнить полученный токен пользователя в устройстве и в следующий раз не показывать форму авторизации. Токен можно создавать с различным уровнем прав и сроком действия.

Описание http://sdk.wialon.com/wiki/ru/sidebar/r … ogin/login
Примеры http://sdk.wialon.com/playground/demo/app_auth_token

Head of Wialon Local Department
Gurtam
84

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

Спасибо, deal. Попробую.
Идеально было бы без WebView обойтись... Почему нет такого запроса API? Даешь ему усера/пароль, а получаешь токен взамен. По идее ведь все так и работает. В чем необходимость WebView?

85

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

kalaschnikow, такова наша (и не только) концепция, чтобы форма авторизации была гарантированно доверенная (только наша). Это должно исключить или минимизировать попытки взлома, кражи учётных данных, повысить защищённость.
А по поводу того, что всё так и работает (на входе логин/пароль, на выходе токен) - да действительно примерно так, но только помимо логина и пароля ещё передаётся специально сгенерированная подпись, которая есть только на форме. Без корректной подписи запрос не вернёт токен.

Head of Wialon Local Department
Gurtam
86

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

deal wrote:

kalaschnikow, такова наша (и не только) концепция, чтобы форма авторизации была гарантированно доверенная (только наша). Это должно исключить или минимизировать попытки взлома, кражи учётных данных, повысить защищённость.

Я не спорю с этим. Мне примерно понятна мотивация введения авторизации по токену.

deal wrote:

А по поводу того, что всё так и работает (на входе логин/пароль, на выходе токен) - да действительно примерно так, но только помимо логина и пароля ещё передаётся специально сгенерированная подпись, которая есть только на форме. Без корректной подписи запрос не вернёт токен.

А вот тут как раз есть с чем поспорить. Если появится скажем запрос "core/gettoken", то для внешнего "вызывателя" совершенно ничего не изменится. Сейчас я через WebView должен сделать HTTP-запрос, производится редирект и я должен считать URL и выделить из него токен. Чем это принципиально отличается от HTTP-запроса "core/gettoken"? Вы уж извините за критику, но по-моему только неудобством использования.
Вы аргументируете тем, что "компонента" делающая из усера/пароля токен "ваша" и имеет подпись и всякие другие сертифицирующие прибабахи. Ну дык если будет скажем HTTP API, то эта компонента и останется вашей. И сертифицируйте там внутри что хотите и как хотите. Просто вместо неудобной формы с редиректом, дополнительной компоненты WebView и прочих прибабахов, останется простой и удобный интерфейс.
Я не ожидаю что всех "прям щас переубедю", и Gurtam бросится делать для меня интерфейс "core/gettoken", но по-моему если просто задать себе пару (возможно глупых) вопросов, то ясно, что форма ни к чему.

87

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

kalaschnikow, поясню на примере.
Допустим кто-то создал свою форму со старым способом авторизации или с гипотетическим запросом "core/gettoken".
В этом случае мы никак не сможем обезопасить конечного пользователя, вводящего в эту форму свои реальные учётные данные от того, что эта форма сначала не сохранит или не передаст куда-то эти данные и ими не воспользуются третьи лица.
При вводе логина и пароля в нашу форму перехватить эти данные намного сложнее.

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

Удивительно что Вы поднимаете этот вопрос сейчас, а не полгода назад, когда это вводилось и все были заранее предупреждены.

В общем не вижу смысла поднимать холивар по этому поводу сейчас. Это был наш осознанный шаг в сторону усиления безопасности при авторизации пользователей т.к. были определённые ситуации ну и чтобы идти в ногу со временем.
Маловероятно что мы в ближайшее время добавим запрос "core/gettoken" (во всяком случае в таком простом виде).

Просьба отнестись с пониманием, профессионально. Вместо отрицания и суровой критики эффективнее писать конструктивные предложения (на которые мы можем пойти), например не так давно просили возможность стилизовать форму и мы добавили параметр css_url и т.д.
Если есть какие-то сложности с внедрением формы - мы обязательно поможем, для чего и создана данная ветка форума.

Head of Wialon Local Department
Gurtam
88

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

deal wrote:

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

OK, кажется до меня дошло самое важное в этом методе. Эти все финты ушами нужны чтоб не давать усера/пароль мне.

Все ясно спасибо за объяснения.

89

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

Добрый день! Сделана своя страница входа в WL (форма авторизации встроена через iframe и стилизована под свой дизайн). Насколько я понимаю, возможности вернуть пользователя при logout'е из WL на свою страницу входа нет? Или есть какие-то варианты?

90

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

Сейчас такой возможности нет, но если это многим актуально - подумаем как это можно реализовать.

Head of Wialon Local Department
Gurtam
91

Все вопросы по новому способу авторизации в Wialon (oAuth)

(edited by pavel-galant 21/03/2016 20:19:26)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

deal
Думается, что многим такая возможность была бы интересна. Спасибо.

92

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

Добрый день.
Создал свое приложение, авторизация в котором идет через http://hosting.wialon.com/login.html.
Я добавил его в список Apps, то есть теперь могу открывать его в виалоне. Но получается, что мне в приложении приходится повторно авторизовываться. Не подскажите, как можно обойтись без повторной авторизации? В приложение передается sid, но запросы через remote API выполнять у меня не получается.

93

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

sanya, просьба указать с какими настройками Вы добавили приложение в Wialon, а также каким образом осуществляете авторизацию в самом приложении.

Head of Wialon Local Department
Gurtam
94

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

deal,
В настройках приложения выбраны дополнительные параметры URL: Active SID, Current user, Base URL, Host URL, Language.

Само приложение сначала открывает http://hosting.wialon.com/login.html, откуда после авторизации приложение получает имя пользователя и токен. Далее делаю запрос:
https://hst-api.wialon.com/wialon/ajax.html?svc=token/login&params={"token":"<токен>"}
откуда получаю eid, который использую для всех последующих запросов.

95

Все вопросы по новому способу авторизации в Wialon (oAuth)

(edited by deal 31/03/2016 11:56:28)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

sanya, всё должно работать. В приложении сначала нужно получить get-параметр sid, и:
1. если он не пустой:
     a. выполнить запрос core/duplicate (https://hst-api.wialon.com/wialon/ajax.html?svc=core/duplicate&params={"continueCurrentSession":true}&sid=<sid>)
     б. если пришёл корректный ответ - взять из него новый сид из параметра eid
     в. выполнять все дальнейшие запросы с этим сидом
2. если параметра sid нету, или после попытки выполнить запрос core/duplicate новый сид не получен нужно показать форму login.html, получить токен, по нему авторизоваться и получить сид.

Ещё как вариант в настройках приложения есть параметр Authorize hash. Если его выставить - в приложение придёт get-параметр authHash.
Если он задан - можно выполнить запрос svc=core/use_auth_hash&params={"authHash":<text>} и на выходе получить сид в параметре eid.
И дальше действовать по такой же схеме.

Head of Wialon Local Department
Gurtam
96

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

Добрый вечер коллеги. Передо мной поставили несколько задач, по интеграции WialonPro аккаунта и нашего стороннего ресурса:
1. Выгрузка отчетов
2. Выгрузка треков

Мне как "человеку со стороны", непонятно несколько вещей, даже не технических, а "виалоновских". Документация API не помогла.

Выполнение отчета
https://sdk.wialon.com/wiki/ru/pro/remo … xec_report

Что такое ИД ресурса, и где его брать?

97

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

anovoselof, в качестве id ресурса можно использовать id учётной записи, к которой относится текущий пользователь.
Id учётной записи приходит в ответе на логин в свойстве "bact" https://sdk.wialon.com/wiki/ru/pro/remo … core/login
Также можно подать id другого ресурса. Для этого нужно найти все доступные ресурсы https://sdk.wialon.com/wiki/ru/pro/remo … arch_items и взять id интересующего ресурса.
P.S. Эта ветка посвящена только новому способу авторизации в Wialon Hosting и Wialon Local. Просьба задавать вопросы в соответствующих ветках или создавать новые.

Head of Wialon Local Department
Gurtam
98

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

Помогите разобраться что не так
После авторизации получаю токен
делаю запрос
https://hst-api.wialon.com/wialon/ajax.html?svc=token/login&params={"token":"мойтокен"}
получаю eid
делаю следующий запрос
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_item&params={"id":14830215,"flags":1025}&eid="04726d61f2f7dfe6025883311ec4dc21"

получаю
{
    "error": 1
}
Недействительная сессия ((((



99

Все вопросы по новому способу авторизации в Wialon (oAuth)

(edited by snowkam 01/03/2017 12:40:31)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

прошу прощение сид указывается без кавычек

Но назрел другой вопрос Возможно выполнить запрос  без sid  имея только токен?

100

Все вопросы по новому способу авторизации в Wialon (oAuth)

Re: Все вопросы по новому способу авторизации в Wialon (oAuth)

snowkam, нет. Сначала нужно авторизоваться с использованием токена и получить sid, который в дальнейшем и использовать.

Head of Wialon Local Department
Gurtam