2011-09-20 12 views
7

Actualmente estoy considerando crear una aplicación para implementar en la nube azul. La razón principal para considerar Azure en lugar de Amazon es el servicio de control de acceso. Quiero aceptar tantos tipos de credenciales diferentes como sea posible para mi aplicación, especialmente Facebook.¿Cómo se autentica una aplicación WPF cliente con un servicio WCF en Azure?

Algunos de los usuarios utilizarán la aplicación basada en HTML, otros una aplicación de cliente WPF. La pregunta es, ¿cómo puedo autenticar al cliente utilizando el proveedor que quiera y luego comunicarme con el servicio WCF? Supongo que necesito usar el componente del navegador web en mi aplicación, o un navegador externo (lo ideal es que admita ambas opciones para usuarios paranoicos), pero no tengo claro cómo usar esa conexión para el servicio WCF. .

+1

+1 Interesante pregunta. No estoy seguro de que haya una respuesta fácil, pero la estaré viendo. –

+1

Acaba de encontrar http://msdn.microsoft.com/en-us/IdentityTrainingCourse_SilverligthAndIdentity2010 que podría resultar útil, lo estoy leyendo ahora. – ForbesLindesay

+0

Lamentablemente, el ejemplo de fuera del navegador utiliza nombre de usuario y contraseña, por lo que no admitiría facebook – ForbesLindesay

Respuesta

0

Considere separar la autenticación del usuario de la aplicación entre la aplicación y el servicio WCF.

Para garantizar el acceso al servicio WCF, puede usar el ACS para implementar la autenticación mediante un Token web simple (SWT). Hay varios ejemplos de esto disponibles a través de su motor de búsqueda de elección.

Lo siento, no puedo darle un ejemplo más concreto en este momento. Soy móvil con un i-device y, por lo tanto, tengo acceso limitado a las herramientas.

+0

El servicio WCF necesita saber quién es el usuario y poder garantizar su autenticidad, no estoy del todo claro sobre cómo su solución debe proporcionarlo. ¿El SWT autentica la aplicación o el usuario? – ForbesLindesay

0

Creo que su intención es de alguna manera Autenticar/Autorizar usuarios para este servicio WCF ¿verdad? En este caso, puede ver la muestra de la "aplicación de teléfono de Windows 7": http://msdn.microsoft.com/en-us/library/gg983271.aspx. Aquí verá que esta muestra usa el protocolo "javascriptnotify".

Para el control WPF WebBrowser hay muchos artículos que describen cómo obtener notificaciones del javascript en el DOM.

De esta manera puede obtener un token para su aplicación WPF y luego tendrá que usar el mismo token para autenticarse en el servicio WCF.

En el caso de la Aplicación web, puede obtener el token del módulo WSFam. Una forma de hacerlo podría ser registrarse para el evento SecurityTokenReceived en WSFam.

De esta forma en ambos casos puede terminar con un token SAML.

Luego puede crear su propio TokenProvider SAML personalizado para el WCF y usar el token SAML que obtuvo de ACS para hablar con su servidor.

0

Lo que estás buscando se llama 'federación activa'. Ver this question

Normalmente, sus clientes web usarán el formulario pasivo, en el que se redirigen a una página de inicio de sesión propiedad de un servicio de token de seguridad. No puede redirigir una aplicación wpf o winforms, por lo que su aplicación debe realizar los movimientos que su navegador realiza detrás de las escenas, incluida la negociación y almacenamiento en caché del token de seguridad que recibe del STS y luego presentarlo en cada solicitud.

Cuestiones relacionadas