<div dir="ltr">Hi good morning,<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Personally I'm still far from being sold on a pull system. I think inventory and asset servers should be independent. You can set permissions in them to say who can access what and what rights they have. But to have a inventory server pulling things from various users servers just seems wrong. Its making everything too centralised in my opinion. </blockquote>
<div>These my final points: <br></div><div>1. Objectively, once more, inventoryserver contains no information that can make sure if a request<br>    is or not from a valid user. only userserver contains that information, and we all do not want <br>
    such kind of "identity" information to be copied everywhere.<br>2. according to 1, no matter push or pull, inventoryserver has to validate the request or anyone can<br>    use it. => inventoryserver has to "pull" or be "pushed" authed information from 1 or many <br>
    userservers.<br>3. that doesn't mean inventoryserver has to rely on some userservers, inventoryserver just rely on<br>   if the user want it to validate and how the user want it to validate requests. as I said, <br>
   inventoryserver exists for its user, not userserver, why inventoryserver have to "pull" or be <br>   "pushed" something is because "users" *want* do that to save their inventory. inventoryserver<br>
   works for users, it does not always trust 1 or some userservers, it trusts what the user specified.<br>   It acts as what the user want it to do.<br>X. authenticated information such like session_id, has the same security level with password, even<br>
    the current "pull" does not really pull "session_id", it only "pulls" true or false.<br>Y. "push" has security issue that any remote peer can "push" to inventoryserver. to set access<br>
    permissions on inventoryserver side or make a "safe peers" list ?<br>    I think the "permission" should not be "user" based, because it is unsafe either, then if the<br>    "permission" is "url" based, doesn't that mean the same as inventoryserver rely on the<br>
    "safe peers" ?<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">But having said that, if we could at least get a pull system that works and doesn't break use cases then thats great. But at the moment the current system does break perfectly valid use cases.<div>
<div></div><div class="Wj3C7c"></div></div></blockquote><div>Really, I think "push" is much more dangerous, and "pull" does not have to be designed "rigid".<br>if you can take time to write some of the usecases that should be support, but current "pull"<br>
inventory breaks them, I would like to do what ever I can do to think and implement.<br><br>regards,<br>lulurun<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div class="Wj3C7c"><br><br><b><i>liu xiaolu <<a href="mailto:lulurun@gmail.com" target="_blank">lulurun@gmail.com</a>></i></b>
 wrote:<blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> <div dir="ltr">After all, please understand that I am not "selling" how my "secure inventory" is great,<br>
   I made it because I found my interop module is an ease-to-use tool to modify others' inventory(at OSGrid.org).<br>if there are bugs or broken things please let me know.<br>hope it is fixed or I would like to offer what I can do to help the fix.<br>
   What I am trying to do is to share my point of view on "interop", that is what I called avatar portability.<br>  maybe I replied to a wrong mail.<br>   <br>So, about the usecase: (I finanlly got your idea, from the quoted mail)<br>
>The use case (or one of many) that I'm talking about, is if a user has inventory on a inventory server, that user's inventory shouldn't be tied to any user server/grid. So the user should be able to use the same inventory set on multiple grids. At the <br>
>moment that
 means they have the same userid on each grid but thats no problem (and in the future I hope we will support a better way of identifying a inventory belongs to a user). <br>><br>>So lets call the Inventory server InvN like you used. My single inventory set (of folders/items) on that server is called InvSetA. Then we have Grid A and Grid B.  With user server A and B. When I log into grid A it should use InvN to receive InvSetA. <br>
>But also if I log out of grid A and log into grid B then it should also use InvN to receive InvSetA. The inventory set (of folders/items) isn't tied to a single grid/avatar. It belongs to the user. The "grid" is just using a guid (avatarID) to access the correct <br>
>inventory set. So as long as both grids use the same id, they should be able to use the same inventory. <br>When I read the above sentences, what I was thinking is "why it is required to be like such a case?"<br>
Still, There are 3 situations I can imagine:<br>*1*.
 UserA and UserB do not know each other, by (small) chance, thier UUID are the same.<br>       uuid collision, hard to say anything.<br>       yes, we do should care about this, though I learned that uuid wouldnot duplicate in common life, but we cannot trust the implementations.<br>
       I think this is possibly not what you mean, even if you really mean this ...<br>       the "userserver_dictionary" should be "uuid@grid_identifier", "userserver_url", grid_identifier can be the address(host,ip) of the grid service, hmmm ...<br>
  *2*. UserA and UserB are the same person.<br>      In order to login to both GridA and GridB, an User copied his/her account both at GridA(UserA) and GridB(UserB), so they are having the same uuid.<br>      I suggest to use the way I mentioned: he/she can always keep one account at GridA, and travel
 to both GridA and GridB.<br>      reasons for the suggestion:<br>      1. coping account is not a forever solution for grid-grid travel.<br>      2. there is an advanced way, we should encourage ourself to use that<br> *3*. UserA and UserB are completly different accounts, they are friends/groupmember(or they are owned by the same person who intend to do such thing),<br>
      they want to share InvSetA(both of them can CRUD InvSetA)<br>       InvSetA only can be specified by user uuid, so they *have* to have the same uuid to share InvSetA,<br>      this can be solved in another level - inventory does not belongs to a user, it belongs to a group.<br>
      * a group has 1 uuid used to identify inventory<br>       * a group contains mutilple/single
 user<br>      this may introduce "join" SQL statements to "select" the inventory, instead of just "select" by "uuid". ... no deeper thoughts.<br> <br>I want it be a "pulling" system, because<br>
* "push" has security issues, session_id or what ever things that is used as a secret to prove identity, shouldn't be "pushed" to everywhere<br> * I still do not think the case you are concerning is a major case, or even I think it is strange, except you are meaning *3*. but *3* is another issue.<br>
* "pulling" reduces the responsibility of inventoryserver, in the case, inventoryserver couldn't get auth infomation for the specified userserver, because userserver<br>   is specified by user itself, so it the problem of the user, not the inventory, but "push" is the opposite, to think inventory/asset server will play a important roll<br>
  in the future, the less responssibility it has the more it is reliable.<br> <br>Wrote too much english today ...
 see you tomorrow<br>thank you for your detailed explanations.<br><br>regards,<br>lulurun<br><br><div class="gmail_quote">2008/7/26 Michael Wright <<a href="mailto:michaelwri22@yahoo.co.uk" target="_blank">michaelwri22@yahoo.co.uk</a>>:<br>
 <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I might be missing something but I don't see how this solution addresses  some of the problems. Maybe I wasn't very clear on some of the use cases that would currently be broke.<br>
 <br>The use case (or one of many) that I'm talking about, is if a user has inventory on a inventory server, that user's inventory shouldn't be tied to any user server/grid. So the user should be able to use the same inventory set on multiple grids. At the moment that means they have the same userid on each grid but thats no problem (and in the future I hope we will support a better way of identifying a inventory belongs to a user). <br>

 <br>So lets call the Inventory server InvN like you used. My single inventory set (of folders/items) on that server is called InvSetA. Then we have Grid A and Grid B.  With user server A and B. When I log into grid A it should use InvN to receive InvSetA. But also if I log out of grid A and log into grid B then it should also use InvN to receive InvSetA.  The inventory set (of folders/items) isn't tied to a single grid/avatar. It belongs to the user. The "grid" is just using a guid (avatarID) to access the correct inventory set. So as long as both grids use the same id, they should be able to use the same inventory. <br>
 <br>So in this case if we have the pull from user server approach to authenticating then it needs to switch between user server A and B, depending on what grid the user is currently logged into. So again it would require a push somewhere to update which is the current user server for that user. <br>
 <br>As far as I can tell, your solution just stops a
 inventory server being tied to a single grid/user server and instead ties each inventory set to a grid/user server. That is better than tying the whole server. But it doesn't support the above case.<br> <br>There are a number of other use cases that would require multiple grids/instances to access a single inventory set. <br>
<br>I find it helps if we think of  User server and the grid server as seperate to the inventory and asset server. The user server defines what users can access a grid (plus other data like what inventory server that user is using).  The grid server defines and manages what regions are on a grid.<br>
 <br>But asset and inventory server can (in part) be thought of more as end user servers. In that a user could use the same servers on multiple grids and that can mean using the same inventory on all grids. So then if we think about defining on the asset and inventory servers what grids/regions can access them.<div>
 <br> <br>
 <br><b><i>liu xiaolu <<a href="mailto:lulurun@gmail.com" target="_blank">lulurun@gmail.com</a>></i></b> wrote:</div><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;">
 <div><div></div><div> <div dir="ltr">First, I want to clarify that, I am not against what you said<br>To release inventory, asset server become independent ones is also what I have been working on.<br><br>I am just trying to introduce my  thoughts:<br>
 >>[solution:]<br>>>* add a new table for inventoryserver, 2 fields, useruuid, userserver_url, everytime inventoryserver<br> >>  extract "session_id", "user_id" from the request, get "userserver_url" by "user_id", then check the<br>
  >>  identity of "user_id" from "userserver_url" (call check_auth_session)<br>>I really think rather than the inventory server calling a authenticate method on the user server. That<br>>the user server should send a sessionid
 to the inventory server when a new login happens. I guess<br> >your idea of the userserver_url was something silmilar in that the userserver would update it when<br>>a user logs in? Otherwise if it was just "hardcoded" in the db then it wouldn't solve anything.<br>
 <br>sorry for the lack of explanation of the new table, temporary let me call it "userserver_dictionary".<br>* "userserver_dictionary" is a table always together with inventoryfolers, inventoryitems<br>
  *  "userserver_dictionary" has 2 column: user_id pkey, userserver_url<br>// user registration<br>when a new user registered at a GridService G1, the user will possibly have its account on G1's<br>userserver U1, then, no matter which inventoryserver the user is using(or going to use), assume it is called InvN,<br>
  InvN's "userserver_dictionary" would be added 1 record <"uid", U1's url>,<br>// user login to VW<br>* user get authentication at U1, get "session_id"<br>* user login into a regionserver,
 regionserver gets user's profile and extract user's inventoryserver InvN from its profile.<br>  * regionserver requests getInventory("session_id", user.uuid) from InvN.<br>* InvN gets "U1's url" by user.uuid from "userserver_dictionary"<br>
* InvN requests check_auth_session("session_id", user.uuid) from "U1's url"<br>  //<br>in this case, dose InvN satisfies what you want ?<br>* InvN is separate from any other server<br>* InvN is independent, not rely on any userserver, it pull  identity under user's specification(get "userserver_url" by uuid)<br>
 * InvN can store users from different gridsevices<br><br>-- <br>Lulurun </div></div></div><div> _______________________________________________<br> Opensim-dev mailing list<br><a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
 </div></blockquote><div><div></div><div><br><div>           </div><hr size="1">  Not happy with your email address? <br> <a href="http://uk.docs.yahoo.com/ymail/new.html" target="_blank"> Get the one you   really want</a> - millions of new email addresses available now at <a href="http://uk.docs.yahoo.com/ymail/new.html" target="_blank"> Yahoo!</a></div>
</div><br>_______________________________________________<br> Opensim-dev mailing list<br> <a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br> <a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
 <br></blockquote></div><br><br clear="all"><br>-- <br>Lulurun </div> _______________________________________________<br>Opensim-dev mailing list<br><a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br></blockquote><br><p> 



      </p><hr size="1"> 
Not happy with your email address?
<br> <a href="http://uk.docs.yahoo.com/ymail/new.html" target="_blank"> Get the one you 

really want</a> - millions of new email addresses available now at <a href="http://uk.docs.yahoo.com/ymail/new.html" target="_blank"> Yahoo!</a></div></div><br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Lulurun<br>
</div>