2011-03-28 13 views
11

Estoy trabajando en una aplicación que permite la entrada y visualización de datos desde una aplicación de Windows Phone y una interfaz web de MVC 3. El acceso a datos para el cliente del teléfono se realiza a través de servicios WCF autenticados alojados en la aplicación MVC 3. Los usuarios rastrearán información que es exclusiva de ellos, por lo que el servicio solo me mostrará los datos que ingresé.¿Cómo debo manejar la identidad del usuario para una aplicación Window Phone/WCF/ASP.NET MVC?

¿Cuál es la forma más simple de manejar la identidad en este escenario? Pensé en usar Windows Live ID, desde el phone application has access to a Windows Live Anonymous ID property. Sin embargo, por lo que puedo decir, no hay forma de obtener un inicio de sesión de Windows Live basado en la web que me da la misma identificación de Windows Live Anonymous - Windows Live Messenger Connect login gives me a site-specific unique ID, que sería diferente de la identificación anónima del cliente del teléfono.

Como alternativa, podría usar la autenticación de Facebook tanto en el cliente como en el teléfono con Facebook SDK. Mi preocupación es asegurar las llamadas de servicio. Estoy pensando que la primera vez que un dispositivo se conecta con el servicio con una identificación de Facebook, el servidor emite una clave, y tanto la identificación de Facebook como la clave emitida por el servidor son necesarias para acceder al servicio.

¿Pensamientos sobre lo anterior? ¿Hay una solución más simple que me falta?

Respuesta

2

Estimado Jon, No tengo experiencia en el desarrollo de WP, pero he hecho una pequeña búsqueda de WCF Auth. hace un par de días y descubrí que la autenticación apiKey es casi la mejor manera para mí. Rob Jacobs ha explicado cómo funciona en este artículo;

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

+0

Gracias, agradezco el enlace! –

+0

@Jon no hay problema, señor. siempre me ayudas y estoy feliz de ayudar con eso incluso si esto no fuera algo grande. – tugberk

1

Si es necesario enlazar el teléfono a un usuario en el sitio MVC que podría hacer lo Netflix y Amazon hacer por Roku y otros dispositivos y tener algún tipo de un proceso de activación. Para hacerlo más fácil, podría usar un código QR o algún otro tipo de código de barras generado por el sitio MVC, haga que el usuario tome una fotografía y procese la imagen usando el Silverlight ZXing Barcode Scanning Library. Probablemente un poco intrincado, pero funciona para todos los decodificadores.

2

Una alternativa a una clave de API es utilizar identidades basadas en notificaciones y tokens de seguridad. Podría usar el servicio de control de acceso de Windows Azure como un emisor confiable de tokens de seguridad, con el valor agregado de que viene preconfigurado para usar LiveID, Facebook, Google, cualquier OpenID y cualquier proveedor de identidad de WS-Federation. Tanto el sitio web como el servicio web confiarían en ACS.

ACS le otorgará tokens de SAML para el sitio web (permitiendo a sus usuarios iniciar sesión con LiveID, Google o FB).

ACS también puede emitir Tokens Web simples (SWT), que son especialmente buenos para los servicios REST (suponiendo que el cliente del teléfono lo use).

No puede usar el LiveID asociado con el teléfono en su aplicación, pero aún puede usar LiveID (o cualquier otro proveedor de identidad). Esto es an example de cómo hacerlo. Utiliza el enfoque común de insertar un navegador web en la aplicación del teléfono y usarlo para todas las negociaciones de token de seguridad.

El uso de ACS le brinda mucha flexibilidad sin toda la completitud. Hacer que un sitio web "tenga en cuenta las reclamaciones" y confiar en ACS es muy sencillo. Más ejemplos aquí: http://claimsid.codeplex.com

Cuestiones relacionadas