User Access Token
  • 09 Apr 2024
  • 6 Minutes to read
  • Dark
    Light
  • PDF

User Access Token

  • Dark
    Light
  • PDF

Article Summary

Post
/api/runtime/token/v3

The User Access Token API call is an open-ended question for a specific user, returning the list of allowed assets and their associated actions for a specific application. The API presents a generic request based primarily on the Identity and will return all requested Assets and Actions that are configured for this user in a single token. This API enables the scope to cache the list of authorized Assets for a user within the Application session, thus reducing the overall performance involved in enforcing access.

Notice

When accessing the Authorization APIs, the URL base/prefix, according to your PlainID PDP Location
  • United States Cloud PDP - `https://tenant-name.us1.plainid.io`
  • Canadian Cloud PDP - `https://tenant-name.ca1.plainid.io`
  • European Cloud PDP - `https://tenant-name.eu1.plainid.io`
  • Local PAA - `https://your-paa.acme.local`

For more information on which Asset Types to use with your PAA or Cloud PDP, refer to Managing Asset Types.
Body parameters

User Access Token
{
  "entityId": "string",
  "clientId": "string",
  "clientSecret": "string",
  "entityTypeId": "string",
  "assetList": {
    "type": [
      {
        "template": "string",
        "path": "string",
        "assetAttributes": {
          "attribute_1": [
            "string"
          ],
          "attribute_2": [
            "string"
          ]
        }
      }
    ]
  },
  "entityAttributes": {
    "string": [
      "value"
    ]
  },
  "contextData": {
    "string": [
      "string"
    ]
  },
  "environment": {
    "string": [
      "string"
    ]
  },
  "remoteIp": "192.168.0.1",
  "timeZoneOffset": 0.0,
  "resourceTypes": {
    "name": "resource_01_name",
    "attributeList": "-price -color"
  },
  "includeContext": false,
  "includeAccessPolicy": false,
  "includeAccessPolicyId": false,
  "includeAssetAttributes": false,
  "includeIdentity": false,
  "accessTokenFormat": "JSON",
  "useCache": true
}
Expand All
object
entityId
string Required

Unique identifier of the Identity

Min length1
clientId
string Required

Client ID of the Scope

Min length1
clientSecret
string Required

Client Secret ID of the Scope

Min length1
entityTypeId
string 

Identity Template ID

Min length1
entityAttributes
object

List of Identity Attributes and their values.

If not defined, Dynamic groups based on virtual attributes will not be considered in the Access Decision.

string
Array

contextData
object

Identity Context data for this request.

When specifying this parameter, you are requesting information based on a specific parameter and its value.

For example, Location where the contextData equals a specific branch.

If not defined, Dynamic groups based on context data will not be considered in the Access Decision.

string
Array

environment
object

Environmental parameters need to be defined in policies as request. (in asset rules or conditions) and also sent in the authorization request. Only the assets that match what will be sent in the request will come back.

If not defined, parametes based on emviromental data will not be considered in the Access Decision.

string
Array

remoteIp
string (ipv4) 

IP address to be used when validating a policy. Ensure that your IP Ranges are correct based on an IP calculator.

If not defined, the IP considered in the calculation is taken from the X-Forwarded-For (Request header).

Min length1
timeZoneOffset
number 

To define the offset from UTC time zone. Used in Time Condition.

Default"0"
Example-12
assetList
object

Contains a list of the Asset's unique identifier and attributes:

template
string 

Asset Template ID

path
string 

Asset Unique Identifier

assetAttributes
object
attribute_1
Array of string 
string 
attribute_2
Array of string 
string 
resourceTypes
Array of object 

Because the full payload of the response can be very large, this parameter enables you to decrease the payload size by including a list of Asset Types and their attributes, that will return in the response.

If not specified, all resources from all resource types will be included.

object
name
string Required
attributeList
Array of string Required
string 
includeContext
boolean 

Show/hide the context data in the response.

Default"False"
includeAccessPolicy
boolean 

Show/hide the name of the Policy in the response that has granted the specified access.

Default"False"
includeAccessPolicyId
boolean 

Show/hide the external id of the Policy in the response that granted the specified access.

Default"False"
includeAssetAttributes
boolean 

Show/hide the asset attribute of the assets in the response.

Default"False"
includeIdentity
boolean 

Show/hide the identity attribute of the identity in the response.

Default"False"
accessTokenFormat
string 

Determines the format of the response – whether JSON, JWT, or StandardJWT.

Default"JSON/JWT"
useCache
boolean 

The attribute will determine if the response will consider the cache settings or override the cache and preforming full calculation.

Default"True"
combinedMultiValue
boolean 

Determines the evaluation of Identity Attributes relationship in access decision.

Default"False"
assetContext
Array of object (assetContextRequestItem) 
object
key
string 

An auto-generated key to set the correlation between the requested object and the response object (optional). When working with a single assetContext object, use the “singleObjectResponse” value to align to the original structure response.

resourceType
string Required
path
string 
action
string 
assetAttributes
object
attribute_1
Array of string 
string 
attribute_2
Array of string 
string 
operationalFilters
Array of object 

These operational filters should affect the Runtime behavior and results by applying additional filtering which is not directly related to Authorization logic.

object
OneOf
identitySourcesFilterByIDs

filterType
string Required
filterProperties
object
filterAction
string Required
Valid values[ "INCLUDE", "EXCLUDE" ]
objectsList
Array of string Required
string 

Input your sourceID/s here. For information on where to locate the sourceID, check out Managing Attribute Sources in our documentation.

Responses
200

Default Response
{
  "tokenValidity": 0,
  "response": [
    {
      "access": [
        {
          "path": "27iX3j",
          "attributes": {
            "Path": [
              "27iX3j"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        },
        {
          "path": "72xQ9i",
          "attributes": {
            "Path": [
              "72xQ9i"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        },
        {
          "path": "05mZ1f",
          "attributes": {
            "Path": [
              "05mZ1f"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        }
      ]
    }
  ],
  "contextData": null
}
includeAccessPolicy
{
  "tokenValidity": 0,
  "response": [
    {
      "access": [
        {
          "path": "27iX3j",
          "attributes": {
            "Path": [
              "27iX3j"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "permission": "Manage consumers accounts in branch",
              "permissionId": "p1",
              "action": "View"
            }
          ]
        },
        {
          "path": "72xQ9i",
          "attributes": {
            "Path": [
              "72xQ9i"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "permission": "Manage consumers accounts in branch",
              "permissionId": "p1",
              "action": "View"
            }
          ]
        },
        {
          "path": "05mZ1f",
          "attributes": {
            "Path": [
              "05mZ1f"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "permission": "Manage consumers accounts in branch",
              "permissionId": "p1",
              "action": "View"
            }
          ]
        }
      ]
    }
  ],
  "contextData": null
}
includeAssetAttributes - False
{
  "tokenValidity": 0,
  "response": [
    {
      "access": [
        {
          "path": "27iX3j",
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        },
        {
          "path": "72xQ9i",
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        },
        {
          "path": "05mZ1f",
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        }
      ],
      "contextData": {}
    }
  ]
}
includeIdentity
{
  "tokenValidity": 0,
  "response": [
    {
      "access": [
        {
          "path": "27iX3j",
          "attributes": {
            "Path": [
              "27iX3j"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        },
        {
          "path": "72xQ9i",
          "attributes": {
            "Path": [
              "72xQ9i"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        },
        {
          "path": "05mZ1f",
          "attributes": {
            "Path": [
              "05mZ1f"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        }
      ]
    }
  ],
  "identity": {
    "type": "02a89b66-0a15-4b8e-be6d-84cb99da9b13",
    "typeName": "User",
    "attributes": {
      "First_Name": [
        "Araldo"
      ],
      "uid": [
        "xB724129"
      ],
      "User_Branch": [
        "San Jose"
      ],
      "Last_Name": [
        "Baudou"
      ],
      "ID": [
        "xB724129"
      ],
      "title": [
        "Teller"
      ],
      "User_Type": [
        "Internal"
      ]
    }
  },
  "contextData": null
}
includeContext
{
  "tokenValidity": 0,
  "response": [
    {
      "access": [
        {
          "path": "27iX3j",
          "attributes": {
            "Path": [
              "27iX3j"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        },
        {
          "path": "72xQ9i",
          "attributes": {
            "Path": [
              "72xQ9i"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        },
        {
          "path": "05mZ1f",
          "attributes": {
            "Path": [
              "05mZ1f"
            ],
            "Account Type": [
              "private"
            ],
            "Account Branch": [
              "San Jose"
            ]
          },
          "resourceType": "Bank Accounts",
          "actions": [
            {
              "action": "View"
            }
          ]
        }
      ]
    }
  ],
  "contextData": {
    "partner_id": "724f9f9b-af24-42fc-b97d-b399042ef00d"
  }
}
Expand All

AnyOf
tokenResponse

tokenValidity
integer 
response
Array of object 
object
access
Array of object 
object
path
string 
attributes
object

resourceType
string 
actions
Array of object 
object
action
string 
permission
string 
permissionId
string 
contextData
object
attribute
Array of string 
string 
assetContextTokenResponse

data
Array of object 
object
assetContext
object (assetContextResponseItem)
AnyOf
object

key
string 

An auto-generated key to set the correlation between the requested object and the response object (optional). When working with a single assetContext object, use the “singleObjectResponse” value to align to the original structure response.

object

resourceType
string 
path
string 
action
string 
assetAttributes
object
attribute_1
Array of string 
string 
attribute_2
Array of string 
string 
output
object
accessResponse
object (tokenResponse)
tokenValidity
integer 
response
Array of object 
object
access
Array of object 
object
path
string 
attributes
object

resourceType
string 
actions
Array of object 
object
action
string 
permission
string 
permissionId
string 
contextData
object
attribute
Array of string 
string 
error
string 
400

Bad Request

400 Bad Request
{
  "bank_users1 is not a valid identity type": null
}
object

401

Unauthorized

401 Unauthorized - MissingSecret
{
  "Missing secret": null
}
object

403

Forbidden

403 Forbidden - InvalidSecret
{
  "Invalid secret": null
}
object

500

Internal Server Error

500 - Request
{
  "Asset provider is missing in config": "Accounts"
}
object

501

Example response

generic_error_skeleton
{
  "errors": [
    {
      "id": "XXXX",
      "code": "YYYY",
      "message": "Invalid request"
    }
  ]
}
object
errors
Array

id
string 
Min length1
code
string 
Min length1
message
string 
Min length1

Was this article helpful?