Skip to main content

OAuth 2.0 client

Project description

This is an OAuth 2.0 client library and WSGI middleware filter.

It supports simple string-based bearer token and a custom extension to enable
the use of X.509 certificates as tokens. The latter has been added to enable
a SLCS (Short-lived Credential Service) to issue delegated X.509-based
credentials using OAuth.

ndg.oauth.client.lib.oauth2client:Oauth2Client is a client that calls a
specified callable with an access token obtained from a configured OAuth server.
ndg.oauth.client.lib.oauth2_myproxy_client:Oauth2MyProxyClient extends this to
handle key creation for obtaining X.509 certificates.

The filter ndg.oauth.client.wsgi.oauth2_client:Oauth2ClientMiddleware uses
Oauth2MyProxyClient and sets the obtained access token in the WSGI environ. The
token contains the key/certificate pair so that it can be used by other WSGI
applications or middleware to authenticate.

Prerequisites
=============
This has been developed and tested for Python 2.6 and 2.7.

Installation
============
Installation can be performed using easy_install or pip.

Configuration
=============
Examples are contained in the examples/ sub-folder:

bearer_tok/:
This configures a simple test application that uses string based tokens.
slcs/:
This is a more complex and specialised example that issues X.509 certificate-
based tokens as part of a Short-lived Credential Service. The corresponding
authorisation server available from the ndg.oauth server package requires
access to a specially configured MyProxyCA service (
http://grid.ncsa.illinois.edu/myproxy/ca/) configured with a custom PAM to
allow issue of credentials. See:
http://ndg-security.ceda.ac.uk/browser/trunk/MashMyData/pam_credential_translation

The examples should be used in conjunction with the ndg.oauth server package.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ndg-oauth-client, version 0.3.1
Filename, size File type Python version Upload date Hashes
Filename, size ndg_oauth_client-0.3.1-py2.6.egg (83.7 kB) File type Egg Python version 2.6 Upload date Hashes View hashes
Filename, size ndg_oauth_client-0.3.1-py2.7.egg (83.6 kB) File type Egg Python version 2.7 Upload date Hashes View hashes
Filename, size ndg_oauth_client-0.3.1.tar.gz (42.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page