SSH OAuth Authentication

Rather than creating and uploading an SSH key, you can authenticate your bzr client using the web ui. When you first try to use Bazaar against Launchpad, it'll launch a browser where you log in and give permission for this machine to access Launchpad. No other user configuration is needed.

Contact: Martin Pool
On Launchpad: bug tag ssh-oauth and 297398 (the original request for something like this)

Rationale

Stakeholders

Who really cares about this feature? When did you last talk to them?

User stories

New developer without a key

As a developer new to working on Ubuntu
I want to just get a checkout of a Launchpad branch without futzing with ssh and key files
so that I can branch the code and contribute changes

Delegated to robot

As a person managing an external auto-build service
I want to give it access to branch and push back changes, without giving it my real private key
So that I can get the robot going, with less risk if the build machine is compromised.

I may want the token given to the robot to expire after a certain period of time (say 24h).

Launchpad developer

As a Launchpad developer
I want to start an ec2 instance that can pull from Launchpad over ssh, without giving it my real key
So that I can land my changes without trusting my key to a random external machine Have as many as you like. Group user stories together into meaningfully deliverable units. They'll be used as the driving elements of exploratory testing QA.

See also bug:577118.

Constraints and Requirements

Must

Nice to have

Must not

Out of scope

Subfeatures

Other LaunchpadEnhancementProposals that form a part of this one.

Success

How will we know when we are done?

How will we measure how well we have done?

Thoughts?

Put everything else here. Better out than in.

Implementation ideas

  1. Generate a symmetric OAuth token; send that as a cleartext password; store it in bazaar's authentication.conf or in the keyring.
    • If using an external SSH, how will it be passed across?
    • Should it be stored just unencrypted, or in the system keyring, or elsewhere?
    • Server should accept this only if you authenticate as eg mbp+auth@bazaar.launchpad.net?

  2. Add a new auth_oauth authentication mechanism in SSH (requires client and server side modifications)
  3. Generate an SSH key automatically when logging in and add it to Launchpad.

LEP/SSH_OAuth (last edited 2011-10-25 05:40:20 by mbp)