How can we help? 👋

How to map user attributes and groups for SSO

Which user attributes and group values CheckHub needs from your identity provider

When someone logs in through SSO, your identity provider sends CheckHub a short description of that user. This article explains what we need in it, and how to configure it in your provider.

This applies whichever identity provider you use, so read it alongside your provider's setup article.

The user attributes

CheckHub builds each user's profile from these attributes. The names must match exactly, capital letters included.

Attribute
Required
What it holds
email
Yes
The user's email address — this is how we recognize the user
firstName
Yes
Given name
lastName
Yes
Surname
phone
No
Mobile or contact number
language
No
Interface language: enfrnlde or it

language is only applied when the account is created at the user's very first login. After that the user chooses their own language in CheckHub and your provider won't overwrite it. If you don't send it, new users get your company's default language.

In Microsoft Entra ID, go to Single sign-on > Attributes & Claims > Edit and map user.mail to emailuser.givenname to firstNameuser.surname to lastName and user.mobilephone to phone. Clear the Namespace field on each one — the claim must be named email, not http://schemas.xmlsoap.org/.../emailaddress.

⚠️

Use user.mail, not user.userprincipalname. In many tenants the User Principal Name isn't the user's real email address — it can look like jdoe@example.onmicrosoft.com — and CheckHub recognizes people by their email. Only use the UPN if you've checked that it matches the email address for everyone.

Notion image

In Google Workspace, on the Attribute mapping screen, use the Attributes section at the top. Map Basic Information > Primary email to email, First name to firstName, Last name to lastName and Phone > Phone number to phone. Use ADD MAPPING to add a row.

Notion image

The groups claim

Groups decide what a user can do inside CheckHub. Your provider must send a claim named groups containing the user's groups, and we apply a simple rule:

  • If at least one group matches a CheckHub group, the user logs in and joins every group that matched.
  • If nothing matches, the user is refused and sent back to the login page.

Group membership is synchronized at every login, not just added to. If you remove someone from a group in your directory, they are removed from the matching CheckHub group the next time they log in. Your directory stays the single source of truth.

⚠️

This means group mapping isn't optional. Someone with a perfectly valid account and no matching group simply can't log in.

Getting your groups to match

You don't need us for this. Your groups belong to your company, so you can set this up yourself.

In CheckHub, go to Settings > Groups, open a group, and look at the Group settings tab. Two fields are used for matching:

  • External ID — a free text field, described as External identifier for SSO integration. This is the one built for the job.
  • Name — the group's name in CheckHub.

A group matches if either field is identical to a value in the groups claim. We recommend using External ID: it accepts whatever your provider happens to send, so you can keep your CheckHub group names readable for your team.

Notion image

In your SAML app, go to Attributes & Claims > Add a group claim, choose Groups assigned to the application, and name the claim groups.

⚠️

With this option Entra sends only the groups assigned to the application. If you assigned individual users instead, the claim arrives empty and nobody can log in — with no error message on screen. Open Users and groups in the application and assign the groups themselves.

Entra ID sends group Object IDs by default, not names — you'll see 8f4a1c2e-... rather than Recruiters. So:

  1. In Entra ID, go to Groups > All groups and copy the Object Id of each group you're sending. This is the value CheckHub expects.
  1. In CheckHub, open the group it corresponds to and paste that value into External ID.
Notion image

If you'd rather send names, set Source attribute on the group claim to the cloud group display names (or sAMAccountName for groups synced from on-premises Active Directory), and put that name in External ID instead.

On the same Attribute mapping screen, scroll to the Group membership (optional) section below. Add the groups to send under Google groups, and set the App attribute to groups.

Google sends group names — there are no group IDs to use here. Put the Google group name in the External ID field of the matching CheckHub group.

Notion image

Keeping it up to date

If you rename a group in your directory, or start sending a different set of groups, update the External ID of the matching CheckHub group at the same time. A group that no longer matches will lock its members out at their next login.

Want to know more?

Did this answer your question?
😞
😐
🤩