Quick Start
Step-by-step tutorial demonstrating the complete Access AuthZ workflow
This tutorial demonstrates the core Access Request API workflow through a practical SCIM integration example. You will:
Integrate Veza with a target system using SCIM-compliant APIs
Call Veza APIs to trigger granting or removal of entitlements (in this case, SCIM groups) to SCIM Users
Create users and modify attributes for existing users
You will also use APIs to configure system settings, get integration capabilities, and monitor request status.
This covers the standard workflow from initial configuration through user creation and group management:
Veza Environment Setup: Enable Access Requests and configure auto-approval
Lifecycle Management Configuration: Enable provisioning on an existing integration
User Creation: Use an Access Request and sync identities configuration to create accounts
Target Discovery: Query the Access Graph to find groups for assignment
Relationship Management: Assign users to groups via Direct API
Status Monitoring: Track request progress and completion
This guide demonstrates the complete workflow. For additional patterns and troubleshooting, see the FAQ and the endpoint documentation:
CreateAccessRequest - Grant or revoke access
GetAccessRequest - Check request status
CreatePolicyIdentityAccessRequest - Policy-based provisioning
Prerequisites
Before starting, complete the Prerequisites and Setup guide.
Step 1: Identity the LCM datasource
List available LCM datasources:
Look for your integration in the response:
Save the id field for future requests.
Step 2: Create a user account
Create a new user account with the selected attributes using a direct Access Request:
Expected Response:
Save the request id to monitor progress.
Step 3: Monitor request status
Check if your user creation has completed:
When the job is successful, you will see:
Possible states:
INITIAL- Request has been createdWAITING_FOR_APPROVAL- Request awaiting approvalNEEDS_MORE_INFORMATION- Approver requested more informationPLAN_SELECTED- Request is processingCOMPLETED- Request completed successfullyERRORED- Checkerror_messagefield for detailsREJECTED- Request was rejectedCANCELED- Request was canceledJIT_REVOKED- Just-in-time access was revokedEXTERNAL_RUNNING- External system is processing request
Step 4: Find available groups
To assign users to groups, you need to discover which groups exist in your target system and obtain their Veza entity IDs. Use the Query Builder API to find available groups:
Example response:
The id field is the Veza entity ID you'll use as the target_entity_ids in the next step.
Step 5: Assign user to group
Add your user to a group using the direct Access Request API:
Expected Response:
Monitor this request using the same method as Step 3.
Step 6: Remove user from group (Optional)
To finish testing the grant/revoke cycle, you can remove the user from the group:
Expected Response:
After the request completes (state: "COMPLETED"), verify in your SCIM server that the user has been removed from the group's members array.
Verification
Check the target application
Veza's Access Graph will not refresh until the next scheduled extraction, or you manually trigger an extraction. You can trigger an extraction in Veza by opening the integration details and clicking Start Extraction on the Data Sources tab.
In this example, we query the SCIM server to confirm the changes.
Verify the changes were made in your target system:
Look for the user in the response:
Verify the user attributes match the request:
userNameshould match yourdestination_value_formatterforuser_namedisplayNameshould match yourdestination_value_formatterfordisplay_nameemailsshould contain your specified email addressactive: trueconfirms the user is enabled
Check group members for assigned users:
The response should show:
The
membersarray contains an entry with your user's IDdisplaymatches your user's display nameThe
lastModifiedtimestamp shows recent changes (after your API call)$refprovides the direct link to the SCIM user resource
Troubleshooting:
If verification fails, check the Access Request state for errors
Unexpected attributes can indicate issues with
entity_attribute_transformersvaluesEmpty members arrays indicate that a group assignment has failed
lastModifiedtimestamp can indicate when an operation may not yet be complete
Check request history
List all your access requests to see the complete history:
You have now completed the Access Request API example workflow!
Next steps
See the endpoint documentation for complete API details:
CreateAccessRequest - Grant or revoke access
GetAccessRequest - Check request status
CreatePolicyIdentityAccessRequest - Policy-based provisioning
Review the FAQ for common questions and additional examples
Check Prerequisites and Setup for production deployment guidance
Last updated
Was this helpful?
