OpenID for data portability in virtual world

From OpenSimulator

Revision as of 10:21, 16 July 2008 by Lulurun (Talk | contribs)

Jump to: navigation, search

Contents

What is OpenID

For OpenID related knowledge: http://en.wikipedia.org/wiki/OpenID

Foreign user login

In virtual world, To enable a foreign user authentication, What I can imagine is that there are 3 ways can be used.

  • Import account from one GridService to another
  • Use a central OpenID provider
  • UserServer(OpenSim) acts as both RP and OP

Detailed explanations are following:

Import (copy an account information from one to another)

This is the most simple way, just copy an account from its original Gridservice to another.

this can be done through webpages, and current OpenSim's Userserver already has a similar XMLRPC method (GetUserProfile) to do such thind, even though some security holes need to be filled.

  • Advantages:
    1. Quick, direct solution, easy to develop / use.
  • Disadvantage:
    1. The same user profile copied many times, can not manage them(in the case you change your profile in 1 gridservice, it does not affect other grids)
    2. User have to remember too many password(even though you can always use the same)
    3. If your name has been taken, you have to change to another - no name portability
    4. other bad points ...

Use a central OpenID provider

Just like in the web world, there are already lots of website enabled both legacy login and openid login,

UserServer can also support OpenID login, in this case, authentication can be delegated to OpenID providers.

  • Advantages:
    1. User auth information is stored only in 1 place.
    2. no worry about your favorite name has been take.
    3. ... some other OpenID advantages

UserServer acts as both RP(Relying Party) and OP(OpenID Provider)

UserServer can not only delegate an authentication to another UserServer, but also accept an incoming authtication request from another UserServer.

That means,

  • If a local user login to an UserServer, the UserServer use legacy way(password checking) to confirm the user's identity,
  • If a foregin user login to an UserServer, UserServer delegates the authtication.
    • user input its OpenID url(probably its Grid's UserServer url), then follow the OpenID

authentication protocol

  • When an authtication request comes, UserServer checks the user's identity, if OK, UserServer returns the user profile(include name, uuid, inventoryurl, asseturl).


  • Advantages
    1. User auth information is stored only in 1 place.
    2. no worry about your favorite name has been take.
    3. ... some other OpenID advantages
    4. UserServer supports "UserAssetUrl", "UserInventoryUrl", "UUID" by standard
    5. Help the OpenID expansion, minor
  • Disadvantages
    1. More changes needed
    2. Current OpenSim's httpserver is not fully functional(environment variable supports, module supports, compared with apache)
Personal tools
General
About This Wiki