Dynamic Access Profiles
Use attribute formatters to dynamically select Access Profiles at runtime based on user attributes
Overview
Dynamic Access Profiles enable context-aware provisioning by enabling the Manage Relationships action to resolve Access Profile names at runtime using user attributes.
Instead of explicitly selecting static Access Profiles when configuring a workflow, you can use attribute formatter expressions that evaluate to Access Profile names dynamically when the workflow executes. This is particularly valuable for organizations with complex access patterns based on attributes like department, location, role, or business unit.
This feature eliminates the need for separate workflow conditions for each profile combination, supporting configurations where a single workflow provisions users to different Access Profiles based on their identity attributes.
How It Works
Runtime Resolution Process
When a Lifecycle Management workflow runs with dynamic Access Profiles configured:
Attribute Evaluation: The system evaluates each dynamic Access Profile formatter expression using the identity's attributes. For example, if the expression is
dept-{department | LOWER}and the user's department attribute isEngineering, the system evaluates this todept-engineering.Name Resolution: The evaluated expression produces an Access Profile name.
Access Profiles must be named using a predictable, consistent pattern to facilitate resolution. Without consistent naming conventions, dynamic profile resolution will fail to match existing profiles.
Profile Lookup: Veza looks up an Access Profile with that exact name
Profile Application: If the profile exists in the RUNNING state, its entitlements are applied. Resolved profiles can contain entitlements across multiple target integrations, and dynamically resolved profiles can inherit entitlements from other profiles.
Graceful Continuation: If the profile name doesn't resolve or doesn't exist, Veza logs the issue to the Activity Log and continues processing any other Access Profiles. This is the default behavior and ensures missing or non-existent profiles don't cause the entire workflow to fail.
Key Characteristics
Name-based Lookup: Dynamic Access Profiles resolve to profile NAMES, not IDs
Naming Convention Critical: Access Profiles must be named using a predictable, consistent pattern
Profile Inheritance Support: Dynamically resolved profiles can inherit entitlements from other profiles
Multi-Integration Support: Resolved profiles can contain entitlements across multiple target integrations
Graceful Failure: By default, missing or non-existent profiles don't cause the entire workflow to fail
Dynamic and static Access Profiles can be used together in the same action.
Comparison: Static vs. Dynamic Access Profiles
Selection Time
Policy configuration time
Workflow execution time
Identifier Type
Access Profile ID
Access Profile name (resolved from expression)
Validation
Profile existence validated when saving policy
Expression syntax validated when saving policy; profile existence checked at runtime
Flexibility
Fixed set of profiles
Adapts based on user attributes
Use Case
Universal access for all users in a workflow
Conditional access based on attributes
Scalability
Requires separate conditions for variations
Single workflow handles all variations
Failure Behavior
Policy creation fails if profile doesn't exist
Graceful continuation if profile doesn't exist
Configuration
Prerequisites
Before configuring Dynamic Access Profiles:
Create Access Profiles following a consistent naming convention that includes attribute values
Identify User Attributes that will drive profile selection (e.g., department, location, role)
Plan Naming Pattern that incorporates these attributes predictably
Configuring Dynamic Access Profiles
Navigate to Lifecycle Management > Policies
Create or edit a policy
Add or edit a Manage Relationships action
In the Dynamic Access Profiles section:
Click Add Profile Name to add a new dynamic profile expression
Enter an attribute formatter expression that evaluates to an Access Profile name
Use the autocomplete to reference available attributes
Add multiple dynamic profile expressions as needed
Formatter Expression Syntax
Dynamic Access Profile expressions use the attribute formatter syntax:
Common Patterns include:
{department}- Direct attribute value{department | LOWER}- Convert attribute value to lowercase{OAA.Secondary.Employee.department}- Attribute from a secondary source of identityTEAM-{department}-{businessUnitCode}- Multiple attributes combined with static text{location | UPPER}-{role | LOWER}- Multiple attributes with different formatters
You can configure multiple dynamic Access Profile expressions in a single action by clicking Add Profile Name for each additional expression. Each expression is evaluated independently.
Example: Configuring three dynamic profiles for department, location, and role-based access:
`dept-{department
`location-{location
`role-{role
In this configuration, the user receives entitlements from up to three Access Profiles based on their attributes. Each expression is added as a separate profile in the UI.
Examples
Best Practices
Naming Conventions
Success with Dynamic Access Profiles depends on establishing consistent naming patterns for your Access Profiles:
Use clear delimiters: Choose hyphens or underscores consistently (e.g.,
dept-engineeringfor department-based profiles orTEAM-dept-bufor multi-attribute combinations)Add prefixes to organize: Group profiles by category (e.g.,
dept-{department},loc-{location},TEAM-{dept}-{bu})Handle case sensitivity: Profile names are case-sensitive. Use transformers like
LOWERorUPPERin your expressions to normalize values, and document your chosen conventionDocument your convention: Ensure all teams follow the same naming pattern
Timing and Order
Create profiles before processing: Always create Access Profiles before running workflows that reference them
The system performs name lookups at runtime: If a profile doesn't exist, it will be skipped
Plan for new attribute values: When adding new departments, locations, or roles to your organization, remember to create their corresponding Access Profiles first to avoid provisioning gaps
Validation and Monitoring
Before deploying to production, validate your configuration using dry-run mode to confirm profiles resolve correctly and attribute values match profile names exactly. Monitor your Lifecycle Management logs for "Dynamic access profile not found" messages, which indicate naming mismatches or missing profiles.
Troubleshooting
Profile not found in Activity Log
Name mismatch or profile is PAUSED
Check Activity Log for the exact resolved name; verify profile exists and is in RUNNING state
Formatter fails to resolve
Missing attribute or incorrect path
Verify attribute exists on identity node; check secondary node paths exist
Wrong profile applied
Similar profile names
Use distinctive naming patterns; avoid profile names that are substrings of others
See Also
Access Profiles - Creating and managing Access Profiles
Manage Relationships Action - Configuring the Manage Relationships action
Attribute formatters - Available formatters and syntax
Lifecycle Management Policies - Policy configuration and workflows
Last updated
Was this helpful?
