Delegation Policy
The Delegation Policy Request endpoint is an API endpoint that can be used to request the creation of a delegation policy.
The Delegation policy request endpoint is an API endpoint that receives policy creation requests. The POST body accepts a JWT token: the Policy Creation Request Token.
OAuth 2.0 authorization based on bearer token. MUST contain “Bearer “ + access token value. Must be provided if restricted endpoints are needed.
OK: The requested policy is created.
No content
Unauthorized: When Authorization header is either missing, invalid or token has already expired.
Forbidden: This error message is return when a policy creation request could not be processed after rules evaluation. The requested policy does not comply with the rules as set by the Entitled Party.
Server Error: When the Authorization Registry was unable to process the request
POST /delegationPolicy HTTP/1.1
Host: isharetest.net
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"delegationPolicyRequestToken": "text"
}No content
Request
Headers
AuthorizationString. (Required) OAuth 2.0 authorisation based on a bearer token. MUST contain “Bearer “ + access token value. How to retrieve the access token can be found in the Access Token Endpoint section.Content-TypeString. Defines the request body content type. MUST be equal to application/json.
Parameters
The body of the request contains iSHARE Compliant JWT delegationPolicyRequestToken. Besides the default attributes (iss, sub, aud, etc.), it contains the following attributes. The model of the delegation PolicyRequestToken is available on the iSHARE OpenAPI documentation. For convenience, the model is also described below.
delegationPolicyRequestObject. Root level. (Required) Contains information about the delegation policy that is requested to create.notBeforeInteger. Contained indelegationPolicyRequest. (Required) Unix timestamp indicating the start of the validity period of the requested delegation policy.notOnOrAfterInteger. Contained indelegationPolicyRequest. Unix timestamp indicating the end of the validity period of the requested delegation policy.policyRequestorString. Contained indelegationPolicyRequest. (Required) Identifier of the party to which the right is delegated.policyIssuerString. Contained indelegationPolicyRequest. (Required) Identifier of the delegator, also known as the delegating entity.targetObject. Contained indelegationPolicyRequest. (Required) MUST for the root level contain an accessSubject. No other elements are allowed. It makes the entire requested delegation policy applicable only to this accessSubject.accessSubjectObject. Contained intarget. (Required) The identifier of the delegate, also known as the entity that receives the delegated rights. It should be a party identifier for M2M cases or a human pseudonym for H2M cases. This would usually hold the same value as policyRequestor.
policySetsArray of Objects. Contained indelegationPolicyRequest. (Required) A container for one or more objects containing policy elements with an indication for further delegation. Note that policySet elements within one delegationPolicyRequest MUST not restrict each other, but rather offer a mechanism to express additional rights. They will be evaluated by the Authorisation Registry in a permit-override manner, allowing a Permit if only one of the policySet elements evaluates to Permit.maxDelegationDepthInteger. Contained inpolicySets. Optional. An optional element that, if present, indicates that further delegation of the rights, conveyed in the policy elements that are part of this PolicySet, is allowed. The value indicates the delegation steps that are allowed after this step in order to evaluate the entire delegation path to Permit.targetObject. Contained in
policySets. Optional.Contains
environment.environmentObject. Contained in
target. Optional.Contains
licenses.licensesArray of Strings and Objects. Contained in
environment.An array which describes which iSHARE licenses apply to this policy set. Please refer to theLicenses model for more information about structuring this array.
policiesArray of Objects. Contained in
policySets. (Required)Used to express the actual rights for which evidence is being provided. Note that policies within one policySet object MUST not restrict each other, but rather offer a mechanism to express additional rights. They will be evaluated in a permit-override manner, allowing a Permit if only one of the policy elements evaluates to Permit.
targetObject. Contained inpolicies. (Required) Describes the target, in terms of resource and action, this request applies. It is also the scope that is permitted through the default rule.resourceObject. Contained intarget. (Required) Containstype,identifiersandattributes.typeString. Contained inresource. (Required) String which describes the type of resource to which the rules apply.identifiersArray of Strings. Contained inresource. Optional. Optional array of strings containing one or more resource identifiers.attributesArray of Strings. Contained inresource. Optional. An optional array of attributes of the resources the delegated rights apply to.
actionsArray of Strings. Contained intarget. (Required) An array of actions that apply to this policy.contextObject. Contained intarget. Optional. Object containing context information that must be evaluated by the Authorisation Registry before providing Delegation Evidence.conditionsObject. Contained incontext. Optional. Optional conditions which must be evaluated by the Authorisation Registry. For guidance on how to interoperably define conditions, refer to the page about delegation evidence conditions. The condition structure is the same as the structure when conditions are part of the rules that are provided to the Service Provider/Consumer (Type 2: evaluate conditions by the Service Provider). When Delegation Evidence is requested by the Service Provider/Consumer (Type 1: conditions evaluated by an Authorisation Registry), it is expected that the context contains key/value pairs on which these conditions must be applied. The following keywords in conditions are reserved:serviceProviders: reserved keyword for a condition that contains a list of party identifiers of Service Providers, which are allowed to provide services to the accessSubject.
rulesArray of Objects. Contained inpolicies. (Required)effectString. Contained inrules. (Required) Value must be equal to Permit or Deny.conditionsObject. Contained inrules. Optional. Optional conditions which must be evaluated by the Service Provider before the rule applies. The conditions must be provided as-is to the Service Provider. For guidance on how to interoperably define conditions, refer to the page about delegation evidence conditions (Type 2: evaluate conditions by the Service Provider). The following keywords in conditions are reserved:serviceProviders: reserved keyword for a condition that contains a list of party identifiers of Service Providers, which are allowed to provide services to the accessSubject.
Response
HTTP status codes
200 OK
When the creation of the delegation policy was successful, an OK result should be returned.
Last updated