Skip to main content

Customer and User Provisioning

This page covers core customer and user lifecycle requests. Service assignment uses a larger contract documented in Custom service provisioning.

Event rule sets

Choose a customer or user event and then the required phase:

ObjectProvision phasesDeprovision phases
CustomerPreProvision, Provision, PostProvisionPreDeprovision, Deprovision, PostDeprovision
UserPreProvision, Provision, PostProvisionPreDeprovision, Deprovision, PostDeprovision

Each phase has Before, Main, and After rule sets. For example, a customer rule that must run after the standard provision action belongs under:

Event$Customer$After Provision

For a user:

Event$User$After Provision

Customer properties

The following properties are populated by the base customer request formatter. They are the customer values also inherited by customer-service and user-service requests.

PropertyShapeDescription
CustomerIDIntegerAtria customer database identifier.
CustomerShortNameStringCustomer short name.
CustomerLongNameStringCustomer full/display name.
CustomerPathStringCustomer OU path.
CustomerContactStringCustomer contact name.
CustomerContactEmailStringCustomer contact email address.
CustomerObjectIDIntegerProvisioning object identifier used for status tracking.
PrimaryDomainStringCustomer primary domain.
CustomerOUNameStringCalculated customer OU name.
CustomerGroupsOUStringConfigured container for customer groups.
UniquePrimaryDomainBooleanWhether the primary domain must be unique.
CustomerKeyStringValue of the configured customer key property.
CustomerKeyAttributeStringDirectory attribute used as the customer key.
CustomerRolesAttributeStringDirectory attribute used for customer role data.
isHMCResellerBooleanWhether the customer is an HMC reseller.
isPrepayBooleanWhether the customer is prepaid.
isDemoBooleanWhether the customer is a demo customer.
isHEMBooleanHosted Exchange mode flag; the base formatter sets this to False.
RequestedByUserIDIntegerRequesting Atria user ID when a logged-in user exists.
RequestedByStringRequesting user's UPN, or Anonymous when no logged-in user exists.
ImpersonatedByStringImpersonating user's UPN; present only during impersonation.

The core customer provision/update request also adds these values. CustomerDomains is added to the core customer main request for both provision and deprovision; the remaining values below are provision/update additions and should not be assumed on deprovision or service requests.

PropertyShapeDescription
CustomerDomainsString arrayCustomer domains.
CustomerRolesString arrayCustomer role directory groups.
isRemoteUsersEnabledBooleanWhether remote linked users are enabled.
CustomerPropertiesHashtableCustomer Active Directory properties.
CustomerLevelIntegerCustomer hierarchy level.
ResellerCustomerIDIntegerParent reseller customer ID; present when CustomerLevel is greater than 1.
ProxyServicePropertiesHashtableEffective Proxy service properties.

Customer example

Condition:

{CustomerLevel} > 1 AndAlso {ResellerCustomerID} > 0

PowerShell action script:

Import-Module Atria.Tools
Set-AtriaConfig -ConfigKey 'Provisioning_Customer_{CustomerID}' -ConfigValue $true -UseEnvironment

User properties

The base user request formatter includes the base customer properties above and then adds:

PropertyShapeDescription
UserIDIntegerAtria user database identifier.
UsernameStringUser sAMAccountName.
UserfullnameStringUser full/display name. The property name uses a lowercase f for compatibility.
UserEmailStringPrimary SMTP address, falling back to the UPN.
UserExternalEmailStringExternal/recovery email address.
UserObjectIDIntegerProvisioning object identifier for the user.
IsX500EnabledBooleanWhether X500 support is enabled for the customer.
UserDBPropertiesHashtableUser properties stored in Atria plus provisioning add-on values.
EmailAddressesString arrayUser SMTP addresses.
SystemDomainStringCustomer system domain.

The main core user provision and deprovision request formatter also adds:

PropertyShapeDescription
UserPropertiesHashtableUser Active Directory attributes.
SpecificPropertiesHashtableAtria user-specific properties. May contain protected values.
UserPathAttributesHashtableAttributes used to build the user OU path.
OrganisationalStructureStringEffective user organisational structure.
CustomerOrganisationalStructureStringCustomer organisational structure.
UserServicesString arrayNames of enabled user services.
UserConnectorsString arrayNames of provisioned connectors.
UserPathStringEffective user OU path.
WebServiceConnectionObjectDirectory web-service connection object. Pass only to compatible actions.

UserRoles is added to the core provision/update request. It is not part of the base delete request.

User examples

Read the first SMTP address:

{EmailAddresses}(0)

Read an Active Directory attribute from the user-property hashtable:

{UserProperties}("department")

Check that the user has a particular top-level value before running an action:

Not String.IsNullOrEmpty({UserEmail})

Provision versus deprovision

The same base identity values are used for provision and deprovision so removal rules can locate the external object. Values describing a newly selected package, new password, or updated role list may be absent or may reflect the stored pre-removal state.

Always test a deprovision rule with an actual journalled deprovision request. Do not copy a provision-only condition into a destructive removal rule without checking the property contract.