Adding optional parameter for client certificate authentication to all major functions on a co3base.py Baseclient and the SimpleClient in co3.py for Resilient/SOAR REST API.
Two new optional keys can be added to the app.config to leverage this functionality:
:warning: <certificate-key>.pem must be password unprotected as python request package doesn't support this.
Motivation and Context
When using a reverse proxy or other security components to additionally secure the REST API of IBM Security SOAR with client certificate authentication the resilient-python-api (specifically the resilient package) can't be used anymore as it doesn't support this feature, yet.
Following setup with IBM Security Verify Access (ISVA) as reverse proxy and client certificate validation has been setup:
Flow Diagram Client Cert Authentication
A self-signed certificate was created with following commands:
[x] Either no new documentation is required by this change, OR I added new documentation
[x] Either no new tests are required by this change, OR I added new tests
[x] I have run pep8 and pylint. I have cleaned up all valid errors and warnings in code I have added or modified. These tools may generate false positives. Don't be worried about ignoring some errors or warnings. The goal is clean, consistent, and readable code.
Signed-off-by: Sebastian Vetter sebastian.vetter@de.ibm.com
Description
Adding optional parameter for client certificate authentication to all major functions on a co3base.py Baseclient and the SimpleClient in co3.py for Resilient/SOAR REST API.
Two new optional keys can be added to the app.config to leverage this functionality:
Motivation and Context
When using a reverse proxy or other security components to additionally secure the REST API of IBM Security SOAR with client certificate authentication the resilient-python-api (specifically the resilient package) can't be used anymore as it doesn't support this feature, yet.
The python request module does support client certificate authentication (https://docs.python-requests.org/en/latest/user/advanced/#client-side-certificates) and therefore the resilient python library needs to be extended to allow adding the optional
cert
parameter through the function calling chain.How Has This Been Tested?
Following setup with IBM Security Verify Access (ISVA) as reverse proxy and client certificate validation has been setup: Flow Diagram Client Cert Authentication
A self-signed certificate was created with following commands:
And following Script was used to test resilient library:
Checklist:
Signed-off-by: Sebastian Vetter sebastian.vetter@de.ibm.com