Changes between Version 9 and Version 10 of Proposal/ProjectSimpleAccountCreation


Ignore:
Timestamp:
09/28/11 13:16:25 (6 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Proposal/ProjectSimpleAccountCreation

    v9 v10  
    1 = Simplified Project Website Account Creation in BOINC =
    2 == Introduction ==
    3 BOINC supports multiple ways to create accounts for any given project.  Creating accounts on a BOINC project via the project website hasn’t received as much attention in previous years as it probably should have.  This revised process is an attempt to better capture volunteers that are visiting a project website via press releases and other forms of advertisement.
     1[[PageOutline]]
     2= Simplified Account Creation =
    43
    5 At present the current system asks the volunteer to remember the projects URL and then shuffles them off to the BOINC website to download the client software.  Once the software has been downloaded the volunteer has to walk through the project attach wizard and then volunteer must remember the project URL and answer questions about account credentials.
     4Currently, to attach to a project not in BOINC's "official list",
     5a new volunteer must:
     6 * visit the project's web site, note its URL, and follow a "download BOINC" link.
     7 * download and install BOINC
     8 * type or paste the URL into the Attach Project wizard
     9 * enter credentials (email, password)
     10 * fill in some additional info on the "complete account creation" web page
    611
    7 With the purposed changes in this document we should be able to support the following scenarios:
    8  * Automatic attach via anonymous accounts
    9  * Automatic attach via identifiable accounts
    10  * Automatic attach via client-created accounts
     12The following is proposal for new features in BOINC to support
     13several ways of streamlining this process.
    1114
    12 Anonymous accounts are accounts which do not contain and personally identifiable information, when a volunteer downloads the client software a set of cookies are deposited onto the host by the project to inform the manager which project it should attach too.
     15'''Note: we assume that the project is in BOINC's official-project list
     16(although some of the ideas could adapted to remove this restriction).'''
    1317
    14 Identifiable accounts are the traditional account scheme used in BOINC, at present we just care about an email address and password.  In this scenario a project can determine which pieces of information it needs to collect before setting the cookie set and begin the process of downloading the client software.  As far as the client software is concerned it is the same as attaching to an anonymous account.
     18== Scenarios ==
     19We want to support the following scenarios:
    1520
    16 Automatic attach via client-created accounts is where the server stores the needed cookie information except the authenticator, the client will then prompt for the email address and password to use for the project and then proceed to create that account before attaching to the project.
     21=== Public account ===
    1722
    18 == Changes to the Project Website ==
    19 When a volunteer first visits a project's homepage with a supported browser they are presented with a 'download now' link instead of the current 'create account' link.
    20 Under the anonymous account scenario and client-created account scenario the process might look like this:
     23In this case the volunteer is attached to an existing "public" account.
    2124
    22 Clicking on the 'download now' link will cause a set of cookies to be stored on the machine; these cookies will contain the authenticator to use and the current time of the server.  The resulting page should provide basic instructions to launch the BOINC installer on the supported browser.  After 5-10 seconds the webpage should redirect to the BOINC website to download the BOINC installer and pass in the authenticator and return URL which will be used to return the volunteer to the project where they may decide to provide more information (name, country, team, etc) to the project.
     25Interface (new users):
     26 * Click on Download link
     27 * Run installer
     28That's it (no Wizard).
    2329
    24 Under the identifiable account scenario the process might look like this:
     30Interface (existing users):
     31 * Click on Volunteer link
     32 * A few minutes later, the Manager shows a "confirm" dialog:
     33   Do you want to add project X, URL Y.
    2534
    26 Clicking on the 'download now' link will cause a popup frame to appear asking for the required information.  After the information has been provided a set of cookies are stored on the machine; this cookie will contain the authenticator to use and the current time of the server.  The resulting page should provide basic instructions to launch the BOINC installer on the supported browser.  After 5-10 seconds the webpage should redirect to the BOINC website to download the BOINC installer and pass in the authenticator and return URL which will be used to return the volunteer to the project where they may decide to provide more information (name, country, team, etc) to the project.
     35A weak authenticator is used
     36since we don't want the user to be able to edit the account.
    2737
    28 == Changes to the BOINC manager ==
    29 At present the BOINC manager requires either a project_init.xml file or an acct_mgr_url.xml file to engage the cookie detection code and automatic add project process.  We should modify the manager to check for cookies from all the available URLs in the all projects list.  It should behave like this:
     38=== Anonymous account ===
     39
     40In this case an "anonymous" account is created
     41(Name: "Anonymous"; email: random string).
     42
     43Interface: same as Public account.
     44
     45A strong authenticator is used.
     46
     47Accessible via "Your account" link on MGR.
     48The project must export this GUI URL.
     49(make sure this is clearly visible in simple view).
     50
     51=== Identifiable account ===
     52
     53Interface:
     54 * User fills out a form with email addr, password, user name,
     55   and anything else the project wants to collect.
     56 * User clicks on either Download (if new user)
     57   or Add Project (if existing user).
     58 * new user case: run installer
     59 * existing user case: the Manager shows a "confirm" dialog:
     60   Do you want to add project X, URL Y, user name Z?
     61
     62== Implementation notes ==
     63
     64In all cases, the project web server sets a cookie with
     65account info prior to downloading BOINC.
     66
     67=== Client download without going to the BOINC web site ===
     68We need to add web RPCs so that project web code
     69can find the URL of the appropriate client version to download.
     70
     71If it can't (i.e. insufficient browser info), it should redirect to the BOINC download page.
     72
     73=== Manager/client coordination ===
     74
     75In the new-user case, if the manager doesn't find a cookie on the first pass,
     76it should wait until the client has a new all-projec,
     77then scan cookies again.
     78May need to add a flag to CC_STATUS for this.
     79
     80=== Changes to the BOINC manager ===
     81The manager will do the following,
     82on startup and every 10 min or so:
    3083
    3184{{{
     85        foreach (project and acct mgr in all_projects_list.xml)
     86            if exists(project.cookie) and not already attached
     87                add project cookie to CookiesFound array
    3288
    33 if NumberofAttachedProjects == 0 then
    34     if exists(project_init.xml) or exists(acct_mgr_url.xml) then
    35         ... do the same stuff as we do now ...
    36     else
    37         foreach (project in all_projects_list.xml)
    38             if exists(project.cookie) then
    39                 add project cookie to CookiesFound array
    40             endif
    41         endfor
    42 
    43         sort CookiesFound array by CreationTime
     89        sort CookiesFound array by increasing CreationTime
    4490
    4591        if CookiesFound.Count > 0 then
    4692            if CookiesFound[0].IsProject then
    47                 launch attach to project wizard in automatic mode
     93                if any projects or acct manager already
     94                    show confirm dialog
     95                attach to project
    4896            endif
    4997            if CookiesFound[0].IsAccountManager then
    50                 launch attach to account manager wizard in automatic mode
    51             endif
    52         endif
    53     endif
    54 endif
     98                if any projects or acct mgr alread
     99                    show confirm dialog
     100                attach to acct mgr
     101}}}
     102If there is an error in the attach, deliver a notice suggesting checking proxy settings.
    55103
    56 }}}
    57 NOTE:  Unless there is an error, the only thing the volunteer might be prompted for is proxy server information.
     104=== Server-side PHP code ===
     105We need to supply PHP templates for all the above scenarios.
    58106
    59 == Implementation Details ==
     107=== Proxy settings ===
     108
     109Add auto proxy setup in manager (at startup, if no projects/acct mgrs).
     110If we find proxy,
     111 * tell the client (set_proxy GUI RPC)
     112 * tell the client to get proj list (may need to add GUI RPC for this).
     113
    60114=== Project Cookie Contents ===
    61115
     
    65119|| !CreationTime || time_t || time(0) || The current timestamp of the cookie set ||
    66120
    67 Notes: If the authenticator is missing but the Action item is defined then it is assumed the manager should prompt for the creation of credentials.
     121Notes: If the authenticator is missing but the Action item is defined
     122then it is assumed the manager should prompt for the creation of credentials.
    68123
    69124Notes: Pre 6.13 clients only react to the Authenticator item.
     
    78133|| !CreationTime || time_t || time(0) || The current timestamp of the cookie set ||
    79134
    80 == Conclusion ==
    81 In theory this should allow us to capture incoming volunteer traffic from mainstream media regardless of their level of computer expertise.
     135== Outstanding Issues ==
    82136
    83 == Outstanding Issues ==
    84 === What do we do about alpha and beta projects? ===
    85 Normally alpha and beta projects to not make the all_projects_list.xml file. However, it would be useful to be able to capture new BOINC clients via news articles about alpha and beta projects.
     137=== Projects not on the official-project list ===