MyProxy Web Service
Project description
Provides a simple web service interface to MyProxyCA. MyProxy is a Service for
managing and issuing PKI based credentials which is part of the Globus Toolkit.
MyProxyWebService provides a HTTP based wrapper interface to MyProxy enabling
HTTP based clients to connect to a MyProxy server and retrieve credentials.
The interface is implemented as a WSGI application which fronts a normal
MyProxyCA server. ``myproxy-logon`` and ``myproxy-get-trustroots`` are
expressed as web service calls. The WSGI application forwards the requests on
to the MyProxy server over the usual MyProxy protocol. The web service
interface is RESTful using GET and POST operations and the logon interface makes
uses of HTTP Basic Auth to pass username and pass-phrase credentials. The
service is hosted over HTTPS.
The unit tests include a test application served using paster. Client scripts
are also available which need no specialised installation or applications, only
openssl and wget or curl which are typically available on Linux/UNIX based
systems.
Changes for version 0.2.0
=========================
The package hierarchy has been reorganised:
* ``myproxy.server.wsgi``: contains middleware to make calls to a MyProxy
service using the ``MyProxyClient`` package. It exposes this interface
through the ``environ`` dict so that other middleware or an app can access
and use it.
* ``myproxy.ws``: contains functionality specific to the web service interface:
- ``myproxy.ws.client``: contains all the functionality for web service clients to the MyProxy web service. This includes:
+ shell scripts (``.sh`` suffix) for logon and get trustroots calls.
These are implemented with openssl and curl. Alternative
implementations are also provided which use wget (``-wget.sh`` suffix)
instead of curl. These scripts have also been tested against an
independent Short-Lived Credential Service developed for the Contrail
EU FP7 project.
+ ``myproxy.ws.client.MyProxyWSClient``: is a Python client interface to
the web service. The third party package ``ndg_httpclient`` is needed
for this class but note that overall, it is set as an optional install.
- ``myproxy.ws.server``: contains the server side functionality - a set of
WSGI middleware and an application to implement logon and get-trustroot
web service calls.
Prerequisites
=============
This has been developed and tested for Python 2.6 and 2.7.
Installation
============
Installation can be performed using easy_install or pip. Since this package is
a wrapper to MyProxy, a MyProxy instance must be deployed that this service can
call and use.
Configuration
=============
Examples are contained in ``myproxy.ws.client.test`` and ``myproxy.server.test``.
managing and issuing PKI based credentials which is part of the Globus Toolkit.
MyProxyWebService provides a HTTP based wrapper interface to MyProxy enabling
HTTP based clients to connect to a MyProxy server and retrieve credentials.
The interface is implemented as a WSGI application which fronts a normal
MyProxyCA server. ``myproxy-logon`` and ``myproxy-get-trustroots`` are
expressed as web service calls. The WSGI application forwards the requests on
to the MyProxy server over the usual MyProxy protocol. The web service
interface is RESTful using GET and POST operations and the logon interface makes
uses of HTTP Basic Auth to pass username and pass-phrase credentials. The
service is hosted over HTTPS.
The unit tests include a test application served using paster. Client scripts
are also available which need no specialised installation or applications, only
openssl and wget or curl which are typically available on Linux/UNIX based
systems.
Changes for version 0.2.0
=========================
The package hierarchy has been reorganised:
* ``myproxy.server.wsgi``: contains middleware to make calls to a MyProxy
service using the ``MyProxyClient`` package. It exposes this interface
through the ``environ`` dict so that other middleware or an app can access
and use it.
* ``myproxy.ws``: contains functionality specific to the web service interface:
- ``myproxy.ws.client``: contains all the functionality for web service clients to the MyProxy web service. This includes:
+ shell scripts (``.sh`` suffix) for logon and get trustroots calls.
These are implemented with openssl and curl. Alternative
implementations are also provided which use wget (``-wget.sh`` suffix)
instead of curl. These scripts have also been tested against an
independent Short-Lived Credential Service developed for the Contrail
EU FP7 project.
+ ``myproxy.ws.client.MyProxyWSClient``: is a Python client interface to
the web service. The third party package ``ndg_httpclient`` is needed
for this class but note that overall, it is set as an optional install.
- ``myproxy.ws.server``: contains the server side functionality - a set of
WSGI middleware and an application to implement logon and get-trustroot
web service calls.
Prerequisites
=============
This has been developed and tested for Python 2.6 and 2.7.
Installation
============
Installation can be performed using easy_install or pip. Since this package is
a wrapper to MyProxy, a MyProxy instance must be deployed that this service can
call and use.
Configuration
=============
Examples are contained in ``myproxy.ws.client.test`` and ``myproxy.server.test``.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
MyProxyWebService-0.2.0.tar.gz
(34.2 kB
view details)
Built Distributions
File details
Details for the file MyProxyWebService-0.2.0.tar.gz
.
File metadata
- Download URL: MyProxyWebService-0.2.0.tar.gz
- Upload date:
- Size: 34.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae6c15137622d6245d4fe3b0c16926eefa88fe847c6200d5a05882f6757b2ff1 |
|
MD5 | d5ffdb85813f94aca81d40fa6c4fe325 |
|
BLAKE2b-256 | b4feabb71fb6e152047e506da03103c9469c22a44e0a4f9fdd9c829cbb7ef25c |
File details
Details for the file MyProxyWebService-0.2.0-py2.7.egg
.
File metadata
- Download URL: MyProxyWebService-0.2.0-py2.7.egg
- Upload date:
- Size: 67.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7f7f6215c68765322cb851eeb56c9bd03be8f927ce4cbad0413400fef0ce8f7 |
|
MD5 | e93d6354b39e168e6907ad564af091b2 |
|
BLAKE2b-256 | 38e9c10f7691d580409f536d150e74abca792ba0c7df247ed67570db1642c22f |
File details
Details for the file MyProxyWebService-0.2.0-py2.6.egg
.
File metadata
- Download URL: MyProxyWebService-0.2.0-py2.6.egg
- Upload date:
- Size: 67.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb5c040acbf5995cdd1ff0166e7b4b7a8653ff7b12264fa13c0cc4818952f47b |
|
MD5 | aef7b605e7939b30a48b75b39e63c045 |
|
BLAKE2b-256 | 27d2fa1d26c9ce467ada87179096ee448896112196fe399cdd176f3c71c14793 |