# SailPoint Credential Provider Secret Path Expressions Documentation
> Credential Provider Secret Path Expressions Documentation
# Documentation
# AWS Secrets Manager Secret Path Expressions
For information on how to configure the AWS Secrets Manager credential provider, refer to [AWS Secrets Manager]().
## Username
Path syntax: `{Secret ARN}/{secretKey}`
For example:
**Before Encoding**
Using Secret ARN:
```text
secrets://aws-vault/arn:aws:secretsmanager:us-east-1:441113549707:secret:orgName/cred/applicationName/directoryName/username
```
> [!IMPORTANT]
>
> The URL path should always start with the prefix, `secrets://`. Each attribute in the URL path must be URL-encoded. Each URL attribute in the path is case-sensitive.
**After Encoding**
After you encode the URL path, it should appear as follows:
Using Secret ARN:
```text
secrets://aws-vault/arn%3Aaws%3Asecretsmanager%3Aus-east-1%3A441113549707%3Asecret%3AorgName%2Fcred%2FapplicationName%2FdirectoryName/username
```
The following is an explanation of the attributes of this URL:
- `aws-vault` - Configured Credential Provider in the Credential Provider Section.
- `arn:aws:secretsmanager:us-east-1:441113549707:secret:orgName/cred/applicationName/directoryName` - Secret Path ARN.
- `username` - Secret Key which needs to be fetched from the AWS Secrets Manager.
> [!TIP]
>
> Use [urlencoder.org]() to encode your URL attributes.
## Password
Path syntax: `{Secret ARN}/{secretKey}`
For example:
**Before Encoding**
Using Secret ARN:
```text
secrets://aws-vault/arn:aws:secretsmanager:us-east-1:441113549707:secret:orgName/cred/applicationName/directoryName/password
```
> [!IMPORTANT]
>
> The URL path should always start with the prefix, `secrets://`. Each attribute in the URL path must be URL-encoded. Each URL attribute in the path is case-sensitive.
**After Encoding**
After you encode the URL path, it should appear as follows:
Using Secret ARN:
```text
secrets://aws-vault/arn%3Aaws%3Asecretsmanager%3Aus-east-1%3A441113549707%3Asecret%3AorgName%2Fcred%2FapplicationName%2FdirectoryName/password
```
The following is an explanation of the components of this URL:
- `aws-vault` - Configured Credential Provider in the Credential Provider Section.
- `arn:aws:secretsmanager:us-east-1:441113549707:secret:orgName/cred/applicationName/directoryName` - Secret Path ARN.
- `password` - Secret Key which needs to be fetched from the AWS Secrets Manager.
> [!TIP]
>
> Use [urlencoder.org]() to encode your URL attributes.
## Prefixes and Suffixes
If any secret paths have a prefix or a suffix, you must append a query parameter to the secret path as follows:
- To add a prefix - `?prefix=`. For example, if the secret value returned after evaluation is `LocalAdmin`, but the complete value required by the secret field is `DomainOne\LocalAdmin` then the secret path expression will be as follows to add the required prefix:
```text
secrets://aws-vault/arn%3Aaws%3Asecretsmanager%3Aus-east-1%3A441113549707%3Asecret%3AorgName%2Fcred%2FapplicationName%2FdirectoryName/password?prefix=DomainOne%5C
```
- To add a suffix - `?suffix=`. For example, if the secret value returned after evaluation is `localadministrator`, but the complete value required by the secret field is `localadminstrator@sp.com` then the secret path expression will be as follows to add the required suffix:
```text
secrets://aws-vault/arn:aws:secretsmanager:us-east-1:441113549707:secret:orgName/cred/applicationName/directoryName/password?suffix=%40sp.com
```
- To add a prefix and suffix - `?prefix=&suffix=`. For example, if the secret value returned after evaluation is `LocalAdmin`, but the complete value required by the secret field is `DomainOne\LocalAdmin@sp.com` then the secret path expression will be as follows to add the required prefix and suffix:
```text
secrets://aws-vault/arn:aws:secretsmanager:us-east-1:441113549707:secret:orgName/cred/applicationName/directoryName/password?prefix=DomainOne%5C&suffix=%40sp.com
```
> [!IMPORTANT]
>
> All input parameters must be encoded.
Standard format for credential path:
```text
secrets://{vault-name}/{secret ARN}/{secretKey}?prefix=someValue&suffix=someValue2&versionId=123&versionStage=PREVIOUS
```
> [!IMPORTANT]
>
> Prefix, suffix, versionId, and versionStage are optional.
The AWS Secrets Manager has provision to store secrets in two ways:
1. In key value / JSON / map format.
2. Plain text format.
> [!NOTE]
>
> For secrets which are stored in plain text format, there is no need to provide the secret key in the credential path.
For example:
**Before Encoding**
Using Secret ARN:
```text
secrets://aws-vault/arn:aws:secretsmanager:us-east-1:441113549707:secret:orgName/cred/applicationName/directoryName
```
> [!IMPORTANT]
>
> The URL path should always start with the prefix, `secrets://`. Each attribute in the URL path must be URL-encoded. Each URL attribute in the path is case-sensitive.
**After Encoding**
After you encode the URL path, it should appear as follows:
Using Secret ARN:
```text
secrets://aws-vault/arn%3Aaws%3Asecretsmanager%3Aus-east-1%3A441113549707%3Asecret%3AorgName%2Fcred%2FapplicationName%2FdirectoryName
```
### Other Query Parameters
- **versionId** - The unique identifier of the version of the secret to retrieve. If you include both this parameter and `versionStage`, the two parameters must refer to the same secret version. If you don't specify both `versionStage` and `versionId`, then Secrets Manager returns the `AWSCURRENT` version.
Example:
```text
secrets://aws-vault/arn%3Aaws%3Asecretsmanager%3Aus-east-1%3A441113549707%3Asecret%3AorgName%2Fcred%2FapplicationName%2FdirectoryName/password?versionId=123
```
- **versionStage** - The staging label of the version of the secret to retrieve. Secrets Manager uses staging labels to keep track of different versions during the rotation process. If you include both this parameter and `versionId`, the two parameters must refer to the same secret version. If you don't specify both `versionStage` and `versionId`, Secrets Manager returns the `AWSCURRENT` version.
Example:
```text
secrets://aws-vault/arn%3Aaws%3Asecretsmanager%3Aus-east-1%3A441113549707%3Asecret%3AorgName%2Fcred%2FapplicationName%2FdirectoryName/password?versionStage=AWSCURRENT
```
- **versionId and versionStage** - If you include both the `versionStage` and `versionId` parameters, the two parameters must refer to the same secret version. If you don't specify both `versionStage` and `versionId`, Secrets Manager returns the `AWSCURRENT` version.
Example:
```text
secrets://aws-vault/arn%3Aaws%3Asecretsmanager%3Aus-east-1%3A441113549707%3Asecret%3AorgName%2Fcred%2FapplicationName%2FdirectoryName/password?versionId=123&versionStage=AWSCURRENT
```
# Azure Key Vault Secret Path Expressions
For information on how to configure the Azure Key Vault credential provider, refer to [Azure Key Vault]().
## Username and Password
> [!NOTE]
>
> The reference examples provided on this page are for **Secrets**; similarly, follow the same approach for **Keys** and **Certificates**.
**Before Encoding**
Using Secret ARN:
```text
secrets://azure-key-vault/https://jubileecpkeyvault.vault.azure.net/keys/HarshalFirstKey/value
```
> [!NOTE]
>
> It is recommended to omit the version ID from secret, key, or certificate identifiers to always fetch the latest value.
>
> Example: The secret identifier below includes a version ID:
>
> ```text
> https://jubileecpkeyvault.vault.azure.net/secrets/HarshalFirstKey/e5a9dd5cc1284a4caa5bef8cd733feab
> ```
>
> The recommended approach is to omit the version ID from the identifier, ensuring that the latest value is always retrieved:
>
> ```text
> https://jubileecpkeyvault.vault.azure.net/secrets/HarshalFirstKey
> ```
> [!IMPORTANT]
>
> The URL path should always start with the prefix, `secrets://`. Each attribute in the URL path must be URL-encoded. Each URL attribute in the path is case-sensitive.
**After Encoding**
After you encode the URL path, it should appear as follows:
Using Secret ARN:
```text
secrets://azure-key-vault/https%3A%2F%2Fjubileecpkeyvault.vault.azure.net%2Fkeys%2FHarshalFirstKey/value
```
The following is an explanation of the attributes of this URL:
- `azure-key-vault` - Configured Credential Provider on SailPoint.
- `https%3A%2F%2Fjubileecpkeyvault.vault.azure.net%2Fkeys%2FHarshalFirstKey` - Secret Identifier of the secret.
- `value` - The name of the secret which needs to be fetched from the JSON response.
> [!TIP]
>
> Use [urlencoder.org]() to encode your URL attributes.
## Prefixes and Suffixes
If any secret paths have a prefix or a suffix, you must append a query parameter to the secret path as follows:
- To add a prefix - `?prefix=`. For example, if the secret value returned after evaluation is `LocalAdmin`, but the complete value required by the secret field is `DomainOne\LocalAdmin` then the secret path expression will be as follows to add the required prefix:
```text
secrets://azure-key-vault/https%3A%2F%2Fjubileecpkeyvault.vault.azure.net%2Fkeys%2FHarshalFirstKey/value?prefix=DomainOne%5C
```
- To add a suffix - `?suffix=`. For example, if the secret value returned after evaluation is `localadministrator`, but the complete value required by the secret field is `localadminstrator@sp.com` then the secret path expression will be as follows to add the required suffix:
```text
secrets://azure-key-vault/https%3A%2F%2Fjubileecpkeyvault.vault.azure.net%2Fkeys%2FHarshalFirstKey/value?suffix=%40sp.com
```
- To add a prefix and suffix - `?prefix=&suffix=`. For example, if the secret value returned after evaluation is `LocalAdmin`, but the complete value required by the secret field is `DomainOne\LocalAdmin@sp.com` then the secret path expression will be as follows to add the required prefix and suffix:
```text
secrets://azure-key-vault/https%3A%2F%2Fjubileecpkeyvault.vault.azure.net%2Fkeys%2FHarshalFirstKey/value?prefix=DomainOne%5C&suffix=%40sp.com
```
> [!IMPORTANT]
>
> All input parameters must be encoded.
Standard format for credential path:
```text
secrets://{credential-provider-source}/{secret-identifier}/{secret-key}?prefix=someValue&suffix=someValue2
```
> [!IMPORTANT]
>
> Prefix and suffix are optional.
# BeyondTrust Password Safe Cloud (Secrets Management) Secret Path Expressions
For information on how to configure the BeyondTrust Password Safe Cloud (Secrets Management) credential provider, refer to [BeyondTrust Password Safe Cloud (Secrets Management)]().
Secret URL syntax: `secrets://{CredentialProviderName}/{SecretURL}`
The following is an explanation of the attributes of this URL:
- `CredentialProviderName` - The name of the credential provider source configured in SailPoint.
- `SecretURL` - A query string that uniquely identifies the secret within BeyondTrust Password Safe. It specifies the managed system and the managed account within that system. The format of the `SecretURL` is as follows:
```text
systemName={nameOfManagedSystem}&accountName={nameOfManagedAccount}
```
> [!IMPORTANT]
>
> - `CredentialProviderName` and `SecretURL` must be URL-encoded individually before constructing the final secret path expression.
> - `systemName` and `accountName` are reserved keywords in the `SecretURL` format and must not be used as part of the values for `nameOfManagedSystem` or `nameOfManagedAccount`.
> [!TIP]
>
> Use [urlencoder.org]() to encode your URL attributes.
## Secret URL Examples
**Before Encoding**
```text
secrets://BeyondTrust Password Safe/systemName=Microsoft Entra ID&accountName=user@company.onmicrosoft.com
```
**After Encoding**
```text
secrets://BeyondTrust%20Password%20Safe/systemName%3DMicrosoft%20Entra%20ID%26accountName%3Duser%40company.onmicrosoft.com
```
## Prefixes and Suffixes
If any secret paths have a prefix or a suffix, you must append a query parameter to the secret path as follows:
- To add a prefix - `?prefix=`. For example, if the secret value returned after evaluation is `Secure#456`, but the complete value required by the secret field is `app1-dev@Secure#456` then the secret path expression will be as follows to add the required prefix:
```text
secrets://BeyondTrust%20Password%20Safe/systemName%3DMicrosoft%20Entra%20ID%26accountName%3Duser%40company.onmicrosoft.com?prefix=app1-dev%40
```
- To add a suffix - `?suffix=`. For example, if the secret value returned after evaluation is `app1-dev`, but the complete value required by the secret field is `app1-dev@Secure#456` then the secret path expression will be as follows to add the required suffix:
```text
secrets://BeyondTrust%20Password%20Safe/systemName%3DMicrosoft%20Entra%20ID%26accountName%3Duser%40company.onmicrosoft.com?suffix=%40Secure%23456
```
# BeyondTrust Password Safe On-Premise (Secrets Management) Secret Path Expressions
For information on how to configure the BeyondTrust Password Safe On-Premise (Secrets Management) credential provider, refer to [BeyondTrust Password Safe On-Premise (Secrets Manager)]().
Secret URL syntax: `secrets://{CredentialProviderName}/{SecretURL}`
The following is an explanation of the attributes of this URL:
- `CredentialProviderName` - The name of the credential provider source configured in SailPoint.
- `SecretURL` - A query string that uniquely identifies the secret within BeyondTrust Password Safe. It specifies the managed system and the managed account within that system. The format of the `SecretURL` is as follows:
```text
systemName={nameOfManagedSystem}&accountName={nameOfManagedAccount}
```
> [!IMPORTANT]
>
> - `CredentialProviderName` and `SecretURL` must be URL-encoded individually before constructing the final secret path expression.
> - `systemName` and `accountName` are reserved keywords in the `SecretURL` format and must not be used as part of the values for `nameOfManagedSystem` or `nameOfManagedAccount`.
> [!TIP]
>
> Use [urlencoder.org]() to encode your URL attributes.
## Secret URL Examples
**Before Encoding**
```text
secrets://BeyondTrust Password Safe/systemName=Microsoft Entra ID&accountName=user@company.onmicrosoft.com
```
**After Encoding**
```text
secrets://BeyondTrust%20Password%20Safe/systemName%3DMicrosoft%20Entra%20ID%26accountName%3Duser%40company.onmicrosoft.com
```
## Prefixes and Suffixes
If any secret paths have a prefix or a suffix, you must append a query parameter to the secret path as follows:
- To add a prefix - `?prefix=`. For example, if the secret value returned after evaluation is `Secure#456`, but the complete value required by the secret field is `app1-dev@Secure#456` then the secret path expression will be as follows to add the required prefix:
```text
secrets://BeyondTrust%20Password%20Safe/systemName%3DMicrosoft%20Entra%20ID%26accountName%3Duser%40company.onmicrosoft.com?prefix=app1-dev%40
```
- To add a suffix - `?suffix=`. For example, if the secret value returned after evaluation is `app1-dev`, but the complete value required by the secret field is `app1-dev@Secure#456` then the secret path expression will be as follows to add the required suffix:
```text
secrets://BeyondTrust%20Password%20Safe/systemName%3DMicrosoft%20Entra%20ID%26accountName%3Duser%40company.onmicrosoft.com?suffix=%40Secure%23456
```
# CyberArk Central Credential Provider (CCP) Secret Path Expressions
For more information on how to configure the CyberArk Central Credential Provider (CCP), refer to [CyberArk Central Credential Provider (CCP)]().
Path syntax: `{params required to fetch secret}/{secretKey}`
Secret URL: `secrets://{CyberArk Central Credential Provider Source Name}/{params required to fetch secret}/{secretKey}`
> [!IMPORTANT]
>
> The URL path should always start with the prefix, secrets://. Each URL should be URL-encoded. Each URL attribute in the path is case-sensitive
The CyberArk Central Credential Provider fetches secret using REST API. The REST API URL format to fetch secrets is as follows:
```text
https:////api/Accounts?=&=&
```
> [!NOTE]
>
> In the provided example, the parameters required to fetch the secret are `=&=&`
Secret URL example:
**Before Encoding**
```text
secrets:///