Important
This repository contains the connector and configuration code only. The implementer is responsible to acquire the connection details such as username, password, certificate, etc. You might even need to sign a contract or agreement with the supplier before implementing this connector. Please contact the client's application manager to coordinate the connector requirements.
- HelloID-Conn-Prov-Target-Esis-Employee
HelloID-Conn-Prov-Target-Esis-Employee is a target connector. Esis-Employee provides a set of REST API's that allow you to programmatically interact with its data.
The following features are available:
Feature | Supported | Actions | Remarks |
---|---|---|---|
Account Lifecycle | ✅ | Create, Update, Link and unlink SsoIdentifier | |
Permissions | ✅ | SubPermissions (All-in-One) | Dynamic |
Resources | ❌ | - | |
Entitlement Import: Accounts | ✅ | - | |
Entitlement Import: Permissions | ❌ | - | No retrieve possibility |
Governance Reconciliation Resolutions | ✅ | Accounts |
- A Brin6 code from HR or in HelloId is required to use the connector. Preferable in a Custom property or a code from HR.
- A mapping available between HR function Title and Esis Role (Leraar, Director, etc..)
The following settings are required to connect to the API.
Setting | Description | Mandatory |
---|---|---|
BaseUrl | The URL to the API | Yes |
BaseUrlToken | The url to send te request for a token | Yes |
ClientId | The ClientId to connect to the API | Yes |
ClientSecret | The ClientSecret to connect to the API | Yes |
XVendorCode | The Vendor Code to connect to the API | Yes |
XVerificatieCode | The Verification Code to connect to the API | Yes |
CompanyNumber | The company number to connect to the API | Yes |
The correlation configuration is used to specify which properties will be used to match an existing account within Esis-Employee to a person in HelloID.
Setting | Value |
---|---|
Enable correlation | True |
Person correlation field | Accounts.MicrosoftActiveDirectory.mail |
Account correlation field | EmailAdres |
Important
Employee correlation and SubPermission are hardcoded in the Connector! For more information see HardcodedMapping
Tip
For more information on correlation, please refer to our correlation documentation pages.
The field mapping can be imported by using the fieldMapping.json file.
Besides the configuration tab, you can also configure script variables.
# Function Mapping for when no mapping is found
$defaultFunction = 'Leraar'
# This is used to locate the department and function from the HelloID contract
$mappingHashTableFunctions = @{
MEDSBI = 'Director'
MEDSBI2 = 'Director'
MEDSBI3 = 'Support'
}
#Script Configuration
$brin6LookupKey = { $_.Department.ExternalId }
$functionLookupKey = { $_.Title.ExternalId }
# Primary Contract Calculation foreach employment
$firstProperty = @{ Expression = { $_.Details.Fte } ; Descending = $true }
$secondProperty = @{ Expression = { $_.Details.HoursPerWeek }; Descending = $false }
# Priority Calculation Order (High priority -> Low priority)
$splatSortObject = @{
Property = @(
$firstProperty,
$secondProperty)
}
The account reference is populated with the property EmailAdres
property from Esis-Employee
The connector is designed to support both customers with and without SSO. This can be managed in the field mapping by adding or removing specific properties — they cannot be mapped together.
- The
Password
property triggers Esis to generate and send a password to the user's email address during account creation. - The properties
SsoIdentifier
andPreferredClaimType
are used for SSO.
The webservice does not support verifying if the SSO identifier is linked or not therefore it is not updated in the update script.
- The webservice does not support looking up a single person. The script can be a bit slower because it needs to loop through every person
- The webservice is event based, because of this there is some retry logic in the script you change how often it retries and how long it has to wait before retrying again with the variables
$MaxRetryCount
and$RetryWaitDuration.
The disable and enable scripts are not used. And the activation of the department is managed with dynamic Permissions. This is because it's possible to activate persons in multiple departments. The activation is automatically calculated based on unique brin6 in contracts in scope.
The API does not return a account Identifier, so the emailAdres
is used as Account reference, so when this reference is required to update, this should be implemented in the Update script, like:
if ($actionContext.Data.EmailAdres -ne $actionContext.PreviousData.EmailAdres) {
$outputContext.AccountReference = $actionContext.Data.EmailAdres
Write-Information "AccountReference is updated to: [$($outputContext.AccountReference)]"
}
Activation on a department also requires a Function Role. The mapping for the function roles can be configured in the grant script. (See subPermissions.ps1)
One on one relation: Esis does have User and Employee Account, with a one on one relation. When a user account is created via the API the Employee account is automatic created. Existing Employee: When the employee already exists the account will be created for the existing employee.
The employee account correlation is performed on basispoortEmailadres
or Emailadres
this can be a different property than the user account, and this field cannot be managed in HelloID so it's hardcoded in the create script. When this does not fit the customer please change this in the code within the correlation code block.
$correlatedAccountEmployee = $users.GebruikersLijst.Medewerkers | Where-Object { $_.Emailadres -eq $correlationValue }
The Body to create or update the account is hardcoded in the script, to make sure only the right property are sent to the Webservice. Keep this in mind while adding fields to the fieldMapping.
The following endpoints are used by the connector
Endpoint | Description |
---|---|
/v1/api/bestuur/:companyNumber/gebruikermedewerkerlijstverzoek | Retrieve user information Request |
/v1/api/bestuur/:companyNumber/gebruikermedewerkerlijst/:correlationId | Retrieve user information Result |
/v1/api/bestuur/:companyNumber/verzoekresultaat/:correlationId | Retrieve action Result |
/v1/api/bestuur/gebruiker/:username/koppelenssoidentifier | Link User to SsoIdentifier Request |
/v1/api/bestuur/gebruiker/:username/ontkoppelenssoidentifier | UnLink User from SsoIdentifier Request |
/v1/api/bestuur/gebruiker/:username/activerenopvestiging | Enable user on Department Request |
/v1/api/bestuur/gebruiker/:username/deactiverenopvestiging | Disable user from Department Request |
Tip
For more information on how to configure a HelloID PowerShell connector, please refer to our documentation pages.
Tip
If you need help, feel free to ask questions on our forum.
The official HelloID documentation can be found at: https://docs.helloid.com/