Skip to main content

This is a repoze.who plugin for automated authentication via BrowserID:

https://browserid.org/ https://wiki.mozilla.org/Identity/BrowserIDSync

The plugin implements an experimental protocol for authenticating to ReSTful web services with the Verified Email Protocol, a.k.a Mozilla’s BrowserID project. It is designed for use in automated tools like the Firefox Sync Client. If you’re looking for something to use for human visitors on your site, please try:

http://github.com/mozilla-services/repoze.who.plugins.browserid

When accessing a protected resource, the server will generate a 401 challenge response with the scheme “OAuth+VEP” as follows:

> GET /protected_resource HTTP/1.1
> Host: example.com

< HTTP/1.1 401 Unauthorized
< WWW-Authenticate: OAuth+VEP url="/request_token"

The client should extract the url from this challenge and POST a VEP assertion to that location. This will create a new authentication session and return a set of OAuth client credentials:

> POST /request_token HTTP/1.1
> Host: example.com
> Content-Type: application/x-www-form-urlencoded
>
> assertion=VEP_ASSERTION_DATA

< HTTP/1.1 200 OK
< Content-Type: application/json
<
< {
<   "oauth_consumer_key": SESSION_TOKEN,
<   "oauth_consumer_secret": SESSION_SECRET
< }

Subsequent requests should be signed using these credentials in Two-Legged OAuth mode:

> GET /protected_resource HTTP/1.1
> Host: example.com
> Authorization: OAuth oauth_consumer_key=SESSION_TOKEN,
>                      oauth_signature_method="HMAC-SHA1",
>                      oauth_version="1.0",
>                      oauth_timestamp=TIMESTAMP,
>                      oauth_nonce=NONCE
>                      oauth_signature=SIGNATURE

< HTTP/1.1 200 OK
< Content-Type: text/plain
<
< For your eyes only:  secret data!

Session tokens are timestamped and will eventually expire. If this happens you will receive a 401 response as before, and should POST a new assertion to obtain fresh credentials.

Extending the token management

repoze.who.plugins.vepauth is extensible. If you want to provide a different mechanism to manage the tokens, you can do so by providing a different token manager instance to the plugin with the token_manager option.

The TokenManager class have two methods than need to be implemented (it’s an abstract class): make_token and parse_token. The implementation details are left to the childs classes.

repose.who.plugins.vepauth comes with one SignedTokenManager which implement a simple token management class in pure python. It has a number of methods that can be overridden to customize its behavior.

0.3.0 - 2012-02-14

0.2.0 - 2012-02-14

  • Added basic pattern-matching for the token_url, e.g. “/{app}/token”.

  • Made TokenManager.make_token and TokenManager.parse_token accept the incoming request as first argument, mostly so they can get at the results of pattern-matching.

  • Let TokenManager.make_token return a dict of extra info to be included in the response.

0.1.0 - 2012-02-07

  • Initial release.

Release files for repoze.who.plugins.vepauth 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repoze.who.plugins.vepauth 0.3.0
File Size Uploaded
repoze.who.plugins.vepauth-0.3.0.tar.gz 20.5 kB Details

Release files / repoze.who.plugins.vepauth-0.3.0.tar.gz

Download URL repoze.who.plugins.vepauth-0.3.0.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
832e59509e3604ecf2dd1543fc2214b2bc508b57989d1f6a02847d91a22c9664
BLAKE2b-256 checksum
How to use checksums
9e9c63b93311835a78f6a3dc874c0e578c8203811afd69459e81c3f263e5cbc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3.0 This release

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page