<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 17, 2014 at 4:37 PM, Bruno Oliveira <span dir="ltr">&lt;<a href="mailto:bruno@abstractj.org" target="_blank">bruno@abstractj.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
<br>
--<br>
abstractj<br>
<div class=""><br>
On February 17, 2014 at 12:21:45 PM, Matthias Wessendorf (<a href="mailto:matzew@apache.org">matzew@apache.org</a>) wrote:<br>
&gt;<br>
&gt; On Wed, Feb 12, 2014 at 3:15 PM, Bruno Oliveira<br>
</div><div class="">&gt; wrote:<br>
&gt; &gt; ### Some considerations<br>
&gt; &gt;<br>
&gt; &gt; - The key pair will be generated in a separated project, not on<br>
&gt; UPS<br>
&gt; &gt; - For the key store I&#39;m considering to support the same data stores<br>
&gt; &gt; provided by SPS. What Dan did is a nice a idea (<br>
&gt; &gt; <a href="https://github.com/aerogear/aerogear-simplepush-server/tree/master/datastores" target="_blank">https://github.com/aerogear/aerogear-simplepush-server/tree/master/datastores</a><br>
&gt; &gt; )<br>
&gt; &gt;<br>
&gt;<br>
&gt; You mean the new &quot;key server&quot; supports multiple databases, right<br>
&gt; ?<br>
<br>
</div>Basically the possibility to store those key pairs in whatever storage mechanism you want: memory, Redis&hellip;<br>
<br>
TBH not very critical atm.<br></blockquote><div><br></div><div>yup</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class=""><br>
&gt; &gt; ## Changes suggested on UPS server<br>
&gt; &gt;<br>
&gt; &gt; 1. Login endpoint<br>
&gt; &gt;<br>
&gt; &gt; - Current login endpoint:<br>
&gt; &gt;<br>
&gt; &gt; POST /rest/auth/login<br>
&gt; &gt;<br>
&gt; &gt; - Suggested change:<br>
&gt; &gt;<br>
&gt; &gt; I&#39;m not sure if we really need **POST** for login, unless<br>
&gt; &gt; we are changing the state of some resource<br>
&gt; &gt;<br>
&gt; &gt; GET /rest/auth/login<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; Changing from POST to GET (for UPS login) is fine we me. The Login<br>
&gt; is<br>
&gt; really only relevant to the Admin UI.<br>
&gt; Historically: I picked POST because that&#39;s what all of our client<br>
&gt; libraries<br>
&gt; use as the default HTTP method for login (JS, iOS and Android)<br>
&gt;&nbsp;<br>
<br>
</div>That&rsquo;s more a suggestion than a deal breaker.&nbsp;<br></blockquote><div><br></div><div>yeah, I am pretty flexible here :-)&nbsp;</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class=""><br>
&gt; &gt; 2. Register push app<br>
&gt; &gt;<br>
&gt; &gt; - Our push clients will need to change to accept the public key<br>
&gt; &gt; provided by the server and encrypt the passphrase. We can make<br>
&gt; use of *AG<br>
&gt; &gt; Crypto* for it<br>
&gt; &gt; - The basic workflow for our clients would be:<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; What clients do you mean? The only thing that really does a login<br>
&gt; against<br>
&gt; the server is the Admin UI (or a direct curl, using the same &#39;management&#39;<br>
&gt; rest-endpoints which are accessed by the AdminUI).<br>
&gt;<br>
&gt;<br>
<br>
</div>By clients I mean: cURL, aerogear-unifiedpush-java-client, node version&hellip;etc. If I got it right, you must provide the master secret.</blockquote><div><br></div><div>Right! for sending these &#39;sender clients&#39; need to know the (umbrella) push applicationID and its masterSecret:</div>
<div><a href="http://aerogear.org/docs/specs/aerogear-push-rest/Sender/">http://aerogear.org/docs/specs/aerogear-push-rest/Sender/</a></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
 The suggestion is not only protect our passphrases,</blockquote><div><br></div><div>the passphrase is really something specific to iOS</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
 but also do not expose that masterSecret, because someone in possession of this could start to send push messages to the server. Am I wrong on it?<br></blockquote><div><br></div><div>correct someone could to that. In the past we already at least chatted about having some sort of key/certificate for that + access-keys (e.g. per application).</div>
<div><br></div><div>-Matthias</div><div>&nbsp;</div></div><br><br clear="all"><div><br></div>-- <br>Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>
sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a>
</div></div>