Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Multiple Selection of entitlements with in entitlement type

VisveswaraReddy
New Contributor II
New Contributor II

Hi Team, 

We have an requirement for Blackline application which is SAAS based application where we need to pass 3 entitlement types - Entities, Team and Role-product. For the 3rd entitlement type Role- Product we have the below payload and this can be modified based on user selection in ARS form is it possible to pass in Add access JSON If yes can you please help us with sample JSON.

Pay load for user selection one entitlement

[
{
"roleId": 5,
"productId": "A"
}

]

Pay load for multiple entitlement selection

[
{
"roleId": 3,
"productId": "A"
},
{
"roleId": 4,
"productId": "A"
},

{
"roleId": 9,
"productId": "B"
},

{
"roleId": 22,
"productId": "J"
}

]

 

10 REPLIES 10

NM
Honored Contributor III
Honored Contributor III

@VisveswaraReddy store product ID in role Entitlement custom property.

2) share the entitlement type 3 format


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

VisveswaraReddy
New Contributor II
New Contributor II

Hi,

This is the get call response.

VisveswaraReddy_0-1729051939445.png

the expectation in ARS form is below

VisveswaraReddy_1-1729052565416.png

we are able to get in above format only with the below JSON which is working now.

"role-productMappping": {
"entTypeOrder": 5,
"entTypeLabels": {},
"call": {
"call3": {
"connection": "acctAuth",
"callOrder": 0,
"stageNumber": 0,
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "URLhere",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "items",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "#CONST#${String data1 = response.product.id; String data2 = response.role.id; ret = data1 + \"-\" + data2; return ret}~#~char",
"entitlement_value": "#CONST#${String data1 = response.product.name; String data2 = response.role.name; ret = data1 + \"-\" + data2; return ret}~#~char"
}
}
}
}

 

{
  "call": [
    {
      "name": "Entities",
      "connection": "accAuth",
      "url": "https://${connection.hosturl}/v1/users/${account.accountID}/entities",
      "httpMethod": "POST",
      "httpHeaders": {
        "Authorization": "${access_token}",
        "Content-Type": "application/json"
      },
      "httpContentType": "application/json",
      "httpParams": "[${entitlementValue.entitlementID}]",
      "successResponses": {
        "statusCode": [
          200,
          201,
          204
        ]
      }
    },
    {
      "name": "Teams",
      "connection": "accAuth",
      "url": "https://${connection.hosturl}/v1/users/${account.accountID}/teams",
      "httpMethod": "POST",
      "httpHeaders": {
        "Authorization": "${access_token}",
        "Content-Type": "application/json"
      },
      "httpContentType": "application/json",
      "httpParams": "[${entitlementValue.entitlementID}]",
      "successResponses": {
        "statusCode": [
          200,
          201,
          204
        ]
      }
    },
    {
      "name": "Roles and Products",
      "connection": "accAuth",
      "url": "https://${connection.hosturl}/v1/users/${account.accountID}/roles-products",
      "httpMethod": "POST",
      "httpHeaders": {
        "Authorization": "${access_token}",
        "Content-Type": "application/json"
      },
      "httpContentType": "application/json",
      "httpParams": "[{\"roleId\": ${entitlementValue.customproperty1},\"productId\": \"${entitlementValue.customproperty3}\"}]",
      "successResponses": {
        "statusCode": [
          200,
          201,
          204
        ]
      }
    }
  ]
}

 


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

NM
Honored Contributor III
Honored Contributor III

@VisveswaraReddy if before hyphen it is role and after it is product .. 

You can use split function and pass the value in json.

Do we have to also pass the ID??


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

VisveswaraReddy
New Contributor II
New Contributor II

Hi @NM, We are passing Role ID and Product ID only.

NM
Honored Contributor III
Honored Contributor III

@VisveswaraReddy yes then store it in one of the custom property and pass it .. should work ..


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

VisveswaraReddy
New Contributor II
New Contributor II

@rushikeshvartak , @NM

We can see that you shared the Add Acces json for one block for Role-Product EntitlementType.

"httpParams": "[{\"roleId\": ${entitlementValue.customproperty1},\"productId\": \"${entitlementValue.customproperty3}\"}]"

But in case there are more selection from the ARS form, it should pass the data in a format as below.

 

[
{
"roleId": 3,
"productId": "A"
},
{
"roleId": 4,
"productId": "A"
}

}

 

So in that case will it support the two block format??

 

NM
Honored Contributor III
Honored Contributor III

@VisveswaraReddy it will create seperate task for each and every entitlement requested. Do get call to get existing entitlement and append the requested one.


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

VisveswaraReddy
New Contributor II
New Contributor II

Hi @NM

And also this each selection from ARS is dynamic and dependent on the user what they want to select. So the JSON should also dynamically change as per the selection in the ARS form. Is it supported?

 

NM
Honored Contributor III
Honored Contributor III

@VisveswaraReddy it will fetch the value from entitlement customproperty so sort of dynamic only.


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'