Hi Abhinandan, It should be there. I have it marked as public so the following link should work as well:
https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/imduffy15/1 Thanks! Ian On 6 May 2013 12:32, Abhinandan Prateek <agneya2...@hotmail.com> wrote: > I am unable to see the proposal in melange website. Am I missing something > ? > > -abhi > > On 04/05/13 6:56 PM, "Sebastien Goasguen" <run...@gmail.com> wrote: > > >Ian thanks a lot for your proposal and submission. > > > >This project has been proposed by Abhinandan Prateek, so I am copying him > >in this email so he can comment. > > > >@Abhi, you need to access the google melange site and find Ian's proposal > > > >-Sebastien > > > >On May 3, 2013, at 12:40 PM, Ian Duffy <i...@ianduffy.ie> wrote: > > > >> Hi, > >> > >> Sorry just noticed that the attachment appeared to have got stripped, > >>here > >> is the contents of the PDF. Alternatively I have uploaded it here: > >> http://ianduffy.ie/Cloudstack-LDAP.pdf > >> > >> *Apache Cloudstack Google Summer of Code Project: LDAP user > >>provisioning* > >> > >> > >> Need to automate the way the LDAP users are provisioned into cloud > >>stack. > >> This will mean better integration with a LDAP server, ability to import > >> users and a way to define how the LDAP user maps to the cloudstack > >>users. > >> > >> > >> Abstract > >> > >> > >> > >> The aim of this project is to provide an easier mechanism to provision > >> users from LDAP into cloudstack. Currently cloudstack provides > >> authentication LDAP authentication. In this authentication users must > >>be > >> first setup in cloudstack. Once the user is setup in cloudstack they > >>can > >> authenticate using their ldap username and password. > >> > >> > >> > >> This feature aims to extend the current functionality to make user setup > >> align with LDAP group. > >> > >> > >> Deliverables > >> > >> ñ Service that retrieves a list of ldap users from the configured group > >> > >> ñ Extension of cloudstack UI ³Add User² screen to offer user list from > >> LDAP > >> > >> ñ Add service for saving new user with details from LDAP > >> > >> ñ BDD unit and acceptance automated testing > >> > >> ñ Document change details > >> > >> > >> Quantifiable results > >> > >> > >> Given A need to add new user to cloudstack and LDAP is setup > >> > >> When > >> > >> You open the ³Add User² screen > >> > >> Then > >> > >> A table of users appears for the current list of users (not already > >>created > >> on cloudstack) from the LDAP group displaying their a checkbox, > >>username, > >> name and email address. The timezone dropdown will still be available > >> beside each user. > >> Given A need to add new user to cloudstack and LDAP is not setup > >> > >> When > >> > >> You open the ³Add User² screen > >> > >> Then > >> > >> The current add user screen and functionality is provided > >> Given A need to add new user to cloudstack and LDAP is setup > >> > >> When > >> > >> You open the ³Add User² screen and mandatory information is missing > >> > >> Then > >> > >> These fields will be editable to enable you populate the name or email > >> address > >> > >> > >> Given A need to add new user to cloudstack, LDAP is setup but user is > >>in > >> the ldap query group > >> > >> When > >> > >> You open the ³Add User² screen > >> > >> Then > >> > >> There is a list of LDAP users displayed but your current user is > >>present in > >> the list > >> Given A need to add new user to cloudstack, LDAP is setup but user > >>is > >> not in the query group > >> > >> When > >> > >> You open the ³Add User² screen > >> > >> Then > >> > >> There is a list of LDAP users displayed but your current user is not in > >>the > >> list > >> Given You need to add group of new users to cloudstack > >> > >> When > >> > >> You open the ³Add User² screen, select the users and hit save > >> > >> Then > >> > >> The list of new users are saved to the database > >> > >> > >> Given You need to add group of new users to cloudstack > >> > >> When > >> > >> You open the ³Add User² screen, select the users and hit save > >> > >> Then > >> > >> The list of new users are saved to the database > >> > >> > >> Given You have created a new LDAP user on cloudstack > >> > >> When > >> > >> The user authenticates against cloudstack with the right credentials > >> > >> Then > >> > >> They are authorised in cloudstack > >> Given A user wants to edit an LDAP user > >> > >> When > >> > >> They open the Edit User screen > >> > >> Then > >> > >> The password fields are disabled and cannot be changed > >> The design document *Ldap User List Service* > >> > >> > >> > >> *name*: ldapUserList > >> > >> *responseObject*: LDAPUserResponse {username, email, name} > >> > >> *parameter*: listType:enum {NEW, EXISTING, ALL} (Default to ALL if no > >> option provided) > >> > >> > >> > >> Create a new API service call for retreiving the list of users from > >>LDAP. > >> This will call a new ConfigurationService which will retrieve the list > >>of > >> users using the configured search base and the query filter. The list > >>may > >> be filtered in the ConfigurationService based on listType parameter. > >> > >> > >> > >> *Ldap Available Service* > >> > >> > >> > >> *name*: ldapAvailable > >> > >> *responseObject*: LDAPAvailableResponse {available:boolean} > >> > >> > >> > >> Create a new API service call verifying LDAP is setup correctly > >>verifying > >> the following configuration elements are all set: > >> > >> ñ ldap.hostname > >> > >> ñ ldap.port > >> > >> ñ ldap.usessl > >> > >> ñ ldap.queryfilter > >> > >> ñ ldap.searchbase > >> > >> ñ ldap.dn > >> > >> ñ ldap.password > >> > >> > >> > >> The verification that all of these are set will return an available > >>boolean > >> true. If required this could perform a status check against LDAP first > >>and > >> provide warning if it fails. > >> > >> > >> *Ldap Save Users Service* > >> > >> > >> > >> *name*: ldapSaveUsers > >> > >> *responseObject*: LDAPSaveUsersResponse {list<UserResponse>} > >> > >> *parameter*: list of users > >> > >> > >> > >> Saves the list of objects instead. Following the functionality in > >> CreateUserCmd it will > >> > >> ñ Create the user via the account service > >> > >> ñ Handle the response > >> > >> > >> > >> It will be decided whether a transation should remain over whole save or > >> only over individual users. A list of UserResponse will be returned. > >> > >> > >> > >> > >> > >> > >> > >> *Extension of cloudstack UI ³Add User² screen * > >> > >> > >> > >> Extend account.js to enable it add a user list with editable fields > >>where > >> required. The new ³Add User² screen for LDAP setup. > >> > >> ñ This will make an ajax call to the ldapAvailable, ldapUserList and > >> ldapSaveUsers services > >> > >> ñ Validation will be maintained on username, email, firstname and > >>lastname > >> > >> > >> > >> *Extension of cloudstack UI ³Edit User² screen * > >> > >> > >> > >> Extend account.js to disable the password fields on the edit user > >>screen if > >> LDAP available. > >> > >> ñ This will make an ajax call to the ldapAvailable and updateUser > >>services > >> > >> ñ Validation will be maintained on username, email, firstname and > >> lastname. Additional server validation will ensure password has not > >> changed. > >> > >> > >> > >> > >> Approach > >> > >> > >> > >> To get started a development cloudstack environment with DevCloud used > >>to > >> verify changes. Then once the schedule agreed with the mentor the > >> deliverables will be broken into smaller User stories with expected > >> delivery dates set. The development cycle will focus on BDD enforcing > >>all > >> unit and acceptance tests written first. > >> > >> > >> > >> A build pipe line for continious delivery environment around cloudstack > >> here will be created, the following stages will be adopted > >> > >> > >> > >> *Stage* > >> > >> *Action* > >> > >> Commit > >> > >> Runs unit tests > >> > >> Sonar > >> > >> Runs code quality metrics > >> > >> Acceptance > >> > >> Deploys the dev cloud and runs all acceptance tests > >> > >> Deployment > >> > >> Deploy a new management server using Chef > >> > >> > >> > >> > >> About Me > >> > >> > >> > >> I am a Computer Science Student at Dublin City University in Ireland. I > >> have interests in virtualization, automation, information systems, > >> networking and web development. > >> > >> > >> > >> I was involved with a project in a K-12(educational) environment of > >>moving > >> their server systems over to a virtualized environment on ESXi. I have > >> good knowledge of programming in Java, PHP and Scripting langages. > >>During > >> the configuration of an automation system for OS deployment I > >>experienced > >> some exposure to scripting in powershell, batch, vbs and bash and > >> configuration of PXE images based of WinPE and Debian. > >> > >> Additionally I am also a mentor in an opensource teaching movement > >>called > >> CoderDojo, we teach kids from the age of 8 everything from web page, > >>HTML 5 > >> game and raspberry pi development. > >> > >> > >> > >> I¹m excited at the opportunity and learning experience that cloudstack > >>are > >> offering with this project. > >> > >> > >> References > >> > >> > >> > >> ñ https://cwiki.apache.org/CLOUDSTACK/development-101.html > >> > >> ñ > >> > >> > http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.2/html/Admi > >>n_Guide/ > >> > >> ñ > >> > >> > http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.2/html/API_ > >>Developers_Guide/index.html > >> > >> ñ https://issues.apache.org/jira/browse/CLOUDSTACK-2014 > >> > >> ñ > >> > >> > http://www.slideshare.net/sebastiengoasguen/apache-cloudstack-google-summ > >>er-of-code > >> > >> ñ > >> > >> > http://kirkjantzer.blogspot.co.uk/2013/03/ldap-authentication-in-cloudsta > >>ck-v401.html > >> > >> ñ http://www.ldapguru.info/ldap/ldap-search-best-practices.html > >> > >> ñ > >> > http://docs.oracle.com/javase/6/docs/technotes/guides/jndi/jndi-ldap.html > >> > >> > >> > >> > >> > >> > >> On 3 May 2013 17:35, Ian Duffy <i...@ianduffy.ie> wrote: > >> > >>> Hi, > >>> > >>> I was wondering If I could get some feedback on the attached file > >>>labeled > >>> "Cloudstack-LDAP.pdf". It outlines a design document for the project > >>> labeled "LDAP user provisioning" > >>> > >>> From my current understanding of the single sign on mechanism > >>>implemented > >>> in cloudstack a LDAP user must be created manually within the > >>>cloudstack > >>> database. Would it be preferred to: > >>> > >>> A) Create a service that polls LDAP every so often to check for new > >>>user > >>> creation. > >>> or > >>> B) Extend the login page to check LDAP after failing to find a user > >>>within > >>> the cloudstack database. On success of finding a user in LDAP a profile > >>> would automatically be created within the cloudstack database. > >>> > >>> Kind regards, > >>> Ian > >>> > > > > > > >