I've spent the last couple of months working on some projects that
attempt to utilize XMPP's roster management api's to store users trust
relationships for creating and interacting with social networks. This
is all well and good but there doesn't exit a secure means of me
passing user credentials to the jabber server to authenticate my
users, /and/ my daemons are forced to store the stession state
locally. If we consider that creating and interacting with a giant
global social network is a plausible use case for xmpp (and the user
profile xep seems to suggest that at least some people have thought
that way). Then having a way to safely authorize web clients will be
an enormous boon to developers of these networks.

Example work flow
==============

User = user logging into a web application
Consumer = The Web Application
Service Provider = Users Jabber Server

Use requests access to an xmpp api from the Consumer
Consumer redirects the user to the Service Provider
The User enters their credentials into the Service Provider
The Service Provider posts back to the Consumer with a unique access token
The Consumer then make the xmpp api call to the Service Provider with
the unique token granted to it.

Future request for data from the Consumer would be done with the
token, and provided access to the restricted api's

Problems and Pitfalls
================

The servers would need to provide HTML login forms to users
The servers would need to be able to deal with the tokens passed to
the consumers and allow acces to the users data given that.

Anyway, I've never proposed anything here, so I would love to hear
ideas, on how we can make this work, and if we can't why.

Thanks,
~ Anders

Reply via email to