Hi Doug,

The largest challenge that I can see with doing what you're trying would 
be to secure that endpoint.  Someone being able to add their own client 
could potentially be bad.  From my viewpoint, if this is server to server, 
you would want to sign the request with Server 1's private key and encrypt 
with Server 2's public key.  Server 2 would decrypt with their private key 
and verify the sender with Server 1's public key before adding the client. 
 That would keep any old Joe from calling that endpoint and adding clients 
to your system.  You would certainly want the client_secret to not be 
plaintext on the wire.  That's my first thought, but I'm no security 
expert. :)

Maybe I'm missing the point altogether... 

Thanks,
-Stanton



From:   daviesd <davi...@oclc.org>
To:     shindig <dev@shindig.apache.org>, 
Date:   06/18/2012 16:28
Subject:        Adding additional APIs to Shindig



I have an API I want to add to our custom shindig server that doesn¹t fit
any current opensocial specs (appdata, people, etc.).  The API would allow
our gadget sandbox webapp to create the oauth2 client and oauth2 gadget
binding entries (server to server).

So something like

POST /opensocial/rest/oauth2client [client_id, client_secret, 
provider_name,
application url]

This would allow our sandbox gadget writers to enable oauth2 bindings
without a third party having to be involved.

My question is, what is the best way to expose such an API?  Should I just
expose it like all the other REST endpoints (and also via RPC) or should I
just create a servlet with my own authentication scheme (perhaps just 
basic
authentication)?  If I use the existing framework should I use security
tokens or should I use oauth2?

I¹d be interested in hearing other viewpoints by people who have extended
shindig with their own APIs.

Thanks,
Doug


Reply via email to