Skyline-ATS · For the customer's IT team

Connecting Microsoft Entra ID to a training portal

Everything needed to connect one Entra tenant to a Skyline-hosted training portal. Work through it once and it is done — the checks at the end exist because each one has previously cost a round trip on a comparable setup.

Applies to one Entra tenant Console Microsoft Entra admin centre Typical time 15 minutes
0 of 0 done

What this achieves

Learners open a training address, sign in with the Microsoft account they already use, and go straight into their course. We never see or store a password, and we hold no client secret — the connection is a public OpenID Connect client using PKCE.

  1. You register the application below.
  2. You send us two values: your tenant ID and the application (client) ID.
  3. We connect it and run an automated check against your tenant.
01

Register the application

Entra admin centre → Applications → App registrations → New registration

02

Add the redirect URIs under the right platform

The app → Authentication → Add a platform

Choose Single-page application. This is the setting that most often goes wrong, and it fails late — after the person has already typed their password.

Shape of the values — use the list we send, not these
  • https://<training-address>/auth/callback
03

Make sure we get an email address and a name

The app → Token configuration → Add optional claim

This is the step that has no equivalent elsewhere, and skipping it produces a learner list with neither names nor email addresses. Entra does not include an email claim by default. It appears only where the directory holds a mail attribute, or where you add it here as an optional claim.

04

Confirm the permissions

The app → API permissions

We request openid, email and profile. These are delegated Microsoft Graph permissions and are usually present on a new registration.

05

Sign-out URLs — usually nothing to do

The app → Authentication → Front-channel logout URL

Signing out of training clears the training session only and leaves the Microsoft session alone, so nothing is required here. Tell us if you would rather signing out of training also signed them out of Microsoft — be aware that affects every other Microsoft application they have open — and we will send an exact value.

06

Point your DNS at us

Your DNS provider · one CNAME per training address

Only needed if the training runs on your own domain. If we have given you an address ending in .learn.skyline-ats.dev, that is already live — skip this step.

One CNAME per address, all to the same target
  • academy.example.com   CNAME   connect.skyline-ats.dev

Send us these two values

That is everything we need. Neither is a secret.

ValueWhere to find itExample
Directory (tenant) IDThe app → Overview72f988bf-86f1-41af-91ab-2d7cd011db47
Application (client) IDThe app → Overview4a1b2c3d-5e6f-7890-abcd-ef1234567890

We build the issuer from your tenant ID as https://login.microsoftonline.com/<tenant-id>/v2.0 — there is nothing further for you to look up.

Why this usually takes a second attempt

These share a shape: the configuration looks complete, every obvious check passes, and something still fails when a real person tries to sign in.

01

No email claim, so the learner has no identity at all

Entra omits email unless the directory holds a mail attribute or it is added as an optional claim. Sign-in succeeds and the person appears in reports as nobody — no name, no address, nothing to match them to.

Step 3 is the fix, and it is the one step people skip because nothing warns them.

02

Redirect URI added under “Web” instead of “Single-page application”

Both platforms accept the same URL and the console shows no complaint. A Web platform expects a client secret, so the failure arrives at the token exchange — after the person has typed their password — and reads as a fault at our end.

03

Admin consent never granted

Where a tenant blocks user consent, every learner reaches a consent screen they cannot approve. It looks like an access problem with the training rather than a one-time approval nobody has given.

04

The v1 endpoint instead of v2.0

login.microsoftonline.com/<tenant> and the same address with /v2.0 are different issuers producing differently shaped tokens. Send us the tenant ID and we will build the right one — this only goes wrong when someone sends a hand-assembled issuer instead.