Cezanne HR logoMicrosoft Entra ID logo

Identity and access management

Cezanne HR to Entra ID integration: Microsoft account and SAML sign-in ready in one go

With an integration between Cezanne HR and Microsoft Entra ID, a new employee from Cezanne HR gets a Microsoft account with job title, department, location and company, and the account is blocked after the end of the employment in Cezanne. Cezanne only has an app in Entra ID for signing in through SAML, and Microsoft calls creating users for it manual work; KoppelHet creates the account and sets the SAML identifier in Cezanne through the API.

What the integration does

Organisations with Cezanne HR and Microsoft 365 often let employees sign in to Cezanne through Entra ID. IT then has to create the Microsoft account and add a SAML identifier per person in Cezanne, and with a new colleague that easily goes wrong once.

  1. HR records the person and the employment in Cezanne, with job, org unit and location.
  2. KoppelHet also reads people who have not joined yet and creates the Microsoft account before the start date.
  3. KoppelHet adds the SAML identifier with the new address in Cezanne, so signing in works on day one.
  4. Changes in job, org unit or location take effect on their effective date.
  5. After the end of the employment KoppelHet blocks the account.
Cezanne HR → KoppelHet → Microsoft Entra IDSOURCECezanne HRTARGETMicrosoft Entra IDKoppelHetmapping · logging · monitoringCezanne HR → KoppelHet → Microsoft Entra IDSOURCECezanne HRTARGETMicrosoft Entra IDKoppelHetmapping · logging · monitoring
Out: Microsoft account per employee · Job title, department, location and company · SAML identifier in Cezanne for sign-in · Account ready before the start date · Blocking after the end of employment

What to watch for with Cezanne HR and Microsoft Entra ID

  • Cezanne is in the Entra gallery for SAML sign-in only, with one instance per tenant. Microsoft writes that users for this app are created by hand in Cezanne, with a SAML identifier per person equal to the email address. KoppelHet fills that identifier through the API as soon as the Microsoft account exists.
  • In the SAML settings Cezanne uses the email address as the user ID. The address KoppelHet creates as userPrincipalName and mail is therefore also the value Cezanne expects at sign-in.
  • A request for all people in Cezanne also returns leavers and people who have yet to start; the filter on active employees leaves out the latter. KoppelHet therefore reads all people and looks at the start date, so a new colleague has an account a week in advance.
  • Job, org unit and location are stored in Cezanne in separate tables with an effective date. KoppelHet changes jobTitle, department and officeLocation on that date, not at the moment HR enters a future change.
  • An ongoing employment has 31 December 2999 as its end date in Cezanne. KoppelHet treats that date as empty, so no leave date far in the future ends up on the Microsoft account.
  • Webhooks are only included in Cezanne's People PLUS+ package. With that package KoppelHet responds to the notification; without it KoppelHet reads the tables every hour and compares them with the previous state.
  • The API sees exactly what the user behind the token may see in Cezanne. The integration user only gets rights on person, employment and SAML identifiers, not on salary or bank details.

This integration is also part of joiner, mover, leaver.

How we build and run it

  • The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
  • Every sync and every error is visible in the functional log; on an error your administrator is notified.
  • A change that cannot go through is not half-applied but queued for another attempt.
  • KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
  • After go-live we manage the integration and adjust it when your process changes.
  • The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.

Implementation, architecture and compliance

Implementation and price

This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.

A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.

Price indication · Basic

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

Frequently asked questions

Do we need People PLUS+?

No. Without webhooks the integration also works, with a run every hour.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Cezanne HR API v2 (OData, dataservice.svc, JSON) with OAuth 2.0; API access through Cezanne's Customer Success contact. Tables People (also leavers and future joiners; filter ActiveEmployee), PeopleToEmploymentCurrentPrimary, Employments (CompanyCode, TerminationDate), JobDeployments, OrgUnitPositionDeployments, LocationDeployments and SAMLIdentifiers. Webhooks with People PLUS+.
  • To Entra ID through API-driven inbound provisioning (/bulkUpload with SCIM, requires Entra ID P1 or higher) or Microsoft Graph (user with employeeId, userPrincipalName, mail, jobTitle, department, officeLocation, companyName, usageLocation, employeeHireDate, employeeLeaveDateTime and accountEnabled).

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in Cezanne HRField in Microsoft Entra IDNotes
PersonCodeemployeeIdAt most 16 characters
FirstName en FamilyNamegivenName, surname en displayName
NaamgevingsregeluserPrincipalName en mail
JobDeploymentsjobTitle
OrgUnitPositionDeploymentsdepartment
LocationDeploymentsofficeLocation en usageLocation
CompanyCode (primaire employment)companyName
TerminationDateemployeeLeaveDateTime en accountEnabled = false
userPrincipalName (Entra ID)SAMLIdentifiers (Cezanne)

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.