On Jun 20, 2014, at 3:13 PM, Supun Nakandala <supun.nakand...@gmail.com> wrote:
> On Sat, Jun 21, 2014 at 12:11 AM, Reagan, David Michael <dmrea...@iu.edu> > wrote: > Thanks for the clarification, Supun. Let me see if I understand things > correctly: > > > > - The gateway will authenticate with the userAPI using credentials > stored in a config file (via adminLogin) > > - Once authenticated, the userAPI will replace the > PHP-Reference-Gateway’s id_utilities interface for authenticating/adding/etc > users > > > > So the gateway itself is an admin, but how can an individual user become an > admin? > > > > When an admin user logs in to the gateway, how will the gateway know the user > is an admin? Perhaps like this: > > > > - The user authenticates in the normal login page, and both > authenticateUser and adminLogin functions are called. > > o If authenticateUser returns true, the user is logged in (setting the > username and logged_in session variables) > > o If adminLogin returns the token, the user is logged in with admin > priviledges (probably by storing the token in a session variable). If no > token is returned, the session variable remains null and the user is treated > as a standard user. > > > > Does that sound correct? > > > Yes this will work. But it has some drawbacks. > > -> In order for a user to do an admin login he should provide his username > and also the tenant domain. For example in the PHP-Reference-Gateway the > admin should use <adminusername>@phprg.scigap.org as the username . But for > the authenticateUser only the username should be provided. This is because > authenticateUser method is performed in the specific context of the logged in > tenant admin > > -> This will work only if we want distinguish admin users and non admin users. > > As per my understanding the most elegant way to solve this issue is to add > the capability of creating user roles in the UserAPI. If so upon > authenticating a user we can fetch the list of roles of that particular user > and act accordingly. We can reserve the tenant admin user only to the gateway > and use different roles such gateway_admin, privileged_user, restricted_user > for all other users who are using the gateway. > > What do you think? + 1. I was in the middle of typing the same reply. I think the notion of user roles and the API to query for them seems to be a good way to handle these use cases. Suresh > > > Dave > > > > From: Supun Nakandala [mailto:supun.nakand...@gmail.com] > Sent: Friday, June 20, 2014 1:20 PM > To: dev@airavata.apache.org > > > Subject: Re: [GSoC] Status Update > > > > Hi Dave, > > > > I was planning to have a separate tenant for each gateway. For example > PHP-Reference-Gateway has a separate tenant in the WSO2 IS. Each of these > have a tenant admin (can have more than one). And gateways has to use the > tenant admin credentials to use the UserAPI. > > > > The adminLogin and adminLogout functions are for the gateways to authenticate > with the UserAPI using the given tenant admin credentials. > > > > After authenticating using the tenant admin credentials gateways can use the > API to do the given operations. Standard users cannot log in to the UserAPI > (only the tenant admin can login). But the gateways can authenticate uses via > the API given the user's username and password. > > > > If we need to distinguish different users separately we can create user > groups and add users to groups. But still I don't have added this > functionality to the UserAPI. > > > > On Fri, Jun 20, 2014 at 8:17 PM, Reagan, David Michael <dmrea...@iu.edu> > wrote: > > Hi, Supun. Are the adminLogin and adminLogout functions just for admin users? > Can you explain a bit about how the ID server differentiates standard vs > admin users, and how you think the gateway should be able to tell which kind > a user a person is? > > > > Thanks, > > Dave > > > > From: Amila Jayasekara [mailto:thejaka.am...@gmail.com] > Sent: Friday, June 20, 2014 9:31 AM > To: dev > Subject: Re: [GSoC] Status Update > > > > Nice ! > > > > Thanks > > Amila > > > > On Fri, Jun 20, 2014 at 7:16 AM, Supun Nakandala <supun.nakand...@gmail.com> > wrote: > > Hi All, > > > > I have added some php client sample code to the repository [1]. > > > > Thank you > > Supun > > > > [1] - > https://github.com/scnakandala/airavata-userapi/tree/master/clients/php-client > > > > On Wed, Jun 18, 2014 at 10:05 PM, Supun Nakandala <supun.nakand...@gmail.com> > wrote: > > Hi All, > > > > During the last week I drafted a basic user api description for Airavata user > management. You can find the thrift descriptor files at [1]. I have also > implemented the server side code and hosted in the same github repository. I > did not tried to come up with a complete list of user management requirements > but rather implemented the most frequently required ones. As the requirements > change I plan to modify the api iteratively. I appreciate if you can provide > feedback on the drafted user management api. > > > > My next target is to implement a php client for this api and integrate it > with the PHP-Reference-Gateway > > > > Thank you > > Supun > > > > > > [1] - > https://github.com/scnakandala/airavata-userapi/blob/master/thrift-interface-descriptors/userAPI.thrift > > > > > > > -- > Thank you > Supun Nakandala > Dept. Computer Science and Engineering > University of Moratuwa > > > > > > > > > -- > Thank you > Supun Nakandala > Dept. Computer Science and Engineering > University of Moratuwa > > > > > -- > Thank you > Supun Nakandala > Dept. Computer Science and Engineering > University of Moratuwa