MBSD.CyberArk.CCPClient
1.0.3
dotnet add package MBSD.CyberArk.CCPClient --version 1.0.3
NuGet\Install-Package MBSD.CyberArk.CCPClient -Version 1.0.3
<PackageReference Include="MBSD.CyberArk.CCPClient" Version="1.0.3" />
<PackageVersion Include="MBSD.CyberArk.CCPClient" Version="1.0.3" />
<PackageReference Include="MBSD.CyberArk.CCPClient" />
paket add MBSD.CyberArk.CCPClient --version 1.0.3
#r "nuget: MBSD.CyberArk.CCPClient, 1.0.3"
#:package MBSD.CyberArk.CCPClient@1.0.3
#addin nuget:?package=MBSD.CyberArk.CCPClient&version=1.0.3
#tool nuget:?package=MBSD.CyberArk.CCPClient&version=1.0.3
MBSD.CyberArk.CCPClient
A clean, simple, and robust .NET Standard library for integrating with CyberArk Central Credential Provider (CCP) with maximum flexibility for enterprise scenarios.
⚠️ Important Disclaimers
This library is developed independently by Matthew Bohan and is not affiliated with, endorsed by, or sponsored by CyberArk / CyberArk Software Ltd.
CyberArk®, Central Credential Provider™, and related names are the property of CyberArk Software Ltd. or its affiliates.
This software uses only publicly available documentation and does not contain proprietary CyberArk code.
This project is a work in progress
This is an initial version of the library, and it may not be fully functional or tested. I don't have access to a CyberArk instance from my personal computer, so contributions, feedback, and testing are welcome to help improve it.
Features
- ✅ Simple API - Clean and intuitive interface with fluent configuration
- ✅ Multiple Authentication Methods - Application ID only, client certificates (file or certificate store)
- ✅ Async & Sync Support - Both asynchronous and synchronous method variants
- ✅ Logging - Structured logging with Microsoft.Extensions.Logging
- ✅ SSL Configuration - Control SSL verification and client certificates
- ✅ Error Handling - Comprehensive exception handling with detailed error information
- ✅ .NET Standard 2.0 - Compatible with .NET Framework 4.6.1+, .NET Core 2.0+, and .NET 5+
Installation
dotnet add package MBSD.CyberArk.CCPClient
Quick Start
Synchronous Quick Start
using System;
using System.Diagnostics;
using System.Net.Http;
using System.Security.Cryptography.X509Certificates;
using Microsoft.Extensions.Options;
using MBSD.CyberArk.CCPClient;
using MBSD.CyberArk.CCPClient.Configuration;
using MBSD.CyberArk.CCPClient.Models;
namespace ConsoleApp1
{
internal class Program
{
private static void Main(string[] args)
{
var options = new CCPOptions
{
BaseUrl = "https://ccp.company.com"
};
try
{
using var httpClient = new HttpClient();
using var CCPClient = new CCPClient(httpClient, Options.Create(options));
if (CCPClient.TestConnection()) // Test the connection to the CyberArk CCP server
{
Debug.WriteLine("Connection Successful!");
}
else
{
Debug.WriteLine("Connection Failed!");
}
// Example of getting a secret using an object ID/Account Name, Safe Name, Application ID and an optional certificate file.
// which is the recommended way to efficiency retrieve secrets from CyberArk CCP.
var secret = CCPClient.GetSecret(
SecretRequest.ForObject("ObjectID/AccountName")
.InSafe("MySafeName")
.UsingApplicationId("MyApplicationID")
.UsingCertificateFile("path/to/certificate.pfx", "certificatePassword")
);
// Example of getting a secret using an object ID/Account Name, Safe Name, Application ID and a certificate stored in the Local Machine store.
var secret2 = CCPClient.GetSecret(
SecretRequest.ForObject("ObjectID/AccountName")
.InSafe("MySafeName")
.UsingApplicationId("MyApplicationID")
.UsingCertificateStore("CERT_THUMBPRINT", StoreLocation.LocalMachine, StoreName.My)
);
// Example of getting just the credential/password using an object ID/Account Name, Safe Name, Application ID, and specifying a folder within the safe.
var password3 = CCPClient.GetPasswordOnly(
SecretRequest.ForObject("ObjectID/AccountName")
.InSafe("MySafeName")
.InFolder("Root")
.UsingApplicationId("MyApplicationID")
);
}
catch (CCPException ccpEx)
{
Debug.WriteLine($"Error: ApplicationID: {ccpEx.ApplicationId}");
Debug.WriteLine($"Error Code: {ccpEx.ErrorCode}");
Debug.WriteLine($"HTTP Status Code: {ccpEx.HttpStatusCode}");
Debug.WriteLine($"Response: {ccpEx.ResponseContent}");
}
}
}
}
Asyncronous Usage
// Retrieve a secret using an object ID/Account Name, Safe Name, and an application ID using Async. var secret = await CCPClient.GetSecretAsync( SecretRequest.ForObject("ObjectID/AccountName") .InSafe("MySafeName") .UsingApplicationId("MyApplicationID")
);
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Legal Information
This library is developed independently by Matthew Bohan and is not affiliated with, endorsed by, or sponsored by CyberArk / CyberArk Software Ltd.
CyberArk®, Central Credential Provider™, and related names are the property of CyberArk Software Ltd. or its affiliates.
This software uses only publicly available documentation and does not contain proprietary CyberArk code.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Submit a pull request
Please ensure all contributions comply with the Apache License 2.0 and do not include any proprietary CyberArk code or documentation.
Support
For issues and questions:
- GitHub Issues: Report bugs and request features
- CyberArk Documentation: Official CCP documentation
- Note: CyberArk will be unable to provide support for this unofficial library - please contact me directly instead.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Extensions.Configuration.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Http (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Options (>= 6.0.0)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.3 | 124 | 7/17/2025 |
CyberArk CCP client library with flexible per-request Application ID and certificate support.
DISCLAIMER: This library is developed independently by Matthew Bohan and is not affiliated with, endorsed by, or sponsored by CyberArk / CyberArk Software Ltd.