Skip to content
← All field notes

Field Notes · Sheet 05 / 30 · Identity and federation

Movers keep everything

Joiners get provisioned and leavers get disabled, but movers keep their old access. Where it piles up, and what Entra ID can take away on its own.

Bradley Baker · · 3 min read

A schematic of access accumulating across three roles. Access from the first and second roles persists into the third role, shown hatched as access that should have been removed. A fix panel shows the source of authority chain from HR to Active Directory to Entra Connect to Entra ID, and a mover defined as a removal plus an add.
Sheet 05 / 30 · Drawn by Bradley BakerFull size

Joiners get provisioned. Leavers get disabled. Movers keep everything. Of the three identity lifecycle events, the move is the one that breaks least privilege without anyone noticing. This note looks at why, and at what Entra ID can take away on its own.

How access piles up

Someone transfers from finance to operations. Their new access is added the day they start. Their old access stays, because nobody filed a ticket to remove it and the old manager assumes IT will. Two or three moves later, that account can reach more than anyone in either department.

Microsoft's own definition of a mover expects the add: someone who moves between boundaries inside the organization, in a change that might require more access. The removal is the half that needs a decision.

Fix the attribute where it starts

I ran joiner, mover, and leaver workflows tied to HR inputs for a 4,300-user tenant, with dynamic groups keyed on HR attributes. If HR data lands in Active Directory and Entra Connect syncs it up, correct the department or job code there and let dynamic groups follow the attribute, instead of editing cloud groups by hand.

That works because of how dynamic membership is evaluated. When a user's attributes change, Entra checks every dynamic group rule in the directory. A user who now matches a rule is added, and a user who no longer matches is removed. Nobody can add or remove members of a dynamic group by hand, so a group built on a rule such as user.department -eq "Finance" stays equal to whoever HR says works in finance.

Dynamic groups need an Entra ID P1 license for each unique user in them, and they only cover access granted through those groups. Access granted any other way, such as a direct app assignment or a group someone manages by hand, still has to be removed.

Decide what a move takes away

Treat a transfer as a removal event as well as an add, and decide in advance what a move takes away. Lifecycle workflows can carry out that decision. The Employee job profile change template is a mover workflow that runs when a user attribute or a group membership changes, and its tasks include:

  • Send an email to tell the manager about the move.
  • Remove the user from selected groups and from selected Teams.
  • Remove all of the user's access package assignments, on a schedule that defaults to 15 days.
  • Request an access package assignment for the user.

Lifecycle workflows need a Microsoft Entra ID Governance or Entra Suite license, and a tenant can have up to 100 of them. The template doesn't know what a move from finance to operations should remove, though. That list has to come from the business.

Review anyway

Access reviews catch what the first two steps miss, and two of their decision helpers fit movers.

With the inactive-user helper on, a review shows each user's last sign-in and recommends Deny for anyone who hasn't signed in for 30 days. In a review of app assignments, the check uses the user's last activity in that app rather than in the whole tenant. That's the version that can catch a mover, who still signs in every day, just not to the old team's app. The sign-in date and the recommendation are set when the review starts and don't update while it runs.

The user-to-group affiliation helper looks at the reporting structure instead. A group member who sits far from the rest of the group in the org chart gets a Deny recommendation, which describes a mover still in the old department's group. It needs a Microsoft Entra ID Governance license, a manager attribute on each user, and a group of 600 users or fewer.

Either way, a recommendation isn't a removal. The reviewer still decides.

When someone changes departments in your organization, who removes the old access?

Sources

  1. What are lifecycle workflows?learn.microsoft.com
  2. Lifecycle Workflows templates and categorieslearn.microsoft.com
  3. Review recommendations for access reviewslearn.microsoft.com
  4. Manage rules for dynamic membership groups in Microsoft Entra IDlearn.microsoft.com
  • Entra ID
  • Identity governance
  • Lifecycle workflows
  • Access reviews
  • Dynamic groups
This note on LinkedIn

Recon log

Findings 0/46

0/16 behavior and secret eggs. Hardware finds depend on the machine you visit from.

Hardware details are read by your browser and stay there. When you find an egg, only its name is counted, with no identifier attached, and nothing is counted if Global Privacy Control or Do Not Track is on.

Display0/7

  • Undiscovered (not found yet)

    rare

    Hint: Visit on a very large display.

  • Undiscovered (not found yet)

    uncommon

    Hint: Some monitors are wider than others.

  • Undiscovered (not found yet)

    uncommon

    Hint: Two screens are better than one.

  • Undiscovered (not found yet)

    rare

    Hint: Turn a monitor on its side.

  • Undiscovered (not found yet)

    common

    Hint: Pixels per inch matter.

  • Undiscovered (not found yet)

    uncommon

    Hint: Faster than 60 frames a second.

  • Undiscovered (not found yet)

    common

    Hint: Colors beyond sRGB.

Hardware0/11

  • Undiscovered (not found yet)

    rare

    Hint: Bring a flagship graphics card.

  • Undiscovered (not found yet)

    legendary

    Hint: A GPU that lives in a rack.

  • Undiscovered (not found yet)

    common

    Hint: A Mac with Apple silicon.

  • Undiscovered (not found yet)

    rare

    Hint: A Windows machine built for heavy work.

  • Undiscovered (not found yet)

    rare

    Hint: A Mac built for heavy work.

  • Undiscovered (not found yet)

    rare

    Hint: Two dozen threads or more.

  • Undiscovered (not found yet)

    rare

    Hint: Windows, but not on x86.

  • Undiscovered (not found yet)

    uncommon

    Hint: The year of the Linux desktop.

  • Undiscovered (not found yet)

    uncommon

    Hint: A laptop that boots straight into a browser.

  • Undiscovered (not found yet)

    uncommon

    Hint: No graphics card at all.

  • Undiscovered (not found yet)

    common

    Hint: A laptop you can poke.

Environment0/11

  • Undiscovered (not found yet)

    uncommon

    Hint: Visit while your battery is nearly flat.

  • Undiscovered (not found yet)

    uncommon

    Hint: Your browser has a setting for saving data.

  • Undiscovered (not found yet)

    uncommon

    Hint: Visit very late at night.

  • Undiscovered (not found yet)

    common

    Hint: Visit on a day off.

  • Undiscovered (not found yet)

    uncommon

    Hint: A browser with a lion on it.

  • Undiscovered (not found yet)

    common

    Hint: A browser with a fox on it.

  • Undiscovered (not found yet)

    uncommon

    Hint: An accessibility setting that calms things down.

  • Undiscovered (not found yet)

    uncommon

    Hint: Tell websites not to track you.

  • Undiscovered (not found yet)

    rare

    Hint: Visit from the Lone Star State.

  • Undiscovered (not found yet)

    common

    Hint: A newer version of HTTP.

  • Undiscovered (not found yet)

    rare

    Hint: A very narrow window.

Behavior0/7

  • Undiscovered (not found yet)

    uncommon

    Hint: Drag the edge of your browser window around.

  • Undiscovered (not found yet)

    uncommon

    Hint: Reach the bottom of the page quickly.

  • Undiscovered (not found yet)

    uncommon

    Hint: Try printing this page.

  • Undiscovered (not found yet)

    common

    Hint: Toggle the theme a few times.

  • Undiscovered (not found yet)

    rare

    Hint: Lose your connection.

  • Undiscovered (not found yet)

    rare

    Hint: Plug in a controller and press a button.

  • Undiscovered (not found yet)

    uncommon

    Hint: Sign the guestbook.

Secrets0/10

  • Undiscovered (not found yet)

    rare

    Hint: A famous cheat code.

  • Undiscovered (not found yet)

    common

    Hint: There's a terminal in here somewhere.

  • Undiscovered (not found yet)

    uncommon

    Hint: Ask the terminal about your machine.

  • Undiscovered (not found yet)

    uncommon

    Hint: Ask the terminal for root.

  • Undiscovered (not found yet)

    rare

    Hint: sudo, but make it a job offer.

  • Undiscovered (not found yet)

    rare

    Hint: The most dangerous command there is.

  • Undiscovered (not found yet)

    legendary

    Hint: Open your browser's developer console.

  • Undiscovered (not found yet)

    uncommon

    Hint: Click the logo. Then keep clicking.

  • Undiscovered (not found yet)

    legendary

    Hint: Type the 82nd's favorite word anywhere on the page.

  • Undiscovered (not found yet)

    legendary

    Hint: Find every egg that doesn't depend on your hardware.

Finds are saved in this browser only.

guest@bradbaker-it.com:~