Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взаимодействие с соц сетями. OAuth 
:(
    Опции темы
Экскалупатор
Дата 12.6.2013, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



Приветствую всех. Поделитесь кто сталкивался и может решал такую задачу:
Есть система состоящая из таких компонентов как: WebSite, WebService для передачи данных, дригие Application(мобильные, Win, etc)

необходмо ко всему этому прикрутить регистрацию/авторизацию через OAuth, пока интересен только FaceBook.

добавить отдельно авторизацию в любую часть системы не представляет труда, благо все уже расписано и примеров куча. Проблема в том как синхронизировать эту авторизацию между различными частями системы. Поясню на примере: пользователь решил зарегистрироваться/залогиниться в системе с мобильного телефона, каким образом телефон сможет "убедить" сервис в том что это действительно пользователь системы, а не злоумышленник, который прикидывается этим же пользователем? Есть ли возможность использовать FaceBook как доверенную третью сторону? т.е. что бы приложение логинилось через фейсбук, отправляло какой то ключ, а мы этот ключ получали от фейсбука и понимали что это действительно наше приложение. или facebook подтверждал что пользователь действительно вошел в систему. 

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

Если кто что то подобное делал то поделитесь как делали. Ну или дайте где почитать про это, а то натыкаюсь только на описание самого OAuth, но там нету ответов на эти вопросы.
PM MAIL ICQ   Вверх
Morgot2
Дата 18.6.2013, 21:03 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.8.2012

Репутация: нет
Всего: нет



Экскалупатор, первое, что делаете, регистрируете свое приложение на самом фейсбуке, при регистрации вы получаете идентификатор приложения и секретное слово. Потом добавляете их в файл AuthConfig.cs для подключения регистрации через фейсбук. Можете посмотреть по ссылке http://metanit.com/sharp/mvc/11.11.php - там хорошо описан процесс аутентификации Oath
PM MAIL   Вверх
Экскалупатор
Дата 18.6.2013, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



спасибо, конечно, но советую внимательно прочитать то что я написал.
Цитата(Экскалупатор @  12.6.2013,  17:38 Найти цитируемый пост)
добавить отдельно авторизацию в любую часть системы не представляет труда

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

т.е. проблема не в авторизации через фесбук, а подтверждении этой авторизации для другого приложения.
PM MAIL ICQ   Вверх
Morgot2
Дата 19.6.2013, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.8.2012

Репутация: нет
Всего: нет



Экскалупатор, а ну тогда извиняюсь, правда. я не понимаю, какой смысл из двух приложений - во-первых, сомневаюсь, что это осуществимо, во-вторых, почему нельзя все это сделать в одном приложении, какой смысл из двух приложений? Безопаснее система от этого не станет. Если уж есть сомнения в безопасности, то лучше вообще отказаться от аутентификации через фейсбук
PM MAIL   Вверх
Экскалупатор
Дата 19.6.2013, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



опять же, я писал в первом посте. это распределенная система, которая состоит из вебсервиса обработки данных, и приложения которое работает на стороне пользователя, десктопное или в мобильном телефоне. т.е. если пользователь входит в систему через фейсбук используя десктопное приложение, то веб сервис об этом ничего не знает, и надо каким то образом убедить веб сервис в том что пользователь действительно залогинился через фейсбук.
PM MAIL ICQ   Вверх
jonie
Дата 20.6.2013, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 3
Всего: 118



почитай про WindowsIdentityFoundation ?

Это сообщение отредактировал(а) jonie - 20.6.2013, 10:34


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Экскалупатор
Дата 20.6.2013, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



Цитата(jonie @  20.6.2013,  09:34 Найти цитируемый пост)
почитай про WindowsIdentityFoundation ?

вроде интересно, но как то пока не совсем понятно как это мне поможет. можешь поделиться? канал между сервисом и приложением на стороне клиента не доверенный. Т.е. заранее предполагаем, что пользователь, обладаем достаточным уровнем знаний что бы написать свой клиент для моего сервиса. плюс, разные части приложения написаны на совершенно разных(В теории любых) языках, технологиях и пр. единственное что их объединяет это протокол через который они взаимодействуют.
PM MAIL ICQ   Вверх
jonie
Дата 20.6.2013, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 3
Всего: 118



ну тебе надо сделать единую точку авторизации всего что у тебя есть на твоем сервере. Вин приложение или веб - неважно - пусть это будет нечто вроде веб страницы где юзер может выбрать нужного ему провайдера - например гугл. Далее гугл пошлет тебе данные юзера, ты формируешь токен "user=vasia" и подписываешь его своим сертификатом ну и отсылаешь запрашивающему приложениею. Оно проверяет что подпись верна и далее работает с твоими сервисами используя этот самый токен (которые проверяют подпись токена)...

короче на techdays.ru было про WIF двухчасовое видео вроде бы, там достаточно на пальцах объяснено как работают все эти штуковины 8-)


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Экскалупатор
Дата 20.6.2013, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



Цитата(jonie @  20.6.2013,  18:53 Найти цитируемый пост)
Оно проверяет что подпись верна и далее работает с твоими сервисами используя этот самый токен (которые проверяют подпись токена)...

вот в этом и вопрос. 
тут есть два "узких" момента.
1. пользователь должен сообщить мне свои данные(логин/пароль) для того что бы мой сервис смог где то(в фейсбуке) авторизоваться от имени этого пользователя, а мне, по совсем не сложным причинам, совсем не хочется выступать как прокси в этом процессе(нет никакого доверия ко мне, и что я ничего не украду), т.е. желательно избежать попыток узнать данные пользователя.
2. если в пользовательское приложение зашить кусок сертификата, что бы удостовериться что это наше приложение, то в будущем невозможно будет сделать сервис открытым, иначе потеряется весь профит от зашитого ключа. если ключ не зашивать то как приложение проверит кто это и что это? 

я как бы ориентировался на такую схему: приложение(мое или любое другое, которое работает с моим сервисом) авторизует пользователя, и дальше сервис как то должен узнать что пользователь авторизован, при этом сервис не может доверять приложению. т.е. сервис должен иметь свой, доверенный канал для подтверждения авторизации.
PM MAIL ICQ   Вверх
jonie
Дата 22.6.2013, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 3
Всего: 118



Цитата(Экскалупатор @  20.6.2013,  21:09 Найти цитируемый пост)
1. пользователь должен сообщить мне свои данные(логин/пароль) для того что бы мой сервис смог где то(в фейсбуке) авторизоваться от имени этого пользователя, а мне, по совсем не сложным причинам, совсем не хочется выступать как прокси в этом процессе(нет никакого доверия ко мне, и что я ничего не украду), т.е. желательно избежать попыток узнать данные пользователя.

не должен он тебе ничего сообщать. Он авторизируется на фейсбуке, ты хоть почитай про OAuth ради приличия). Твое приложение может даже у фейсбука спросить валидный ли токен или нет...

Цитата(Экскалупатор @  20.6.2013,  21:09 Найти цитируемый пост)

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

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


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Экскалупатор
Дата 23.6.2013, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



jonie, ))) не  надо ж так кричать на меня... про OAuth я читал, но как то нигде не встречал что можно проверить валидность token. У меня как бы в этом и загвоздка была, все остальное уже отсюда нормально поейдет.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.1055 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.