Как мне обрабатывать идентификационные данные пользователя для приложения Window Phone / WCF / ASP.NET MVC? - PullRequest
11 голосов
/ 29 марта 2011

Я работаю над приложением, которое позволяет вводить и отображать данные как из приложения Windows Phone, так и из веб-интерфейса MVC 3.Доступ к данным для телефонного клиента осуществляется через аутентифицированные службы WCF, размещенные в приложении MVC 3.Пользователи будут отслеживать информацию, которая является уникальной для них, поэтому служба будет отображать только те данные, которые я ввел.

Какой самый простой способ обработки идентификационных данных в этом сценарии?Я думал об использовании Windows Live ID, так как приложение для телефона имеет доступ к свойству Windows Live Anonymous ID .Однако из того, что я могу сказать, нет никакого способа получить разрешение для входа в Windows Live через Интернет, который дает мне тот же анонимный идентификатор Windows Live - Вход в Windows Live Messenger Connect дает мне уникальный идентификатор конкретного сайта , который будет отличаться от анонимного идентификатора клиента телефона.

В качестве альтернативы, я мог бы использовать аутентификацию Facebook как на клиенте, так и на телефоне с Facebook SDK .Моя забота заключается в обеспечении сервисных звонков.Я думаю, что в первый раз, когда устройство подключается к услуге с идентификатором Facebook, сервер выдает ему ключ, и для доступа к услуге требуются идентификатор Facebook и выданный сервером ключ.

Мысли включенывыше?Есть ли более простое решение, которое мне не хватает?

Ответы [ 3 ]

2 голосов
/ 02 апреля 2011

Альтернативой API-ключу является использование маркеров идентификации и безопасности на основе утверждений.Вы можете использовать Службу контроля доступа Windows Azure в качестве доверенного поставщика токенов безопасности, добавив, что он предварительно настроен на использование LiveID, Facebook, Google, любого OpenID и любого провайдера идентификации WS-Federation.И веб-сайт, и веб-сервис будут доверять ACS.

ACS предоставит вам токены SAML для веб-сайта (что позволит вашим пользователям входить в него с помощью LiveID, Google или FB).

ACS также может выдавать простые веб-токены (SWT), которые особенно полезны для служб REST (при условии, что это используется клиентом телефона).

Нельзя использовать LiveID, связанный с телефоном.в вашем приложении, но вы все еще можете использовать LiveID (или любой другой поставщик удостоверений).Это пример того, как это сделать.В нем используется общий подход: встроить веб-браузер в приложение телефона и использовать его для согласования всех маркеров безопасности.

Использование ACS дает вам большую гибкость без всей полноты.Сделать сайт «осведомленным о претензиях» и довериться ACS очень просто.Больше образцов здесь: http://claimsid.codeplex.com

2 голосов
/ 29 марта 2011

Дорогой Джон, У меня нет опыта разработки WP, но я немного искал WCF Auth. в течение нескольких дней недавно и узнал, что apiKey auth является почти лучшим способом для меня. Роб Джейкобс объяснил, как это работает в этой статье;

http://blogs.msdn.com/b/rjacobs/archive/2010/06/14/how-to-do-api-key-verification-for-rest-services-in-net-4.aspx

1 голос
/ 29 марта 2011

Если вам нужно связать телефон с пользователем на сайте MVC, вы можете сделать то, что Netflix и Amazon делают для Roku и других устройств и имеют какой-то процесс активации,Чтобы сделать это проще, вы можете использовать QR-код или другой тип штрих-кода, сгенерированный сайтом MVC, попросить пользователя сфотографировать его и обработать изображение, используя Silverlight ZXing Scanning Library .Возможно, немного запутанный, но он работает для всех приставок.

...