Maintaining Automated Access Management in Entra ID After Go-Live

Ruben van der Graaf··7 min read·Part of Identity & Access Management (IAM)

Turning on attribute-driven access is one thing, keeping it correct for years is another. How to maintain an automated access model so it does not drift over time.

Most articles about automating access management are about the start: write your membership rules, tie department to a set of groups, turn it on. That is the fun part and it is doable. What happens afterwards is where most organizations quietly go wrong. An automated model is not something you configure once and forget. Attributes change, new groups appear, people request exceptions, and after a year nobody quite remembers why a particular rule exists. This article is not about how you start, but about how you keep it correct for years.

TL;DR

  • An attribute-driven access model is alive: attributes, groups, and roles change constantly.
  • The biggest risks after go-live are attribute quality decaying, rules piling up, and exceptions becoming permanent.
  • Treat your rule set like code: one place where it lives, one place where you change it, and a record of why.
  • Turn every exception into a temporary deviation, not a silent permanent one.
  • A periodic review of the rules themselves, not just the access, keeps the model explainable.

Why an Automated Model Drifts Anyway

Attribute-driven access management, or ABAC, ties group and role membership to attributes like department, job title, and location, in Entra ID and on-prem Active Directory. As long as the attributes are correct and the rules are clear, the model does exactly what it should: it keeps access aligned with who someone is and what they do. The problem is that neither of those stays stable on its own.

Attribute Quality Decays Quietly

On the day you turn it on, the attributes are usually clean: you just checked them. After that they start to decay. Someone moves to another office but the location field is not updated. A job title gets typed by hand as "Sr. Controller" while your rule matches on "Controller". A reorganization renames a department and half your rules match nothing anymore. The model is not broken, but it is feeding on dirty data and therefore produces wrong outcomes. And because it runs automatically, you only notice when someone cannot reach something they should, or can reach something they should not.

Rules Pile Up Faster Than You Clean Up

Every new need leads to a new rule. A new team, a new application, an exception for one department. Adding is easy and happens under pressure. Cleaning up almost never happens, because removing a rule feels risky: what if something breaks. So the rule set grows steadily, until nobody sees the whole anymore and two rules contradict each other without anyone noticing.

Exceptions Become Permanent

Someone needs temporary access outside the model. You make a manual exception, intending to undo it later. "Later" never comes. The exception stays, falls outside the rules, and is exactly the kind of standing access you meant to prevent with automation. One exception is not a problem. Fifty undocumented exceptions undermine the whole model.

Treat Your Rule Set Like Code

The single most important habit for keeping an automated model healthy is treating your rules the way you treat code. That means three things.

  • One source. The rule set lives in one place and that is the truth. Not partly in Entra ID, partly in a script, partly in someone's head. If you have to guess where a rule comes from, you have already lost the overview.
  • Change it one way. You change rules through one fixed process, not by clicking around in the portal here and there. Every change is a deliberate action, not a side effect.
  • A record of why. Every rule has a short reason: why it exists, since when, and who requested it. Without that record nobody ever dares remove anything, and then everything stays.
This does not need to be a heavy system. The point is that at any moment you can explain why someone can reach something. If the answer is "nobody remembers anymore", that is the real problem, not the access itself.

Guarding Attribute Quality

Because the whole model leans on attributes, attribute hygiene is not a one-time cleanup but an ongoing task. A few practical checks:

  1. Measure coverage. How many users have department, job title, and location filled in? A percentage that drops is an early warning.
  2. Look for variants. "Amsterdam", "AMS", and "Amsterdam Office" should be the same thing. Free-text fields slowly fill up with variants that break your rules.
  3. Check the source. If attributes come from an HR system, the quality lives there. Bad data at the source does not improve by automating it; it gets spread faster.
  4. Flag orphans. Users who match no rule at all, or groups no longer filled by any rule, are candidates for investigation.
This is exactly why a model that only reads attributes and does not blindly write them back is safer. If the source is messy, you want to see and correct it, not have a tool automatically record the mess as truth.

Keeping Exceptions Temporary

Exceptions are inevitable. The model never covers a hundred percent, and it does not have to. The art is to keep exceptions temporary instead of quietly permanent.

  • Give every exception an end date. Access outside the model gets an expiry by default. If someone wants to extend it, that is a deliberate choice, not a forgotten action.
  • Document the reason. One line: why this exception, who requested it, who approved it. Without that it is unknown standing access in three months.
  • Review them separately. Exceptions are by definition the part not covered by the rules, so they deserve extra attention at a review. If an exception keeps recurring, that is a signal your rule set should probably cover it.

Review the Rules, Not Just the Access

Most organizations periodically run an access review: is the access people have still correct? That is useful, but with an automated model there is a second review that matters just as much: is the rule set itself still correct?

Once or twice a year, walk through the rules and ask three questions per rule. Does the reason this rule was created still exist? Does it still actually match users and groups, or has it gone dead after a reorganization? Does it overlap with another rule or contradict it? This review catches exactly the kind of drift a normal access review misses, because an access review looks at the outcome and not at the logic behind it.

A Workable Maintenance Rhythm

You do not need to stand up full-time administration for this. A light, fixed rhythm is enough:

  1. Continuously: flag attribute quality, so you see contamination before it affects access.
  2. Per change: every new rule or exception gets a reason and, for exceptions, an end date.
  3. Each quarter: a short check on new exceptions and on groups that no longer have a rule.
  4. Twice a year: a review of the rule set itself, not just the access.
  5. At every reorganization: a targeted check, because a department that renames or disappears almost always hits several rules at once.
A platform like ServiceChanger takes over the execution part of this: it runs the rules against Entra ID and on-prem Active Directory, recomputes access when attributes change, and records every addition and removal so you have a trail at review time. But maintaining the rules, deciding what a rule should be and when an exception can go, stays human work. The tool executes the logic you defined; it does not define the logic for you.

Closing

Automating access management is not a project with an end date, it is a system you maintain. The good news is that the maintenance is light if you set it up well at the start: one place for your rules, a reason on every rule, and an end date on every exception. The organizations where it is still correct after two years are not the ones with the cleverest rules. They are the ones that could explain why every rule was there.