Как мне использовать OpenID для аутентификации в WCF Data Services из приложения Windows Phone 7? - PullRequest
3 голосов
/ 21 декабря 2010

У меня есть приложение для Windows Phone, которое читает и записывает данные из службы данных WCF, размещенной в приложении ASP.NET MVC 3.

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

Как мне настроить клиент и сервер, чтобы сделать эторабота

Ответы [ 2 ]

1 голос
/ 21 декабря 2010

Чтобы использовать OpenID в вашем приложении, вы должны использовать встроенный элемент управления WebBrowser, который подключается к сайту провайдера (или вашему сайту, который может перенаправлять). Когда поставщик OpenID возвращается на ваш сайт (встроенный в элемент управления браузера), вы передаете необходимые идентификаторы обратно в приложение.

Есть пример выполнения этого с приложением Twitter (с использованием OAuth) на http://blog.markarteaga.com/OAuthWithSilverlightForWindowsPhone7.aspx

0 голосов
/ 21 декабря 2010

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

Не говоря уже о моей голове, я бы сказал, что можетЧтобы сделать OpenID следующим образом:

Сначала настройте аутентификацию OpenID на сервере.Затем, когда клиентское приложение должно пройти аутентификацию, оно должно использовать элемент управления WebBrowser, чтобы указать URL-адрес сервера, который, в свою очередь, позволяет пользователю проходить аутентификацию с помощью своего поставщика OpenID и направляет браузер обратно на сервер с информацией аутентификации.На этом этапе клиентское приложение не знает о состоянии аутентификации пользователя, но сервер знает, кто они.Теперь сервер может сгенерировать одноразовый ключ авторизации для использования клиентом.Он может перенаправить на специальный URL-адрес с этим ключом, после чего клиент обнаруживает указанный URL-адрес, извлекает ключ, скрывает элемент управления WebBrowser и использует этот ключ для связи с сервером.Я считаю, что это был бы безопасный способ сделать такую ​​аутентификацию, но, как я уже сказал, это просто не в моей голове.

...