Skip to content

Tools4everBV/HelloID-Conn-Prov-Target-Pynter

Repository files navigation

HelloID-Conn-Prov-Target-Pynter

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.

Table of contents

Introduction

HelloID-Conn-Prov-Target-Pynter is a target connector. Pynter provides a set of SOAP APIs that allow you to programmatically interact with its data. These APIs use XML-based requests and responses, following the SOAP protocol for structured communication.

Getting started

Connection settings

The following settings are required to connect to the API.

Setting Description Mandatory
UserName The UserName to connect to the API Yes
Password The Password to connect to the API Yes
BaseUrl The URL to the API Yes

Correlation configuration

The correlation configuration is used to specify which properties will be used to match an existing account within Pynter to a person in HelloID.

Setting Value
Enable correlation True
Person correlation field ExternalId
Account correlation field ExternalIdentifier

Tip

For more information on correlation, please refer to our correlation documentation pages.

Available lifecycle actions

The following lifecycle actions are available:

Action Description
create.ps1 Creates a new account.
delete.ps1 Removes an existing account or entity.
disable.ps1 Disables an account, preventing access without permanent removal.
enable.ps1 Enables an account, granting access.
update.ps1 Updates the attributes of an account.
configuration.json Contains the connection settings and general configuration for the connector.
fieldMapping.json Defines mappings between person fields and target system person account fields.

Field mapping

The field mapping can be imported by using the fieldMapping.json file.

Remarks

Namespace

Currently the function New-PynterSoapXmlBody uses a default namespace which is set to: http://tempuri.org/. This value is usually reserved for development environemts only. For production environments, the value of the namespace might be subject to change. Make sure to verify and update this accordingly during the first implementation.

Dynamic SOAP envelope derived from fieldMapping

The New-PynterSoapXmlBody function is responsible for creating the SOAP envelope. It takes two parameters:

  • SOAPMethod – Defines the specific SOAP method being called.
  • Parameters – Contains the key-value pairs for the SOAP body, derived from actionContext.Data or the correlation configuration.

Since actionContext.Data dynamically provides the parameter names and values, this function allows full flexibility in constructing the SOAP envelope. You can easily extend actionContext.Data with additional fields, as long as the names match the expected SOAP method parameters.

Example SOAP envelope for GetPersonByExternalId

Consider the following PowerShell code:

$splatGetPersonByExternalIdXmlBody = @{
    SoapMethod = 'GetPersonByExternalId'
    Parameters = @{ externalId = '123456' }
}
New-PynterSoapXmlBody @splatGetPersonByExternalIdXmlBody

This will result in the following SOAP envelope:

<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
        <GetPersonByExternalId xmlns="http://tempuri.org/">
            <username>MyUserName</username>
            <password>MyPassword</password>
            <externalId>123456</externalId>
        </GetPersonByExternalId>
    </soap12:Body>
</soap12:Envelope>
  • username and password are automatically derived from actionContext.Configuration, ensuring authentication.
  • externalId is a dynamic input and specified in the -Parameters parameter.

Required fields when updating

The fields: FirstName, FamilyName, ExternalIdentifier, and Email must always be provided when updating an account (or performing operations like enabling, disabling, or deleting an account). The values send back are the ones that come from the $correlatedAccount' object.

Compare logic within the update lifecycle action

The update lifecycle action does contain our standard compare logic. However, contrary to the documentation, its worth to note that; even though properties are compared and changed properties are logged, ALL properties will be updated.

Development resources

SOAP methods

The following endpoints are used by the connector

SOAP method Documentation URI Lifecycle actions
GetPersonByExternalId Retrieve user information create,update,enable,disable,delete
CreatePerson Create user account create
UpdatePerson Update user account update,enable,disable,delete

Getting help

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.

HelloID docs

The official HelloID documentation can be found at: https://docs.helloid.com/

About

Pynter - Target

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •