Categories: Aspera

Faspex 5 Python API Setup


Aspera Faspex 5 is an API-centric platform, supporting common administrative tasks as well as intricate integrations through its comprehensive API. For workflows that don’t involve user interaction, Faspex 5 incorporates JWT (JSON Web Token) for API authentication.

This guide provides a hands-on approach to implement this authentication in Python, complete with sample code for quick API testing.

Prerequisites:
Python 3 & pip
Faspex 5.0+
Download files: authenticate.py constants.py get_health_and_users.py

JWT Authentication Flow
Generate a JWT assertion.
Sign the JWT with your private key. This key should correspond to a public key added into Faspex.
Send the JWT to the Faspex auth component to get a bearer token.
Use this bearer token for making authenticated API requests to Faspex.

Setting Up OAuth Client:

  1. Generate an RSA keypair:
    ssh-keygen -t rsa -m PEM -f [key_location]
  2. Convert the public key to PEM (this output is entered in the GUI below):
    ssh-keygen -f [key_location] -e -m pem
  3. Register a new API client in Faspex. From the Admin app within Faspex, go to “Configurations” – “API clients” and select “Create new.”
    Choose JWT grant type, set token expiry, and assign permissions.
    Either enter the public key here as a global value for selected users to use, or turn ‘Global key’ off and enter the public key in your user
    profile within Faspex.
    Select “Create” and make note of the Client ID for next steps.

Python Script Setup:
Install pyjwt and pyopenssl modules:
pip install pyjwt pyopenssl
Download the three example files to a directory along side your RSA keypair: authenticate.py constants.py get_health_and_users.py

In constants.py , fill in your Faspex server details, API client ID, and your email.
Modify the key location if needed, or use the default (jwt.key and jwt.key.pub within the working directory)
Testing Your Setup:

  1. Test authentication: python3 authenticate.py . Use –debug for error details if there are any issues (check that the constants are correct and the keys are in the right format)
  1. Modify the script to test other endpoints relevant to your workflow. Refer to the Faspex API documentation for further information:
    IBM API Hub – Faspex 5 Endpoints
    IBM Aspera Faspex Ruby JWT example
Jason Warman

Recent Posts

FBI Alert: Outlook & OneDrive Hit by Kali365 Token-Stealing Phishing

Microsoft 365 Phishing Is No Longer Just a Password Problem. It's a Cloud Workflow Security…

3 days ago

What H.R. 8710 Means for CMMC Compliance: A New Cybersecurity Bill for Defense Contractors

A new bipartisan House bill is moving through Congress that would fundamentally change how the…

1 week ago

Aspera vs MASV: The Complete Comparison Guide for Enterprise File Transfer

Executive Summary: IBM Aspera and MASV are both high-speed file transfer platforms, but they're built…

2 weeks ago

UK Cyber Security and Resilience Bill Explained: Supply Chain, Incident Reporting, and What Enterprises Must Do Now

Executive Summary: The UK Cyber Security and Resilience Bill (CSRB) is the most significant overhaul…

2 weeks ago

Enterprise Secure File Sharing at Line Speed, Anywhere in the World

Share files of any size with partners, vendors, and global teams in minutes, not hours.…

2 weeks ago

Enterprise File Transfer: Why Secure, Automated Data Exchange Needs More Than Legacy MFT

Enterprise file transfer used to be a simple problem. Move a file from point A…

3 weeks ago