Account Management System

From Unofficial BOINC Wiki

(Redirected from Account Management Systems)
Jump to: navigation, search

Contents

[edit] General

To create an Account with BOINC Powered Projects, a participant must:

and then for each selected project:

If the participant chooses N projects, there are N forms to fill out, N emails to handle, and N dialog interactions with the BOINC Client Software. This is tedious if there are lots of projects. Furthermore, it involves cutting and pasting long random strings, which is intimidating to some participants.

This document describes BOINC's support for a BOINC Account Management Systems, which streamline the process of finding and joining BOINC projects. A typical account management system is implemented as a web site. The Participant experience is:

This requires about 1/3 of the interactions of the manual approach, and avoids dealing with long random strings. Implementation

An account management system works as follows:

An Account Management System
An Account Management System


  1. The Participant sets up his Meta-Account and selects projects.
  2. The Account Manager issues a create account RPC to each selected project.
  3. The project creates an Account (marked as 'unconfirmed') and sends an email to the Participant.
  4. The Participant opens the email and clicks on a link in it, causing the account to be marked as 'confirmed'.
  5. The Account Manager periodically polls each selected project with a query account RPC, waiting for all accounts to become confirmed.
  6. When all accounts are confirmed, the Participant downloads and installs the BOINC Client Software from the account manager. The install package includes a file (specific to the Account Manager) containing the URL of the Account Manager.
  7. The BOINC Client Software runs, and asks the Participant to enter the User Name and password of his Meta-Account.
  8. The BOINC Client Software does a query accounts RPC to the Account Manager, obtaining a list of accounts. It then attaches to these accounts and proceeds.

[edit] BOINC Client Software Functionality

The BOINC Client Software uses the following files to keep track of Account Manager information.

[edit] acct_mgr_url.xml

This file identifies the Account Manager. It is typically bundled with the BOINC client in an installer package. Its format is:

<acct_mgr>
    <name>Name of BOINC account management system</name>
    <url>http://acctmgr.com/</url>
</acct_mgr>

[edit] acct_mgr_login.xml

This file contains meta-account information. Its format is:

<acct_mgr_login>
   <login>name</login>
   <password>xxx</password>
</acct_mgr_login>

If the BOINC Client Software finds acct_mgr_url.xml but not acct_mgr_login.xml, it prompts for a name and password, stores them in acct_mgr_login.xml, and makes an Account Manager RPC. The BOINC Client Software offers menu items for making an Account Manager RPC, and for changing the name/password.

[edit] Remote Procedure Call (RPC) Specifications

This architecture involves two RPC mechanisms:

  • Account creation RPCs (steps 2 and 5 above);
  • Account manager RPCs (step 8 above).

The underlying protocol of both mechanisms is as follows:

  • Each RPC is an HTTP GET transaction.
  • The input is the GET arguments, i.e. a string of the form
param1=val1&param2=val2&...&paramn=valn
where param1 ... paramN are the parameter names, and val1 ... valn are the values.
  • The output is XML.

[edit] Account Creation RPCs

[edit] Create Account

URL project_url/am_create.php
input email_addr: email address


       nonce: nonce ID (a long random string that is hard to guess,
           e.g. in PHP:
           md5(uniqid(rand(), true))
       
acct_mgr_name: name of the account manager site
output
<am_create_reply>
    [ <error>message</error> ]
    [ <success/>
</am_create_reply>

    
action If the project already has an account with that email address,
       it returns an error.
       Otherwise the project creates a tentative account

and sends email to the given address, of the form:

The computing project [ project name ] has been requested by [ acct_mgr_name ]
to create an account with email address [ email_addr ].
To confirm, visit the following URL:
    xxx

If you didn't initiate this request, ignore this message.
        

When the participant visits xxx, the tentative account is confirmed.

[edit] Query Account

URL project_url/am_query.php
input nonce (the one passed to am_create.php)
output
<am_query_reply>
    [<error>MSG</error>]
    [ <success/>
    <confirmed>0</confirmed> ]
    [ <success/>

    <account_key>KEY</account_key> ]
</am_query_reply>
    
action If the tentative account has been confirmed, attempts to create an account with the previously given email address. If this fails (e.g., because an account with that email address already exists) returns an error. Otherwise returns returns the account key.


[edit] Get Account Information

URL project_url/am_get_info.php
input account_key
output
<am_get_info_reply>
    <success/>
    <name>NAME</name>
    <country>COUNTRY</country>

    <postal_code>POSTAL_CODE</postal_code>
    <global_prefs>
        GLOBAL_PREFS
    </global_prefs>
    <project_prefs>
        PROJECT_PREFS
    </project_prefs>

    <url>URL</url>
    <send_email>SEND_EMAIL</send_email>
    <show_hosts>SHOW_HOSTS</show_hosts>
    <teamid>N</teamid>

</am_get_info_reply>

or

<am_get_info_reply>
    <error>MSG</error>
</am_get_info_reply>
    
action returns data associated with the given account


[edit] Set Account Information

URL project_url/am_set_info.php
input account_key


[ name ]
[ country ]
[ postal_code ]
[ global_prefs ]
[ project_prefs ]
[ url ]
[ send_email ]
[ show_hosts ]
[ teamid ] zero means quit current team, if any

output
<am_set_info_reply>
[ <error>MSG</error> ]
[ <success/> ]
 
</am_set_info_reply>
action updates one or more items of data associated with the given account


[edit] Account Manager RPCs

URL Given in the file acct_manager_url.xml
input name
password
output
<accounts>
    [ <error>MSG</error> ]
    [ <account>
        <url>URL</url>

        <authenticator>KEY</authenticator>
      </account>
      ...
    ]
</accounts>
action returns a list of the accounts associated with this meta-account

[edit] UCB Source

[edit] Copyright ©

  • 2005 University of California
  • 2005 Paul D. Buck

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.

Personal tools