https://oltu.apache.org <-- maybe as a starting place.

On Tue, Jul 15, 2014 at 3:25 AM, Sebastien Goasguen <run...@gmail.com> wrote:
> Silvano,
>
> Seems to me you are doing it for browser based dashboard access only ?
>
> How about if I want to use the API straight up, how do you integrate an Oauth 
> workflow there ?
>
> On Jul 15, 2014, at 1:35 AM, Santhosh Edukulla <santhosh.eduku...@citrix.com> 
> wrote:
>
>> Hi Silvano,
>>
>> Few Notes:
>>
>> 1. We had implementation details mentioned i believe, but we didn't 
>> mentioned the design details and workflows.
>> 2. We didn't mentioned whether it is 2 legged flow or 3 legged flow.
>> 3. Not clear with this statement, "Once user is authorized by oauth2 server, 
>> javascript code reads parameters in url",
>> 4. Whats the difference between "oauth2.credentials.url" and 
>> "oauth2.baseurl", the later is redirect uri? If yes, Where will have 
>> redirect uri hosted?
>> 5. referring to the statement " When oauth2.baseurl, oauth2.client.id and 
>> oauth2.client.secret are not set (default), oauthRequestUrl returns empty 
>> response and OAuth2
>> authentication is turned off.",  can we use a flag to denote whether to use 
>> oauth flow or not? If set to false, dont use it otherwise continue with 
>> default.
>> 6. What about refresh token,i believe access token has limited life time? 
>> Any call back mechanism to update with latest token if it gets expired?
>> 7. Details like clientid,clientsecret needs to be encrypted when stored and 
>> retrieved from global config?
>> 8. How do we map the user logged in to roles and hierarchy inside CS? based 
>> on email mapping?
>> 9.  What is the significance of these two parameters  mentioned?
>> oauth2.credentials.parameter.email (defaults to "email")
>> * oauth2.domainid
>> 10. clientid and clientsecret key are based upon per tenant basis, so what 
>> if we want to oauth mechanism from multiple tenants at any stage?
>> 11. Default values for clientid and clientsecret are loaded at which stage? 
>> during initial installation and for which tenant?
>> 12. How do we verify the validity of clientid and clientsecret values? If 
>> they are revoked? possibility of revoke is there?
>> 13. If we understand, it is only to authenticate a user through oauth flow, 
>> we dont need authorization part inside of cs? I mean, what do we mean by 
>> authorization from tenant once access key is granted?
>> 14. If access key is not stored, how do we get refresh token?
>> 15. What is the default sequence of authentication in case if oauth fails? 
>> and order in which a given authentication mechanism will be chosen?
>> 16. Can we also show a ui, where user can enable\disable oauth setting for a 
>> given account? here, possibility of mismatch with emailid based upon current 
>> implementation and oauth retrieved emailid post authentication is there? how 
>> do we handle it?
>> 17. Last, what is the significance of this feature, apart from 
>> authentication support from third party clients?
>>
>>
>> Thanks!
>> Santhosh
>> ________________________________________
>> From: Silvano Nogueira Buback [silv...@corp.globo.com]
>> Sent: Monday, July 14, 2014 4:59 PM
>> To: dev@cloudstack.apache.org
>> Subject: [PROPOSAL] OAuth2 Single SignOn Integration
>>
>> Hi gyus,
>>
>>    I need to implement OAuth2 integration to provide single sign-on with
>> others tools in my company. I can share this implementation with the
>> community if you are interested. I suggest these changes in code:
>>
>> 1. Create a new javascript called oauth2.js. This javascript is responsible
>> for calling the new command called oauthRequestUrl that reads the global
>> option "oauth2.baseurl" and returns this url plus "/authorize" with oauth2
>> parameters. After receiving the answer, javascript redirects user to oauth2
>> server.
>> 2. Once user is authorized by oauth2 server, javascript code reads
>> parameters in url and call oauthAuthorizeToken command. This command asks
>> the oauth2 server by the access token, and if everything is ok, calls
>> "oauth2.credentials.url" about user email and finds this user in the
>> database, like ldap implementation does and returns authentication data.
>> 3. Javascript fills g_loginResponse with answer from command and user is
>> logged in.
>>
>>   What do you think about this approach?
>>
>>
>> ---- More details ----
>>
>> Alternative flows:
>>
>> * When the url has parameter direct=true, the login dialog is shown.
>> * When oauth2.baseurl, oauth2.client.id and oauth2.client.secret are not
>> set (default), oauthRequestUrl returns empty response and OAuth2
>> authentication is turned off.
>> * If authorization token is invalid, user is redirected again to oauth2
>> server.
>>
>>
>> Commands:
>> * oauthRequestUrl
>> * oauthAuthorizeToken
>>
>>
>> Global Options:
>> * oauth2.baseurl
>> * oauth2.client.id
>> * oauth2.client.secret
>> * oauth2.credentials.url: defaults to "/oauth2/v2/userinfo"
>> * oauth2.credentials.parameter.email (defaults to "email")
>> * oauth2.domainid
>>
>>
>> Restrictions:
>> * Domain Id will be a global option
>> * Users are always redirected to oauth2 server. Access tokens are not
>> stored.
>> * Before using Cloudstack, the administrator must insert user in an account.
>

Reply via email to