Skip to main content

CyberArk Application Access Manager Client Library for Python 3

Project description

pyAIM

GitHub last commit GitHub issues PyPI - Python Version GitHub top language PyPI PyPI - Downloads Keybase PGP GitHub

CyberArk Application Access Manager Client Library for Python 3

This project simplifies the interaction between a Python 3 application or script and CyberArk's Application Access Manager's Credential Provider using the appropriate CLIPasswordSDK executable for the Operating System being used. By simplifying this process, developers are only required to change four (4) lines of code in their Python 3 applications and scripts to securely retrieve privileged secrets from CyberArk's Privileged Access Security (PAS) Core Solution as opposed to thirty or more (30+) without the use of this provided Client Library.

New in Version 1.5.0:

  • Added support for timeout when intializing the CCPPasswordREST() class.
  • Added support for delimiter parameter in GetPassword() method for Credential Provider (CLIPasswordSDK) method.
  • Added support for Client Certificate Authentication in GetPassword() method for Centralized Credential Provider (CCPPasswordREST) method.

Table of Contents

Install

Credential Provider (CLIPasswordSDK) Method

  • CyberArk Application Access Manager Credential Provider installed locally.

Centralized Credential Provider (CCPPasswordREST) Method

  • CyberArk Application Access Manager Centralized Credential Provider and AIMWebService

For information on how to install either of these providers, please refer to CyberArk's Application Access Manager Installation Guide or reach out to your assigned Customer Success Technical Advisor.

Windows

Install Latest Python 3

Install the Python 3 release for Windows

Install pyAIM via Pip

> pip3 install pyaim

Linux

Ubuntu/Debian

Install Latest Python 3

$ sudo apt install -y python3 python3-pip

Install pyAIM via Pip

$ pip3 install pyaim

RHEL/CentOS

Install Latest Python 3
RHEL

Follow the EPEL Documentation to ensure you have the EPEL Release repository available.

$ sudo yum install -y https://rhel7.iuscommunity.org/ius-release.rpm

$ sudo yum update

$ sudo yum install -y python36u python36u-libs python36u-devel python36u-pip

CentOS

$ sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm

$ sudo yum update

$ sudo yum install -y python36u python36u-libs python36u-devel python36u-pip

Install pyAIM via Pip

$ pip3 install pyaim

MacOS

No support provided yet.

Z/OS

pyAIM is untested on Z/OS but should work in theory.

Install Latest Python 3

Rocket Software has ported Python 2 and 3 for Z/OS

Install pyAIM via Pip

$ pip3 install pyaim

Usage

Check AIMWebService Availability - check_service()

Centralized Credential Provider (CCPPasswordREST) Method

from pyaim import CCPPasswordREST

aimccp = CCPPasswordREST('https://ccp.cyberarkdemo.example', verify=True) # set verify=False to ignore SSL
service_status = aimccp.check_service()
print(service_status)

Retrieve Account - GetPassword()

Credential Provider (CLIPasswordSDK) Method

Supported Parameters
Query Parameters
  • appid (required)
  • safe (required)
  • folder (default: root)
  • object (this or username required)
  • username (this or object required)
  • address
  • database
  • policyid
  • reason
  • query_format (default: 1)
  • connport
  • sendhash (default: False)
  • output (default: Password)
  • delimiter (default: ,)
  • dual_accounts (default: False)

For compatibility with Dual Accounts where you are referencing a VirtualUsername - use the username parameter and ensure dual_accounts=True.

Example
from pyaim import CLIPasswordSDK

aimcp = CLIPasswordSDK('/opt/CARKaim/sdk/clipasswordsdk')
response = aimcp.GetPassword(appid='appID',safe='safeName',object='objectName',output='PassProps.Username,Password',delimiter='|')

print('Full Response: {}'.format(response))
print('Username: {}'.format(response['PassProps.Username']))
print('Password: {}'.format(response['Password']))

Centralized Credential Provider (CCPPasswordREST) Method

Supported Parameters
CCPPasswordREST()
  • url (required)
  • verify (default: True)
  • cert (default: None)
  • timeout (default: 30)
Query Parameters
  • appid (required)
  • safe (required)
  • folder (default: root)
  • object (this or username required)
  • username (this or object required)
  • address
  • database
  • policyid
  • reason
  • query_format (default: exact)
  • dual_accounts (default: False)

For compatibility with Dual Accounts where you are referencing a VirtualUsername - use the username parameter and ensure dual_accounts=True.

Example
from pyaim import CCPPasswordREST

aimccp = CCPPasswordREST('https://ccp.cyberarkdemo.example', verify=True, timeout=10) # set verify=False to ignore SSL

service_status = aimccp.check_service()

if service_status == 'SUCCESS: AIMWebService Found. Status Code: 200':
    response = aimccp.GetPassword(appid='appid',safe='safe',object='objectName',reason='Reason message')
    print('Full Python Object: {}'.format(response))
    print('Username: {}'.format(response['Username']))
    print('Password: {}'.format(response['Content']))
else:
    raise Exception(service_status)
Example with Client Certificate Authentication
from pyaim import CCPPasswordREST

aimccp = CCPPasswordREST('https://ccp.cyberarkdemo.example', verify=True, cert=('/path/to/cert.pem', '/path/to/key.pem')) # set verify=False to ignore SSL

...

Maintainer

@infamousjoeg

Buy me a coffee

Contributing

Contributions are open! Check out CONTRIBUTING.md for more details!

License

MIT

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

pyaim-1.5.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyaim-1.5.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file pyaim-1.5.0.tar.gz.

File metadata

  • Download URL: pyaim-1.5.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pyaim-1.5.0.tar.gz
Algorithm Hash digest
SHA256 0076c3613877625e74855e30d1a2eb01cd0ab63c2c89037c6c7aa65284ebe2ed
MD5 f0d7eb89657a578a5e26418e4446912c
BLAKE2b-256 89f698dca07613cb78fa8b4b5659b780322a265a6aa560f2396e281eb84cfb4b

See more details on using hashes here.

File details

Details for the file pyaim-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: pyaim-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pyaim-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 54fb48551a300de8bcf919751dceaa260d576f45d9a64018a08416926018c892
MD5 4d0d2ae91b326fc36b43b0507a90fda8
BLAKE2b-256 bc5e4e086de74795a1d809484eaad75c05f29d174e811f684a1384e0df403ea5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page