2008-12-22 24 views
16

Voy a desarrollar un servicio web REST-ful para un nuevo sitio web público. La idea detrás del servicio web es que los terceros desarrollen IU totalmente funcionales para la lógica comercial.Autenticación del servicio web usando OpenID

Por razones de seguridad, me gustaría evitar que los usuarios tengan que dar sus contraseñas para nuestro servicio a las aplicaciones de terceros. (¿Quizás esto no debería ser una gran preocupación?) En su lugar, estoy buscando implementar algún tipo de sistema de inicio de sesión en nuestro sitio que proporcione un token de autenticación a la aplicación de terceros pero que mantenga la contraseña real fuera de sus manos.

Esto me hizo pensar que OpenID podría ser una solución potencial aquí. Me parece que debería funcionar: la contraseña real es manejada por el proveedor de OpenID y, por lo tanto, no descansa en la aplicación de terceros. Creo que el problema probablemente recaería en los diversos pases, pero debería ser manejable.

Sin embargo, hay una sorprendente falta de información Googleable sobre esto, así que me gustaría la opinión de SO. ¿Alguien ha implementado un sistema similar antes? ¿Es posible? ¿Vale la pena la molestia?

Respuesta

13

estoy completamente de acuerdo que lo que quiere es OAuth; Digo que he trabajado en sistemas OAuth y OpenID. También he estado en su barco varias veces, teniendo que desarrollar una API del servicio web REST.

Para unas muy buenas ideas sobre OAuth, y por qué es lo que quiere ver a estos artículo adjunto:

Estos son lectura obligada, hay cuatro partes a todos leer: http://hueniverse.com/oauth/guide/

el RFC, leer después de leer arriba, ya que puede ser un poco desalentador para la mayoría: http://oauth.net/core/1.0

Y, finalmente, tal vez algún código. Tengo un par de proyectos alojados que usan Java/Groovy para hacer OAuth. Uno es un antiguo cliente de OAuth, el otro es un cliente para interacciones específicas con NetFlix. http://www.blueleftistconstructor.com/projects/

Si usted es relativamente poca experiencia con el reposo (no se ha construido una API de Web a gran escala todavía) Yo recomendaría que usted compra (o mejor que su jefe a) "Servicios Web REST" por Richardson & Ruby. Es un libro de O'Reilly. Puedo decir que es uno de sus mejores libros para debutar en los últimos años.

También podría ser útil observar algunas API RESTful basadas en OAuth. La API de NetFlix es un ejemplo perfecto: http://developer.netflix.com/docs

¡Buena suerte y feliz codificación!

+0

Desafortunadamente netflix no está disponible en mi país. Por lo tanto, no puedo leer [sus documentos] (http://developer.netflix.com/docs) :( – anakkin

2

Hasta ahora, he encontrado que vale la pena 1 link:

http://markmail.org/message/utf7js473zqv45hv

Esta conversación menciona algo llamado "OpenID Cambio", que es lo mío ... pero el enlace incluido está roto y no hay no mucha información sólida en Google para ello.

Parece que OAuth podría ser el boleto: http://oauth.net/

0

Hemos estado trabajando en un proyecto para integrar la Autenticación OpenID para servicios web SOAP. Puede encontrar nuestro proyecto en http://code.google.com/p/ws-sandhana/.

Puede proporcionar Single Sing On a sus servicios web utilizando la autenticación OpenID y puede aplicar los Proveedores de confianza de OpenID y los atributos requeridos de los usuarios definiendo las políticas de seguridad del servicio.

Esta es una implementación de código abierto en Apache Rampart, que es el módulo de seguridad para el motor de servicio web Apache Axis2. Puede encontrar nuestro blog en http://sandhana-project.blogspot.com/para obtener más información.

Cuestiones relacionadas