Credential Store Integration Permissions and API Calls

What permissions and API calls are required for an Azure Key Vault setup?

Overview

This article details the Orchestrator credential store registration and Azure permissions associated to creating an app registration and key vault. Other credential stores will have similar permission requirements.

Note that the key vault user permissions are associated to the vault creator/owner and are granularly configurable using an Azure RBAC or Key Vault access policy to meet your needs.

The following screenshots are current as of November 2023 in Orchestrator version 2022.10.4.

Configuration Details

Credential store registration in Orchestrator

Azure app registration

Azure key vault details

Key vault access configuration

Azure key vault access policies summary

Azure vault app access policies

  • Secret: Get, List, Set, Delete, Recover, Backup, Restore

Azure vault user (owner) access policies

  • Key: Get, List, Update, Create, Import, Delete, Recover, Backup, Restore, Get Rotation Policy, Set Rotation Policy, Rotate
  • Secret: Get, List, Set, Delete, Recover, Backup, Restore
  • Certificate: Get, List, Update, Create, Import, Delete, Recover, Backup, Restore, Manage Contacts, Manage Certificate Authorities, Get Certificate Authorities, List Certificate Authorities, Set Certificate Authorities, Delete Certificate Authorities

Azure Graph API delegated permissions (User.Read)

Secret created in Azure KV (user1)

Orchestrator asset created in Azure KV

Related Orchestrator APIs with example response details:

/odata/CredentialStores/UiPath.Server.Configuration.OData.GetDefaultStoreForResourceType(resourceType='RobotCredential')

{

"@odata.context": "https://orchestrator.local/odata/$metadata#Edm.Int64",

"value": 3

}

/odata/CredentialStores/UiPath.Server.Configuration.OData.GetDefaultStoreForResourceType(resourceType='AssetCredential')

{

"@odata.context": "https://orchestrator.local/odata/$metadata#Edm.Int64",

"value": 3

}

/odata/CredentialStores

{

"@odata.context": "https://orchestrator.local/odata/$metadata#CredentialStores/$entity",

"HostId": null,

"HostName": null,

"Name": "AzureKeyVault-Prod",

"Type": "AzureKeyVault",

"AdditionalConfiguration": "{\"ClientId\":\"0494b782-d7f7-4bc5-9250-df96ab809080\",\"ClientSecret\":\"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\",\"DirectoryId\":\"d8353d2a-b153-4d17-8827-902c51f72357\",\"KeyVaultUri\":\"https://acorchusmarvels.vault.azure.net/\"}",

"Id": 3,

"Details": {

"IsReadOnly": false

}

}

/odata/Assets(2)?$expand=UserValues

{

"@odata.context": "https://orchestrator.local/odata/$metadata#Assets(UserValues())/$entity",

"Name": "KV_Test",

"CanBeDeleted": true,

"ValueScope": "PerRobot",

"ValueType": "Credential",

"Value": null,

"StringValue": "",

"BoolValue": false,

"IntValue": 0,

"CredentialUsername": "",

"CredentialPassword": "",

"ExternalName": "",

"CredentialStoreId": null,

"HasDefaultValue": false,

"Description": null,

"FoldersCount": 1,

"LastModificationTime": "2023-11-27T21:43:59.443Z",

"LastModifierUserId": 3,

"CreationTime": "2023-11-27T18:49:08.247Z",

"CreatorUserId": 3,

"Id": 2,

"KeyValueList": [],

"Tags": [

{

"Name": "poc",

"DisplayName": "PoC",

"Value": "",

"DisplayValue": null

},

{

"Name": "sfdc_user",

"DisplayName": "SFDC_user",

"Value": "user1",

"DisplayValue": "user1"

},

{

"Name": "sfdc_pass",

"DisplayName": "SFDC_pass",

"Value": "p@ssw0rd1",

"DisplayValue": "p@ssw0rd1"

}

],

"UserValues": [

{

"UserId": 6,

"UserName": "User1",

"MachineId": 6,

"MachineName": "orchestrator.local",

"ValueType": "Credential",

"StringValue": "",

"BoolValue": false,

"IntValue": 0,

"Value": "username: orchestrator\\user1",

"CredentialUsername": "orchestrator\\user1",

"CredentialPassword": "",

"CredentialStoreId": 3,

"ExternalName": null,

"Id": 3,

"KeyValueList": []

}

]

}

/odata/Assets/UiPath.Server.Configuration.OData.GetFiltered?$top=10&$orderby=Name%20asc

{

"@odata.context": "https://orchestrator.local/odata/$metadata#Assets",

"@odata.count": 1,

"value": [

{

"Name": "KV_Test",

"CanBeDeleted": true,

"ValueScope": "PerRobot",

"ValueType": "Credential",

"Value": null,

"StringValue": "",

"BoolValue": false,

"IntValue": 0,

"CredentialUsername": "",

"CredentialPassword": "",

"ExternalName": "",

"CredentialStoreId": null,

"HasDefaultValue": false,

"Description": null,

"FoldersCount": 1,

"LastModificationTime": "2023-11-27T21:43:59.443Z",

"LastModifierUserId": 3,

"CreationTime": "2023-11-27T18:49:08.247Z",

"CreatorUserId": 3,

"Id": 2,

"KeyValueList": [],

"Tags": [

{

"Name": "poc",

"DisplayName": "PoC",

"Value": "",

"DisplayValue": null

},

{

"Name": "sfdc_user",

"DisplayName": "SFDC_user",

"Value": "user1",

"DisplayValue": "user1"

},

{

"Name": "sfdc_pass",

"DisplayName": "SFDC_pass",

"Value": "p@ssw0rd1",

"DisplayValue": "p@ssw0rd1"

}

]

}

]

}