[Ur] The right way to do federated login in 2015?

Adam Chlipala adamc at csail.mit.edu
Sun Nov 22 14:20:04 EST 2015


Thanks for the prototype code.  The OpenID framework is overkill for 
authentication that commits to trusting one particular counterparty, so 
I'd rather see a simpler implementation from scratch.  I'm not sure it's 
worth implementing anything beyond the latest version of the OAuth protocol.

On 11/21/2015 06:17 AM, 1337 777 wrote:
> Here is some working oauth source code which get the userinfo api of
> the author, this is some copy-paste duplicate on the side of the
> openid source code for easy comparison, no trimming out
> https://github.com/1337777/oauth
> http://hg.impredicative.com/openid
>
> It is not technical but it is minimal and necessary and it takes
> someone to take the time to type on the keyboard and resolve
> ridiculuous bugs
> ... example: github require some user-agent header and this must be
> done in curl with CURLOPT_USERAGENT not with CURLOPT_HTTPHEADER ..
> github does not accept SSLv3 and this must be erased from the curl call
> github gives the response of curl POST access_token in urlencoded    =
> and &    form but the original OpenidFFi.direct was parsing the
> response using    : and \newline
> github maybe has some bug during the authorization code exchange
> because this must be tried 2 times to get success access_token
>
> ...the oauth interface of google has the same form so this source code
> shall be ok with google
>
> kthxby now COQ
>
> On Thu, Nov 19, 2015 at 4:17 PM, 1337 777 <1337777.net at gmail.com> wrote:
>> After reviewing
>> http://hg.impredicative.com/openid
>>
>> The only programmation thing which is extra beyond OAUTH is:
>> * temporarily storing the connection ("endpoint") tools:
>>      + dh secret exchange when not on httpS
>>      + enciphering/deciphering the hmac key using the dh secret
>>      + signing/verifying the connection data using this hmac key
>> * permanentlly storing the pairing of "user" profile with "identifier"
>>
>> Therefore maybe some boring 3-hours trimming out of the texts of the
>> connection tools and the user-identifier pairing, without touching
>> anything else, shall give OAUTH... so what sense exactly is "some
>> oauth library" ?
>>
>> hmmmm.. I have this OAUTH schema in mind for
>> https://developer.github.com/v3/oauth/
>>
>> authorize
>>      ->GET redirect_uri stIdx, state, (scope)
>> ~~Basis.redirect()/FFi.indirect()
>> redir_uri stIdx
>>      <-BACK code/identifier, state, [cookie]
>>      ->RPOST code/identifier, client_secret        ~~FFi.discovery()/FFi.direct()
>>      <-HTML token/endpoint, (token_scope, token_type)
>> apiform
>>      ->POST api_uri, token/endpoint
>>      <-HTML user
>>
>> seq0: {stateIndex}
>> tab1: {stateIndex, state, option code/identifier, code_scope,
>> expirity, option (token/endpoint * token_scope * token_type)}
>> cookie: {stateIndex, state}
>>
>> ...
>>
>> (ok ok ... I was putting on hold my coq proof of the biassociative
>> coherence, now I will write it before December 4 and publish somewhere
>> else just to be annoying)
>>
>> On Thu, Oct 22, 2015 at 10:37 PM, 1337 777 <1337777.net at gmail.com> wrote:
>>>> I'm motivated enough about at least the OAuth part, as I want to use
>>>> it for a web app, aimed at developers, to do login with GitHub
>>>> credentials.  So, I expect that bit would get done by early 2016, even
>>>> if no one else volunteers.
>>> how is this different than doing the crypto-signing/verifying
>>> mathematics not in the browser but behind some web interface ?
>>>
>>> Ultimately this is the genre of programming activity that I may do in
>>> the near future for some concurrent web app, therefore "I"😏 may as
>>> well start now until someone else is quicker ? (part-timing from
>>> readying for the univalent-foundations workshop this may 16-20 at the
>>> fields institute)
>



More information about the Ur mailing list