2011-03-28 15 views

Respuesta

8

Supongo que está hablando de la línea de comandos curl, no de la biblioteca. No lo he intentado, pero de acuerdo con lo que sé de OpenID y Curl, debería ser posible. Sin embargo, no completamente automatizado. Tendrá que "analizar" el contenido del proveedor de identidades y de las páginas de inicio de sesión del proveedor de contenido si quiere ser realmente tranquilo y genérico. Si usted sabe a dónde va y no le importa para acoplar su servicio y el cliente (no hay hateoas), primero puede autenticar con el proveedor de identidad, por ejemplo:

curl -iSsL --user-agent 'Mozilla/5.0' --cookie cookies --cookie-jar cookies \ 
     --data login=$mylogin \ 
     --data passwd=$mypasswd \ 
     https://identprovider.example.com/login 

y luego enviar su OpenID al contenido proveedor:

curl -iSsL --user-agent 'Mozilla/5.0' --cookie cookies --cookie-jar cookies \ 
       --data openid="$myopenidurl" \ 
       http://contentprovider.example.com/login 

Supongamos que el proveedor de contenido ya está autorizado para usar el proveedor de identidades. continuación, obtener su contenido:

curl -iSsL --user-agent 'Mozilla/5.0' --cookie cookies --cookie-jar cookies \ 
       http://contentprovider.example.com/interesting/content 

Tenga en cuenta que este enfoque no es reparador, ya que dura codificaba el URI de la POST y campos en el código. Para desacoplar el cliente y el servidor, los uris y los nombres de campo se deben extraer de las respuestas. En un script bash, puede usar sed por ejemplo.

Creo que debería funcionar, pero si no, entonces tendrá que seguir realmente los redireccionamientos y extraer URI y formularios, ya que algunos parámetros se pueden pasar en los URI de redirección o en campos de formulario ocultos.