Schema Reference
The application schema is used to configure the objects returned from a connector.
Note
-
The Account Schema tab is used to define the attributes for each object type in the application being configured. The schema attributes can be defined as Entitlement or Multi-Valued. Refer to Managing Source Account Schemas for more information.
-
The schema attributes that are not present by default must be defined as strings if not specified.
The Salesforce connector uses the following default correlation and object configurations.
Default Account Schema
Each source supports a variety of details, or attributes, about each user who has an account, such as their name, email address, manager name, and location.
The set of account attributes each source stores and how they're organized is known as the account's schema. To best represent your data, you can configure sources to use an account schema matching the one you use in the external connector. Refer to Managing Source Account Schemas for more information.
Updating the Schema
For pre-existing sources, perform the following steps to start using new attributes with your source. Refer to the appropriate attribute section for detailed information about updating the schema.
- Use the createSchema API to create a new group schema for your source.
- Update the account schema with the following steps:
- Get the account schema using the getSchema API.
- Copy the schema to a file and search for the attribute corresponding to the group schema you created earlier.
- Add and update the properties for the attribute you found.
- Add the modified schema to the payload to update the account schema in the source using the replaceSchema API.
Default Account ID
SailPoint requires that certain attributes remain in your configuration. These attributes are referred to as account IDs.
Caution
Changing the attribute marked as the account ID after aggregating accounts can result in duplicate accounts being created. To avoid this, either reset the accounts on this source before editing the account ID attribute or edit the account ID attribute before aggregating accounts.
To resolve issues caused by changing account IDs, reconfigure them to their default values.
The following table lists the default account IDs for this connector:
| Account ID | Schema Object Type |
|---|---|
| Id | Account |
| Id | Group |
| Name | PermissionSet |
| Id | PermissionSetGroup |
| Id | Role |
| Id | PublicGroup |
| Id | PermissionSetLicense |
| Id | ManagedPackage |
Default Account Attributes
The Salesforce connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified.
Note
Only account attributes in the source schema are processed by the connector.
| Attribute Name | Description |
|---|---|
| UserName | The account user's display name, typically in an email type format. For example, denise.hunt@demoexample.com |
| Id | The internal Salesforce ID number for the account. The format is as follows: 005A00000014ySyIXX |
| Name | The user's full name |
| FirstName | The user's first name |
| LastName | The user's last name |
| Alias | The user's assigned alias |
| City | The user's city |
| CommunityNickname | Display Names for the user's online communities |
| CallCenterId | The user's call center |
| CompanyName | The user's company name |
| Country | The user's country |
| Department | The user's department |
| The user's Email address | |
| Division | The user's division |
| EmployeeNumber | The user's employee number |
| Extension | The user's telephone extension |
| Street | Name of the street |
| Fax | The user's fax number |
| IsActive | Indicates if the user account is active in Salesforce. When set to false, the user account is disabled |
| EmailEncodingKey | Encoding that should be used during email communications |
| ProfileId | ID of the profile assigned to a user. Profiles contain settings and permissions, which control what users can do. The available profiles depend on which user license is selected |
| ProfileName | Name of the profile assigned to a user. Profiles contain settings and permissions, which control what users can do. The available profiles depend on which user license is selected |
| Role | The role assigned to a user |
| PublicGroups | Public groups are the entitlements for a user |
| QueueNames | The queues assigned to the user |
| UserPermissionsMarketingUser | Maps to the Marketing user flag |
| UserPermissionsOfflineUser | Maps to the Offline user flag |
| Phone | The user's phone number |
| ReceivesAdminInfoEmails | Enable to receive the salesforce.com administrator newsletter |
| UserType | Type of the user. This field is read-only. |
| IsFrozen | The user's frozen status. |
| UserPermissionsSFContentUser | Maps to Sales Anywhere User |
| ReceivesInfoEmails | Enable to receive the salesforce.com newsletter |
| State | The user's state |
| Title | The user's title |
| ManagerId | The user's manager' ID |
| PermissionSet | The PermissionSet assigned to a user |
| ManagedPackage | The managed package assigned to a user |
| CollaborationGroup | The collaboration group ID assigned to a user |
| PermissionSetGroup | The PermissionSetGroup assigned to a user |
| PermissionSetLicense | The PermissionSetLicense assigned to a user |
| FederationIdentifier | A Federation ID is an identifier that is unique within a Salesforce Organization |
| UserPermissionsMobileUser | Maps to the Mobile user flag. This attribute isn't supported with Salesforce API version 59.0. |
| IsPortalEnabled | Enabled if the user is a Portal User. This field is read-only. |
| IsPartner | Enabled if the user is a Partner User. This field is read-only. |
| UserLicense | The user's license |
| TimeZoneSidKey | The user's timezone, it uses a display name defined by Salesforce. Only a few timezones are defined in the policy drop down and this will need to be customized for each deployment. Defaults to America/Los_Angeles. |
| LocaleSidKey | The user's locale. Defaults to UTF-8. |
| LanguageLocaleKey | The language locale key. There are several selections to choose from in from the web interface. The locale keys are customizable. Defaults to en_US. |
Note
The ProfileId and UserRoleId fields are required in the schema to aggregate the ProfileName and userRoleName respectively. If the ProfileId or UserRoleId is removed then profile name and user role name will not be fetched.
Additional Account Attributes for the Salesforce Connector
Note
The Salesforce connector supports provisioning custom attributes present on the user object.
-
(For attributes present on user object only) The Salesforce connector enables you to aggregate and update custom attributes present on user objects. The custom attributes added in the Salesforce user schema must have
__cappended to the attribute names created in Salesforce.For example, if you added
EMP_DEPARTMENTin the user entity on the Salesforce system, you should also addEMP_DEPARTMENT__cin the Salesforce user schema.Note
Custom attributes can also be updated.
-
Support for custom attributes not present in Salesforce system but are required internally in SailPoint, such as for a configured correlation rule can be acknowledged if the attribute is prepended with
_#. For example:_#Emp_company_history
Default Entitlement Attributes
Entitlement attributes define the entitlements, such as groups or roles, that can be assigned to the managed system's user accounts. Refer to Managing Entitlements for more information.
Caution
Changing the attribute marked as the Entitlement ID after aggregating accounts or entitlements can result in duplicate entitlements being created, or access profiles and roles breaking. To avoid this, edit the entitlement schema before performing any aggregations.
User and Group Object Modification
The Salesforce connector supports user object modification while enabling and disabling accounts. For enable or disable account operations, you can modify other attributes of the account that are part of the user object.
The connector supports multiple group objects and entitlements by having the group object schemas defined and aggregated. The following are the group object schemas:
PublicGroupsQueueNamesRole(includes the role hierarchy)PermissionSetPermissionSetGroupPermissionSetLicenseManagedPackageDelegateGroup
User and group object modification is supported by default in new Salesforce sources. You must add the objects manually for pre-existing sources.
Important
- You must manually add multi-group object schemas.
- You must remove the
UserRoleNameandUserRoleIdattributes and add an attribute namedRoleinto the account schema. - Adding the
Roleentitlement attribute into the account schema adds duplicate Role entitlements. This can be helpful if you can't remove theUserRoleNameattribute from the account schema.
Note the following when adding or modifying a group object:
- Use the API to create a new group schema.
- Use the POST method.
- Use the
beta/sources/<source-id>/schemasURI.
The following JSON payload example adds the schema for the PublicGroups group object:
{
"name": "PublicGroups",
"nativeObjectType": "PublicGroups",
"identityAttribute": "Id",
"displayAttribute": "Name",
"hierarchyAttribute": null,
"includePermissions": false,
"features": [],
"configuration": {},
"attributes": [
{
"name": "Id",
"type": "STRING",
"schema": null,
"description": "PublicGroups Id.",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "Name",
"type": "STRING",
"schema": null,
"description": "PublicGroups name.",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
}
]
}
The example adds the following schema for the PublicGroups group object:
<Schema displayAttribute="Name" identityAttribute="Id" nativeObjectType="PublicGroups" objectType="PublicGroups">
<AttributeDefinition name="Id" type="string">
<Description>PublicGroups Id.</Description>
</AttributeDefinition>
<AttributeDefinition name="Name" type="string">
<Description>PublicGroups name.</Description>
</AttributeDefinition>
</Schema>
Default Group Attributes
The Salesforce connector also supports groups. The following attributes must be configured on the managed system and in the SailPoint source schema to manage groups.
Profiles are aggregated during account-group aggregation. The following are the attributes returned by the group aggregation process.
| Attribute Name | Description |
|---|---|
| Id | The internal Salesforce ID for the group. For example: 00eA0000000OoP6IAK |
| Name | The friendly name assigned to the profile. For example, Force.com - Free User |
| UserType | This is the profile's type. |
| Description | The description for the profile. |
Default Role Attributes
When aggregating group attributes as role objects, the following attributes are returned by the role aggregation process:
| Attribute Name | Description |
|---|---|
| Id | The role's unique identifier. |
| Name | The role name. |
| CaseAccessForAccountOwner | The case access level for the account owner. |
| ContactAccessForAccountOwner | The contact access level for the account owner. |
| OpportunityAccessForAccountOwner | The opportunity access level for the account owner. |
| ParentRoleId | Unique identifier for the role's parent role. |
Aggregating group attributes as role objects enables the connector to delete a role associated with a user provisioning and assign a new role to a user during provisioning.
New sources support the Role object with bidirectional role hierarchy at one level by default. For an existing source, update the Role schema with the hierarchyAttribute set to ParentRoleId and the attributes listed in the table above to get support for the role hierarchy:
{
"hierarchyAttribute": "ParentRoleId",
"attributes": [
{
"name": "CaseAccessForAccountOwner",
"type": "STRING",
"schema": null,
"description": "The case access level for the account owner",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "ContactAccessForAccountOwner",
"type": "STRING",
"schema": null,
"description": "The contact access level for the account owner",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "OpportunityAccessForAccountOwner",
"type": "STRING",
"schema": null,
"description": "The opportunity access level for the account owner",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "ParentRoleId",
"type": "STRING",
"schema": null,
"description": "Unique identifier for role's parent role",
"isMulti": true,
"isEntitlement": false,
"isGroup": false
}
]
}
Then use the REST API for Entitlement Aggregation and add disableOptimization=true in the payload to trigger a full entitlement aggregation. For example:
https://{tenant}.api.identitynow.com/beta/entitlements/aggregate/sources/:id?disableOptimization=true
Default PublicGroup Attributes
When aggregating PublicGroup attributes as group objects, the following attributes are returned by the group aggregation process:
| Attribute Name | Description |
|---|---|
| Id | The Public Group's identifier. |
| Name | The Public Group's name. |
Aggregating PublicGroup as a group object enables the connector to verify aggregated Public Groups not currently associated with a user, and assign any new Public Group to users during provisioning.
Default PermissionSet Attributes
When aggregating PermissionSet attributes as group objects, the following attributes are returned by the group aggregation process:
| Attribute Name | Description |
|---|---|
| Id | The permission set's ID. This is an Account ID which must not be changed. |
| Name | The internal ID for this profile. |
| Label | The friendly name assigned to the profile. |
| Description | The description for the profiles. |
Aggregating PermissionSet as a group object enables the connector to verify aggregated PermissionSets not currently associated with a user, and assign any new PermissionSet to users during provisioning.
Default PermissionSetGroup Attributes
When aggregating PermissionSetGroup attributes as group objects, the following attributes are returned by the group aggregation process:
| Attribute Name | Description |
|---|---|
| Id | The permission set group's ID. This is an Account ID which must not be changed. |
| MasterLabel | The permission set group's name. |
| Description | A description of the permission set group. |
Aggregating PermissionSetGroup as a group object enables the connector to verify aggregated PermissionSetGroups not currently associated with a user, and assign any new PermissionSetGroup to users during provisioning.
Default PermissionSetLicense Attributes
When aggregating PermissionSetLicense attributes as group objects, the following attributes are returned by the group aggregation process:
| Attribute Name | Description |
|---|---|
| Id | The permission set license's ID. This is an Account ID which must not be changed. |
| MasterLabel | The permission set license's master label. |
Aggregating PermissionSetLicense as a group object enables the connector to verify aggregated PermissionSetLicenses not currently associated with a user, and assign any new PermissionSetLicense to users during provisioning.
Default ManagedPackage Attributes
While aggregating ManagedPackage attributes as group objects, the following attributes are returned by the group aggregation process:
| Attribute Name | Description |
|---|---|
| Id | The managed package's ID. |
| NamespacePrefix | The managed package's namespace prefix. |
Aggregating ManagedPackage as a group object enables the connector to verify aggregated managed packages not currently associated with a user, and assign any new managed package to users during provisioning.
Default CollaborationGroup Attributes
While aggregating CollaborationGroup attributes as group objects, the following attributes are returned by the group aggregation process:
| Attribute Name | Description |
|---|---|
| Id | Collaboration Group Id. |
| Name | Collaboration Group name. |
| CollaborationType | Collaboration Group Type. |
Aggregating CollaborationGroup as a group object enables the connector to verify aggregated collaboration groups not currently associated with a user, and assign any new collaboration group to users during provisioning.
For pre-existing sources, update the Account schema with a CollaborationGroup schema attribute to start managing Collaboration Groups in account aggregation, then add the schema above using the Create a new Schema on the Specified Source process. Refer to Updating the Schema for more information.
Add the following schema attribute to the account schema:
{
"name": "CollaborationGroup",
"type": "STRING",
"schema": {
"type": "CONNECTOR_SCHEMA",
"id": <Add the Schema ID for the Collaboration Group Object>,
"name": "CollaborationGroup"
},
"description": null,
"isMulti": true,
"isEntitlement": true,
"isGroup": true
}
Add the following JSON to create the group schema:
{
"name": "CollaborationGroup",
"nativeObjectType": "CollaborationGroup",
"identityAttribute": "Id",
"displayAttribute": "Name",
"hierarchyAttribute": null,
"includePermissions": false,
"features": [],
"configuration": {},
"attributes": [
{
"name": "Id",
"type": "STRING",
"schema": null,
"description": "Collaboration Group Id.",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "Name",
"type": "STRING",
"schema": null,
"description": "Collaboration Group name.",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "CollaborationType",
"type": "STRING",
"schema": null,
"description": "Collaboration Group Type.",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
}
]
}
Default DelegateGroup Attributes
The Salesforce connector supports the Salesforce DelegateGroup object.
| Attribute Name | Description |
|---|---|
| Id | The Delegate Group's unique identifier. |
| Name | The developer group's unique label. |
| DeveloperName | The unique developer name for the delegate group. |
| IsLoginAccessEnabled | Indicates if login access is enabled for the developer group. |
Aggregating DelegateGroup as a group object enables the connector to verify aggregated Delegate Groups not currently associated with a user, and assign any new Delegate Group to users during provisioning.
New sources have the DelegateGroup account schema attribute by default. For existing sources, add the following attribute to your account schema to manage DelegateGroup objects in account aggregation:
{
"name": "DelegateGroup",
"type": "STRING",
"schema": {
"type": "CONNECTOR_SCHEMA",
"id": <Add the Schema ID for the Delegate Group Object>,
"name": "DelegateGroup"
},
"description": "The ID of the Delegate Group assigned to the user",
"isMulti": true,
"isEntitlement": true,
"isGroup": true
}
To aggregate DelegateGroup as a group object, add the following JSON to the group schema via the IDN REST API to add the new schema to an existing source:
{
"name": "DelegateGroup",
"nativeObjectType": "DelegateGroup",
"identityAttribute": "Id",
"displayAttribute": "Name",
"hierarchyAttribute": null,
"includePermissions": false,
"features": [],
"configuration": {},
"attributes": [
{
"name": "Id",
"type": "STRING",
"schema": null,
"description": "The Delegate Group's unique identifier",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "Name",
"type": "STRING",
"schema": null,
"description": "The developer group's unique label",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "DeveloperName",
"type": "STRING",
"schema": null,
"description": "The unique developer name for the delegate group",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "IsLoginAccessEnabled",
"type": "BOOLEAN",
"schema": null,
"description": "Indicates if login access is enabled for the developer group",
"isMulti": false,
"isEntitlement": false,
"isGroup": false
}
]
}
Documentation Feedback
Feedback is provided as an informational resource only and does not form part of SailPoint’s official product documentation. SailPoint does not warrant or make any guarantees about the feedback (including without limitation as to its accuracy, relevance, or reliability). All feedback is subject to the terms set forth at https://developer.sailpoint.com/discuss/tos.