Authorization domains
What is an authorization domain?
An authorization domain is a self-contained package that holds everything ADS needs to evaluate access requests: the policies that express your access rules, the attribute definitions that describe the vocabulary those policies use, and the connectors that fetch live attribute values from external systems.
When ADS receives an authorization request, it loads the active domain and uses its contents to evaluate the request. Keeping all of this in one domain makes it straightforward to version, export, and deploy your authorization configuration as a unit.
Domains are defined in YAML and can be created and exported from the Axiomatics Services Manager (ASM). Once exported, you point ADS at the domain file through the deployment configuration.
Domain components
A domain groups the following data:
| Component | Purpose |
|---|---|
| Policies | The set of rules that define access logic: who can do what, under which conditions. A domain must contain at least one policy. ADS will not start without one. |
| Attributes | The vocabulary of the authorization system. Attributes describe the subject (user), resource, action, and environment involved in an access request. |
| Attribute connectors | Components that link to external data sources (databases, LDAP directories, HTTP services) to fetch attribute values at decision time. |
| Attribute cache | A cache that stores attribute values retrieved from connectors, reducing repeat lookups and improving performance. |
| Partial evaluation threshold | A tuning parameter. When a multiple-decision request contains at least this many individual requests, ADS attempts to optimize evaluation. The value must be an integer of 2 or higher. |
Define a domain in YAML
The domain configuration file uses YAML format. The structure below illustrates a complete domain file.
For a detailed reference of every section and field in the domain file, see the Authorization domain file analysis section of the Authorization Domain Manager (ADM) documentationOpens in a new tab.
Validation rules
ADS validates the domain file on startup. If validation fails, ADS logs an error and does not start. The rules are:
| Section | Validation behavior |
|---|---|
| Identity | ADS cannot initialize if the identity property is missing. |
| Metadata | ADS checks only structural integrity. It ignores the content. |
| Policy | ADS will not start if the domain contains no policy. |
| Attributes | Duplicate attribute identifiers and duplicate XACML quadruples are not allowed. |
| Attribute connectors | ADS passes configuration data directly to the connector at initialization. It does not verify that the configurationString value is functional. |
Decision parameters
The decisionParameters section controls multiple-request optimization. When enabled, ADS attempts to optimize requests that meet the threshold. Whether this improves performance depends on the structure of the request and the policy.
decisionParameters:
partialEvaluationThreshold: 2 # minimum individual requests before ADS optimizes a multiple-decision request
Set the threshold too low and ADS may attempt optimization where it offers no benefit, reducing performance. Set it too high and the threshold may never be reached.
Full domain file example
The following example shows a domain file with an identity, an embedded XACML policy, and attribute definitions.
identity: a1b2c3d4-e5f6-7890-abcd-ef1234567890
metadata: {}
policy:
mainPolicyId: my-policy-set
xacmlSpecifications:
- |
<PolicySet PolicySetId="my-policy-set"
PolicyCombiningAlgId="urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:deny-overrides"
xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" Version="1.0">
<!-- policy content -->
</PolicySet>
attributes:
user.department:
xacmlId: user.department
category: 'urn:oasis:names:tc:xacml:1.0:subject-category:access-subject'
datatype: 'http://www.w3.org/2001/XMLSchema#string'
issuer: ''
resource.classification:
xacmlId: resource.classification
category: 'urn:oasis:names:tc:xacml:3.0:attribute-category:resource'
datatype: 'http://www.w3.org/2001/XMLSchema#string'
issuer: ''
action.name:
xacmlId: action.name
category: 'urn:oasis:names:tc:xacml:3.0:attribute-category:action'
datatype: 'http://www.w3.org/2001/XMLSchema#string'
issuer: ''
attributeConnectors: {}
decisionParameters:
partialEvaluationThreshold: 2
Deploy the domain file
After creating the domain file, make it available to ADS by setting the domain property in the deployment configuration file.
See Authorization domain configuration for instructions.
See also
- Configure authorization domains: how to point ADS at your domain file
- Attribute connectors