[OpenID] Replacing email verification with RSS 'push' feeds and OAuth

Andrew Arnott andrewarnott at gmail.com
Mon Apr 6 15:45:08 UTC 2009

Deep in another OpeNID thread I suggested part of this idea, but I've
expanded on that idea in my head and think it deserves its own thread
besides to *get some feedback from you*.
First the problems:

   - Email verification is a step many web sites have to take the user
   through in order to make sure they can reach the user, to allow an account
   recovery step later on, and as a sort-of attempt to make sure they're not a
   bot, although that's not so reliable.
   - Email verification does not prove to the web site that the email
   address is frequently checked by the user, or even owned by the user (it
   could be an anonymous email service).
   - Email verification is a blocker to account registration for many
   would-be users.
   - RPs can't *generally* rely on OPs' assertions of a user's email address
   because the OP could be controlled by the user.
   - Users giving their personal or work email addresses to web sites,
   especially ones they are not planning on a long-term relationship with,
   contributes to the spam problem.
   - The paradigm of using email to carry on a two-way communication doesn't
   fit very well as many web sites are only interested in pushing messages to
   you from a "noreply" email address.
   - Web sites have a difficult time knowing when their emails are going to
   your spam folder, or when the email address has been deactivated or
   - Configuring web sites to send email can be difficult, particularly when
   their service provider disallows SMTP.

Proposed solution:

   1. When a user logs into an RP using an OpenID, the RP performs discovery
   on the user's XRDS document and discovers a service element for push
   notifications that includes the URI to receive the messages the RP wishes to
   send to the user.  This element also includes information the RP needs to
   use OAuth for authorization to send to this message queue.
   2. During authentication (if the OP is also providing the message queue
   service for the user) or immediately following authentication (if the user
   is using a separate message queuing service), the RP sends an OAuth message
   to the queuing SP requesting authorization to post messages to this user.
    The user is directed to a web page explaining the RP wants to send messages
   and clicks "Accept".
   3. The user is now logged into the RP.

When the RP wants to send messages to the user, it POSTs to the queuing SP
using its OAuth token.
The user receives these messages in a manner previously configured with his
queuing SP, which will typically be via email forwarding to his inbox.
If the user ever wants to terminate all messages from this RP, he can force
this by revoking the OAuth token issued to the RP by visiting his queuing
The RP realizes its messaging push permission has been revoked by the 401
Unauthorized HTTP response it receives the next time it tries to post a
message and can then deactivate that account to save bandwidth and
processing power.

Open issues / questions:

   1. The RP will need a consumer key to send the OAuth request, but it
   often won't have one since any user with any queuing SP may log in.
   2. A standardized message push POST format will have to be spec'd out.

Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death
your right to say it." - Voltaire
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-general/attachments/20090406/71fb6a6a/attachment.htm>

More information about the general mailing list