How Organization-Scoped APIs Work
Organization-scoped API keys and SCIM endpoints enable enterprise-grade automation:Create organization-scoped API key
Authenticate with Basic Auth
- Username: Public key (starts with
pk-org-...) - Password: Secret key (starts with
sk-org-...)
Call organization management APIs
- Projects: Create, update, delete projects programmatically
- API Keys: Generate project-scoped API keys for applications
- Memberships: Assign users to organizations and projects with specific roles
- SCIM endpoints: Automate user lifecycle management
Integrate with identity providers
- Configure your IdP (Okta, Azure AD, Google Workspace) to use ABVâs SCIM endpoints
- Provide organization-scoped credentials for authentication
- Map IdP user attributes to ABV roles
- Enable automatic provisioning and deprovisioning
Organization Management API
Organization-scoped API keys enable programmatic administration of ABV projects and memberships.Available Endpoints
Project Management
Project Management
- Infrastructure-as-code: Provision projects for new teams or environments
- Multi-tenant deployments: Create customer-specific projects programmatically
- Environment management: Automate creation of staging/production projects
API Key Management
API Key Management
- CI/CD automation: Generate API keys for deployment pipelines
- Key rotation: Programmatically rotate project keys on schedule
- Customer onboarding: Create API keys for new multi-tenant customers
Membership Management
Membership Management
- Bulk role assignments: Update roles for multiple users at once
- Team reorganizations: Reassign project memberships when teams change
- Access audits: Programmatically review and adjust access levels
Example: Programmatically Create a Project
Example: Assign User to Project with Role
OWNER, ADMIN, MEMBER, VIEWER, NONE
Learn more about roles â
SCIM 2.0 User Provisioning
ABV implements SCIM 2.0 (System for Cross-domain Identity Management) for automated user lifecycle management.SCIM Base URL
All SCIM endpoints use this base URL:Authentication
SCIM endpoints use HTTP Basic Authentication with organization-scoped API keys:- Username: Organization public key (
pk-org-...) - Password: Organization secret key (
sk-org-...)
SCIM Endpoints
Service Provider Configuration
Service Provider Configuration
GET /ServiceProviderConfigReturns SCIM service capabilities and configuration (supported operations, authentication schemes, bulk operations support).Use case: IdP autodiscoveryâidentity providers query this endpoint to determine ABVâs SCIM capabilities.Resource Types
Resource Types
GET /ResourceTypesReturns supported SCIM resource types (User, Group, etc.).Use case: IdP configurationâidentity providers determine which resources ABV supports provisioning.Schemas
Schemas
GET /SchemasReturns SCIM schema definitions for User resources, including supported attributes.Use case: Attribute mappingâidentity providers map their user attributes to ABVâs schema.User Provisioning
User Provisioning
NONE by default.Get user:SCIM User Lifecycle
The following diagram shows how user provisioning flows from your identity provider to ABV:User created in identity provider
NONE.Role assignment
User attributes updated
User deactivated or removed
Okta Integration Guide
Okta is a popular enterprise identity provider. This guide covers setting up both authentication (SSO) and user provisioning (SCIM).Okta Authentication (SSO via OIDC)
ABV supports OpenID Connect (OIDC) for Single Sign-On through Okta.Create Okta OIDC application
- Log in to your Okta admin console
- Navigate to Applications > Create App Integration
- Choose OIDC - OpenID Connect as the sign-in method and click Next
- Choose Web Application as the application type and click Next
Configure application settings
- App name:
ABV - Login redirect URIs:
https://your-abv-domain.dev/api/auth/callback/okta- US region:
https://app.abv.dev/api/auth/callback/okta - EU region:
https://eu.app.abv.dev/api/auth/callback/okta
- US region:
- Logout redirect URIs:
https://your-abv-domain.dev/- US region:
https://app.abv.dev/ - EU region:
https://eu.app.abv.dev/
- US region:
Contact ABV support for SSO configuration
- Okta application Client ID
- Okta application Client Secret
- Your Okta domain (e.g.,
company.okta.com)
Test SSO login
- Assign users to your Okta ABV application
- Navigate to ABVâs login page
- Enter your email address
- Youâll be automatically redirected to Okta for authentication
- After successful Okta login, youâre redirected back to ABV logged in
Okta User Provisioning (SCIM)
Automate user lifecycle management by syncing Okta users to ABV.Create Okta SAML/SCIM application
- Log in to your Okta admin console
- Navigate to Applications > Create App Integration
- Choose SAML 2.0 as the sign-in method and click Next
Configure SAML settings
- App name:
ABV SCIM - Single sign-on URL:
https://your-abv-domain.dev/api/auth/callback/okta - Audience URI:
abv
Enable SCIM provisioning
- In the General tab, set Provisioning to
SCIM - Navigate to the Provisioning tab
- Click Edit for the SCIM Connection
Configure SCIM connection
- SCIM connector base URL:
https://your-abv-domain.dev/api/public/scim- US region:
https://app.abv.dev/api/public/scim - EU region:
https://eu.app.abv.dev/api/public/scim
- US region:
- Unique identifier field for users:
userName - Supported provisioning actions: Check all three:
Import new Users and Profile UpdatesPush New UsersPush Profile Updates
- Basic Auth - Username: Organization public key from ABV (starts with
pk-org-...) - Basic Auth - Password: Organization secret key from ABV (starts with
sk-org-...)
- Navigate to Organization Settings > API Keys in ABV
- Click Create new organization API key
- Copy the public and secret keys
Enable provisioning features
- Create Users
- Update User Attributes
- Deactivate Users
Configure default user roles (optional)
- Navigate to Provisioning tab > Profile Editor
- Click Add Attribute:
- Data type:
string array - Display Name:
ABV Roles - Variable Name:
roles - External Name:
roles - External Namespace:
urn:ietf:params:scim:schemas:core:2.0:User - Attribute members:
NONE,VIEWER,MEMBER,ADMIN - Attribute type:
Personal
- Data type:
- Click Save
- In Provisioning tab > Attribute Mappings, set the default value for
rolesattribute to your desired default (e.g.,MEMBER)
Assign users to the application
- Navigate to the Assignments tab
- Click Assign > Assign to People
- Select users to provision to ABV
- Optionally override roles per user (if role attribute is configured)
- Click Done and then Save
Verify provisioning
- In ABV, navigate to Organization Settings > Members
- Confirm Okta-provisioned users appear with correct roles
- Test login with a provisioned user (they should SSO through Okta if both SSO and SCIM are configured)
Security Best Practices
Protect Organization-Scoped Keys
Protect Organization-Scoped Keys
- Storage: Use secrets management systems (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault)
- Access control: Limit who can create or view organization keys (Owners only)
- Rotation: Rotate organization keys quarterly or after suspected compromise
- Audit: Monitor usage of organization keys through audit logs
Use Least-Privilege Principle
Use Least-Privilege Principle
- Application tracing: Project-scoped key (write traces to one project)
- Customer API key generation: Organization-scoped key (create keys across projects)
- User provisioning: Organization-scoped key (SCIM requires org-level access)
- Project management: Organization-scoped key (create/delete projects)
Monitor SCIM Provisioning Logs
Monitor SCIM Provisioning Logs
- ABV audit logs: Track user creation, role changes, and membership modifications
- IdP provisioning logs: Verify successful synchronization and catch errors
- Anomaly detection: Unexpected user creations, bulk role changes, or provisioning failures
Test in Non-Production First
Test in Non-Production First
- Create a test ABV organization
- Configure SCIM provisioning to the test organization
- Provision test users and verify role mappings work correctly
- Test deprovisioning (user removal)
- Verify audit logs capture all operations
- Only then configure production provisioning
Implement SSO and SCIM Together
Implement SSO and SCIM Together
- Centralized authentication
- Enforce MFA policies
- Immediate login revocation on offboarding
- Automated user lifecycle
- Consistent role assignments
- No manual user management
Troubleshooting
SCIM Authentication Fails
SCIM Authentication Fails
- Incorrect API keys: Wrong public or secret key
- Wrong key type: Using project-scoped key instead of organization-scoped key
- Revoked keys: Keys were deleted or expired
- Incorrect base URL: Typo in SCIM connector base URL
- Verify youâre using organization-scoped keys (
pk-org-...andsk-org-...) - Confirm keys are active in Organization Settings > API Keys
- Check SCIM base URL matches ABV region (US: app.abv.dev, EU: eu.app.abv.dev)
- Regenerate organization keys if uncertain about validity
Users Not Provisioning from IdP
Users Not Provisioning from IdP
- Provisioning not enabled: IdP provisioning features not activated
- Attribute mapping errors: Required fields missing or incorrectly mapped
- SCIM connectivity issues: IdP canât reach ABVâs SCIM endpoints
- Role mapping misconfiguration: Users created but with NONE role (invisible in some views)
- Check IdP provisioning logs for specific error messages
- Verify âCreate Usersâ is enabled in IdP provisioning settings
- Test SCIM connectivity with curl using organization credentials
- Check ABV Organization Settings > Members for users with NONE role
- Review attribute mappings (email/userName are required)
SSO Redirect Loop or Errors
SSO Redirect Loop or Errors
- Incorrect redirect URIs: Mismatch between IdP configuration and ABVâs callback URL
- SSO not configured in ABV: Support hasnât enabled SSO for your organization yet
- Client ID/Secret mismatch: IdP application credentials donât match ABV configuration
- Domain mismatch: Using wrong ABV region (US vs EU)
- Verify redirect URIs match exactly (including https://)
- Confirm ABV support has configured SSO (contact [email protected])
- Double-check Client ID and Secret were provided to ABV support correctly
- Ensure users access the correct ABV region (app.abv.dev or eu.app.abv.dev)
Organization API Returns 403 Forbidden
Organization API Returns 403 Forbidden
- Wrong key scope: Using project-scoped key for organization endpoints
- Insufficient permissions: Organization key belongs to user without required role
- Endpoint requires organization key: Endpoint explicitly requires organization scope
- Verify youâre using organization-scoped key (
pk-org-...) - Check that the user who created the organization key has Owner or Admin role
- Review API documentation for endpointâs required permissions