I’m doing my best to avoid writing grand essays about Oz and how it’s all going to work. Mostly because I rather just write code. But given that this is now a collaborative effort, I’d like to set expectations and get more people involved.
Oz should consist of three main parts:
1. Ticket (what OAuth calls token) generation, validation, and management – this is the area I’ve made some progress on and if you look at the code and the test cases, you can see what it looks like. The current code can issue tickets, validate tickets, and transmit the via the HTTP Authorization header. Still missing is adding grant support (e.g. the user authorization record lookup) and a new way of doing refresh.
2. User authorization – the “dance” part where the user goes to the provider, authorizes access, etc. This is the part where I’m looking for new ideas. Since Oz is mobile-first, the existing web-view solution that we’ve all learned to hate is just not an acceptable result. We can start with it, but I’d like to come up with new ideas of how to do this. Have you seen better experiences than opening a web-view in your native app? Thoughts about defining a native API for this, so that if you have say, Twitter or Facebook installed on your device, you can directly talk to those services?
3. Client support – The node module will include an Oz client capable of interacting with any Oz-protected service. But we need at least one native mobile client for iOS or Android for building real test cases. This is the biggest area I’m looking for help.
My plan for the next few weeks is to build a working example with both a client and a server and see how the moving parts operate.
EH
Nah.
While I don’t have an objections to someone taking the code and documenting it, I actually don’t want to engage in a technical discussion about how things work if it’s not done in code and pull requests.
This is purposely designed to be inclusive to people who are both fluent in implementation details of OAuth 1 and 2, and at the moment, node.js.
EH
--
There are multiple goals, but addressing the most common architecture today (native/mobile) is key, which really starts with reducing the role of the application secret and see what follows. It also means moving the direct use of password credentials to the forefront. It is not always practical, but on a native platform, it’s just as secure (or insecure based on your perspective).
I think giving a purely mobile experience including account creation is important but outside the scope for Oz. Oz must remain identity-neutral given the two most prominent patterns used today:
1. Username/password provided by the service provider itself
2. Use of third party identity (Facebook, Twitter)
Even if those third parties supported the username/password flow (which is probably unlikely in the short term), that is not going to work with enhanced security measures like 2-factor auth (e.g. Google). But it doesn’t mean we need to give up and stay stuck with the current web-view experience.
EH
From: oz-pr...@googlegroups.com [mailto:oz-pr...@googlegroups.com]
On Behalf Of justin kruger
Sent: Friday, November 9, 2012 11:00 AM
To: oz-pr...@googlegroups.com
Subject: Re: Setting course
EH if the goal is mobile what other goals do you have?
--
I think the most secure path is a multi-stage auth, or two factor when it comes to mobile.
The flow might go like this.* app client request token from API ( if you want you could use an api key to request the token, this allows you to reject it if you want to later )* app prompts user for identity, requests new token
* API returns image, or sends 'text message'
* in the case of an image user enters password if they trust the image, password get's hashed with token + time rounded to min* in the case or txt message user enters pin + password, and pin, token + password are hashed and validated on the server* return auth ticket/ token, store* once the app has been identified, you can store the token/ticket + username as a way to auth without the password, allow the token to be rejected, and the api key.In this way you don't have to ... send passwords in the clear, or rely on https as a solution. You can also limit replay man in the middle attacks by making sure the password hash is not sent in the clear or the same each time.
The only way to make it more secure than username/password is to base it on a shared memory ( ie the image ), or two factor, ie. txt.
--You received this message because you are subscribed to the Google Groups "oz-protocol" group.
To unsubscribe from this group and stop receiving emails from it, send an email to oz-protocol...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.