Реализация клиентского OAuth на устройствах без постоянного хранилища - PullRequest
0 голосов
/ 14 сентября 2011

Я использую OAuth-потребитель, который будет работать на разных приставках.Некоторые из них не предоставляют никаких средств для постоянного хранения пользовательских данных.Когда STB выключен, все данные теряются (кроме прошивки, конечно).Как я могу хранить токены доступа?Требование состоит в том, что пользователь должен аутентифицироваться только один раз, и чтобы токены доступа имели длительный срок действия (до тех пор, пока сам не отозван).Так что аутентификация при каждом включении STB исключена.Является ли OAuth в этом случае бесполезным?Могу ли я использовать некоторые другие данные (например, MAC или некоторые уникальные данные HW) вместо токенов доступа?Я знаю, что они могут быть подделаны, но у меня нет других идей.

Ах, кстати, я тоже реализую серверную часть (поставщика услуг), но так как она будет использоваться третьимсторонние потребители, я также должен предоставить им «правильный» OAuth и сделать некоторые настройки для своего потребительского приложения, поскольку оно, очевидно, является доверенным.

Спасибо!

1 Ответ

1 голос
/ 14 сентября 2011

Можете ли вы иметь веб-сервис на стороне сервера (защищенный SSL и цифровым сертификатом, чтобы никто другой не мог получить к нему доступ), который получает какой-то уникальный MAC (или данные HW) и возвращает надлежащий токен OAuth на STB?

Таким образом, поток будет: 1) STB загружается, отправляет уникальные данные HW на сервер через веб-сервис для получения OAuth-токена - Если токен существует, перейдите к шагу 4, в противном случае перейдите к шагу 2 2) Пользователь выполняет аутентификацию OAuth на STB. 3) STB сохраняет токен в локальной памяти и отправляет его через веб-службу на сервер вместе с некоторыми уникальными данными HW 4) STB использует токен OAuth для выполнения обычных функций 5) STB отключен, выключен и т.д., что приводит к потере токена из локальной памяти Вернуться к шагу 1.

Проблемы, на которые нужно обратить внимание: A) Пользователь возвращает STB, так как он больше не хочет обслуживания. Вам нужно как-то очистить токен на тот случай, если другой пользователь получит этот STB. Вы не хотите, чтобы новый пользователь получал данные старого пользователя Б) разрыв STB и пользователь должен получить новый. Если им придется пройти повторную аутентификацию или токен автоматически перейдет к новым уникальным данным HW

...