VerifiedPermissions / Client / batch_is_authorized_with_token
batch_is_authorized_with_token#
- VerifiedPermissions.Client.batch_is_authorized_with_token(**kwargs)#
Makes a series of decisions about multiple authorization requests for one token. The principal in this request comes from an external identity source in the form of an identity or access token, formatted as a JSON web token (JWT). The information in the parameters can also define additional context that Verified Permissions can include in the evaluations.
The request is evaluated against all policies in the specified policy store that match the entities that you provide in the entities declaration and in the token. The result of the decisions is a series of
Allow
orDeny
responses, along with the IDs of the policies that produced each decision.The
entities
of aBatchIsAuthorizedWithToken
API request can contain up to 100 resources and up to 99 user groups. Therequests
of aBatchIsAuthorizedWithToken
API request can contain up to 30 requests.Note
The
BatchIsAuthorizedWithToken
operation doesn’t have its own IAM permission. To authorize this operation for Amazon Web Services principals, include the permissionverifiedpermissions:IsAuthorizedWithToken
in their IAM policies.See also: AWS API Documentation
Request Syntax
response = client.batch_is_authorized_with_token( policyStoreId='string', identityToken='string', accessToken='string', entities={ 'entityList': [ { 'identifier': { 'entityType': 'string', 'entityId': 'string' }, 'attributes': { 'string': { 'boolean': True|False, 'entityIdentifier': { 'entityType': 'string', 'entityId': 'string' }, 'long': 123, 'string': 'string', 'set': [ {'... recursive ...'}, ], 'record': { 'string': {'... recursive ...'} } } }, 'parents': [ { 'entityType': 'string', 'entityId': 'string' }, ] }, ] }, requests=[ { 'action': { 'actionType': 'string', 'actionId': 'string' }, 'resource': { 'entityType': 'string', 'entityId': 'string' }, 'context': { 'contextMap': { 'string': { 'boolean': True|False, 'entityIdentifier': { 'entityType': 'string', 'entityId': 'string' }, 'long': 123, 'string': 'string', 'set': [ {'... recursive ...'}, ], 'record': { 'string': {'... recursive ...'} } } } } }, ] )
- Parameters:
policyStoreId (string) –
[REQUIRED]
Specifies the ID of the policy store. Policies in this policy store will be used to make an authorization decision for the input.
identityToken (string) –
Specifies an identity (ID) token for the principal that you want to authorize in each request. This token is provided to you by the identity provider (IdP) associated with the specified identity source. You must specify either an
accessToken
, anidentityToken
, or both.Must be an ID token. Verified Permissions returns an error if the
token_use
claim in the submitted token isn’tid
.accessToken (string) –
Specifies an access token for the principal that you want to authorize in each request. This token is provided to you by the identity provider (IdP) associated with the specified identity source. You must specify either an
accessToken
, anidentityToken
, or both.Must be an access token. Verified Permissions returns an error if the
token_use
claim in the submitted token isn’taccess
.entities (dict) –
Specifies the list of resources and their associated attributes that Verified Permissions can examine when evaluating the policies.
Warning
You can’t include principals in this parameter, only resource and action entities. This parameter can’t include any entities of a type that matches the user or group entity types that you defined in your identity source.
The
BatchIsAuthorizedWithToken
operation takes principal attributes from only theidentityToken
oraccessToken
passed to the operation.For action entities, you can include only their
Identifier
andEntityType
.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
entityList
.entityList (list) –
An array of entities that are needed to successfully evaluate an authorization request. Each entity in this array must include an identifier for the entity, the attributes of the entity, and a list of any parent entities.
(dict) –
Contains information about an entity that can be referenced in a Cedar policy.
This data type is used as one of the fields in the EntitiesDefinition structure.
{ "identifier": { "entityType": "Photo", "entityId": "VacationPhoto94.jpg" }, "attributes": {}, "parents": [ { "entityType": "Album", "entityId": "alice_folder" } ] }
identifier (dict) – [REQUIRED]
The identifier of the entity.
entityType (string) – [REQUIRED]
The type of an entity.
Example:
"entityType":"typeName"
entityId (string) – [REQUIRED]
The identifier of an entity.
"entityId":"identifier"
attributes (dict) –
A list of attributes for the entity.
(string) –
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
boolean
,entityIdentifier
,long
,string
,set
,record
.boolean (boolean) –
An attribute value of Boolean type.
Example:
{"boolean": true}
entityIdentifier (dict) –
An attribute value of type EntityIdentifier.
Example:
"entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType (string) – [REQUIRED]
The type of an entity.
Example:
"entityType":"typeName"
entityId (string) – [REQUIRED]
The identifier of an entity.
"entityId":"identifier"
long (integer) –
An attribute value of Long type.
Example:
{"long": 0}
string (string) –
An attribute value of String type.
Example:
{"string": "abc"}
set (list) –
An attribute value of Set type.
Example:
{"set": [ {} ] }
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
boolean
,entityIdentifier
,long
,string
,set
,record
.
record (dict) –
An attribute value of Record type.
Example:
{"record": { "keyName": {} } }
(string) –
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
boolean
,entityIdentifier
,long
,string
,set
,record
.
parents (list) –
The parent entities in the hierarchy that contains the entity. A principal or resource entity can be defined with at most 99 transitive parents per authorization request.
A transitive parent is an entity in the hierarchy of entities including all direct parents, and parents of parents. For example, a user can be a member of 91 groups if one of those groups is a member of eight groups, for a total of 100: one entity, 91 entity parents, and eight parents of parents.
(dict) –
Contains the identifier of an entity, including its ID and type.
This data type is used as a request parameter for IsAuthorized operation, and as a response parameter for the CreatePolicy, GetPolicy, and UpdatePolicy operations.
Example:
{"entityId":"string","entityType":"string"}
entityType (string) – [REQUIRED]
The type of an entity.
Example:
"entityType":"typeName"
entityId (string) – [REQUIRED]
The identifier of an entity.
"entityId":"identifier"
requests (list) –
[REQUIRED]
An array of up to 30 requests that you want Verified Permissions to evaluate.
(dict) –
An authorization request that you include in a
BatchIsAuthorizedWithToken
API request.action (dict) –
Specifies the requested action to be authorized. For example,
PhotoFlash::ReadPhoto
.actionType (string) – [REQUIRED]
The type of an action.
actionId (string) – [REQUIRED]
The ID of an action.
resource (dict) –
Specifies the resource that you want an authorization decision for. For example,
PhotoFlash::Photo
.entityType (string) – [REQUIRED]
The type of an entity.
Example:
"entityType":"typeName"
entityId (string) – [REQUIRED]
The identifier of an entity.
"entityId":"identifier"
context (dict) –
Specifies additional context that can be used to make more granular authorization decisions.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
contextMap
.contextMap (dict) –
An list of attributes that are needed to successfully evaluate an authorization request. Each attribute in this array must include a map of a data type and its value.
Example:
"contextMap":{"<KeyName1>":{"boolean":true},"<KeyName2>":{"long":1234}}
(string) –
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
boolean
,entityIdentifier
,long
,string
,set
,record
.boolean (boolean) –
An attribute value of Boolean type.
Example:
{"boolean": true}
entityIdentifier (dict) –
An attribute value of type EntityIdentifier.
Example:
"entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType (string) – [REQUIRED]
The type of an entity.
Example:
"entityType":"typeName"
entityId (string) – [REQUIRED]
The identifier of an entity.
"entityId":"identifier"
long (integer) –
An attribute value of Long type.
Example:
{"long": 0}
string (string) –
An attribute value of String type.
Example:
{"string": "abc"}
set (list) –
An attribute value of Set type.
Example:
{"set": [ {} ] }
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
boolean
,entityIdentifier
,long
,string
,set
,record
.
record (dict) –
An attribute value of Record type.
Example:
{"record": { "keyName": {} } }
(string) –
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
boolean
,entityIdentifier
,long
,string
,set
,record
.
- Return type:
dict
- Returns:
Response Syntax
{ 'principal': { 'entityType': 'string', 'entityId': 'string' }, 'results': [ { 'request': { 'action': { 'actionType': 'string', 'actionId': 'string' }, 'resource': { 'entityType': 'string', 'entityId': 'string' }, 'context': { 'contextMap': { 'string': { 'boolean': True|False, 'entityIdentifier': { 'entityType': 'string', 'entityId': 'string' }, 'long': 123, 'string': 'string', 'set': [ {'... recursive ...'}, ], 'record': { 'string': {'... recursive ...'} } } } } }, 'decision': 'ALLOW'|'DENY', 'determiningPolicies': [ { 'policyId': 'string' }, ], 'errors': [ { 'errorDescription': 'string' }, ] }, ] }
Response Structure
(dict) –
principal (dict) –
The identifier of the principal in the ID or access token.
entityType (string) –
The type of an entity.
Example:
"entityType":"typeName"
entityId (string) –
The identifier of an entity.
"entityId":"identifier"
results (list) –
A series of
Allow
orDeny
decisions for each request, and the policies that produced them.(dict) –
The decision, based on policy evaluation, from an individual authorization request in a
BatchIsAuthorizedWithToken
API request.request (dict) –
The authorization request that initiated the decision.
action (dict) –
Specifies the requested action to be authorized. For example,
PhotoFlash::ReadPhoto
.actionType (string) –
The type of an action.
actionId (string) –
The ID of an action.
resource (dict) –
Specifies the resource that you want an authorization decision for. For example,
PhotoFlash::Photo
.entityType (string) –
The type of an entity.
Example:
"entityType":"typeName"
entityId (string) –
The identifier of an entity.
"entityId":"identifier"
context (dict) –
Specifies additional context that can be used to make more granular authorization decisions.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
contextMap
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
contextMap (dict) –
An list of attributes that are needed to successfully evaluate an authorization request. Each attribute in this array must include a map of a data type and its value.
Example:
"contextMap":{"<KeyName1>":{"boolean":true},"<KeyName2>":{"long":1234}}
(string) –
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
boolean
,entityIdentifier
,long
,string
,set
,record
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
boolean (boolean) –
An attribute value of Boolean type.
Example:
{"boolean": true}
entityIdentifier (dict) –
An attribute value of type EntityIdentifier.
Example:
"entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType (string) –
The type of an entity.
Example:
"entityType":"typeName"
entityId (string) –
The identifier of an entity.
"entityId":"identifier"
long (integer) –
An attribute value of Long type.
Example:
{"long": 0}
string (string) –
An attribute value of String type.
Example:
{"string": "abc"}
set (list) –
An attribute value of Set type.
Example:
{"set": [ {} ] }
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
boolean
,entityIdentifier
,long
,string
,set
,record
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
record (dict) –
An attribute value of Record type.
Example:
{"record": { "keyName": {} } }
(string) –
(dict) –
The value of an attribute.
Contains information about the runtime context for a request for which an authorization decision is made.
This data type is used as a member of the ContextDefinition structure which is uses as a request parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
boolean
,entityIdentifier
,long
,string
,set
,record
. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBER
as the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBER
is as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
decision (string) –
An authorization decision that indicates if the authorization request should be allowed or denied.
determiningPolicies (list) –
The list of determining policies used to make the authorization decision. For example, if there are two matching policies, where one is a forbid and the other is a permit, then the forbid policy will be the determining policy. In the case of multiple matching permit policies then there would be multiple determining policies. In the case that no policies match, and hence the response is DENY, there would be no determining policies.
(dict) –
Contains information about one of the policies that determined an authorization decision.
This data type is used as an element in a response parameter for the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
Example:
"determiningPolicies":[{"policyId":"SPEXAMPLEabcdefg111111"}]
policyId (string) –
The Id of a policy that determined to an authorization decision.
Example:
"policyId":"SPEXAMPLEabcdefg111111"
errors (list) –
Errors that occurred while making an authorization decision. For example, a policy might reference an entity or attribute that doesn’t exist in the request.
(dict) –
Contains a description of an evaluation error.
This data type is a response parameter of the IsAuthorized, BatchIsAuthorized, and IsAuthorizedWithToken operations.
errorDescription (string) –
The error description.
Exceptions
VerifiedPermissions.Client.exceptions.ValidationException
VerifiedPermissions.Client.exceptions.AccessDeniedException
VerifiedPermissions.Client.exceptions.ResourceNotFoundException
VerifiedPermissions.Client.exceptions.ThrottlingException
VerifiedPermissions.Client.exceptions.InternalServerException