Access Certification Campaigns in Okta
A plain-English guide to the regular check-ups that keep access honest: what a certification campaign is, who reviews what, how decisions turn into real removals, how to keep reviewers engaged instead of rubber-stamping, and how to design campaigns that auditors trust and busy people can finish.
People collect access the way a drawer collects odds and ends. A new hire gets the tools for the job. A year later they join a project and get more. Two years on they move teams and receive a third set, but nobody takes the first set away. After five years the person can reach systems they have not touched in four. None of this was malicious, and none of it was noticed. This slow build-up is called access creep, and it is one of the most common reasons that a single stolen password becomes a serious breach.
The cure is to ask, on a regular schedule, a simple question about every important piece of access: “Should this person still have this?” In identity governance, the structured way of asking that question at scale is called an access certification campaign. Okta supports campaigns as part of its identity governance features. This guide explains them from zero. You will learn what a campaign is, how its parts fit together, how to choose scope and reviewers, what the decisions mean, how revocations really happen, how to keep reviewers focused, and how to avoid the traps that turn a good control into an empty ritual. The companies and numbers in the examples are invented for teaching.
1Why Access Piles Up
Before learning any settings, it helps to see how access builds up on its own, and why that build-up is a security and compliance problem rather than a mere untidiness.
How creep happens
Access is easy to give and hard to take back. Giving access has a clear trigger: someone asks, a manager approves, and work can start. Removing access has no natural trigger. Nobody files a request saying “please take away what I no longer need”. People change projects, teams, and countries, and each change leaves behind something. Over the years, the pile grows. A typical long-serving employee in a mid-sized company may hold dozens of application accounts, many group memberships, and a handful of powerful roles, of which only a fraction match their current job.
Think of a key ring. Every new door you were allowed through gets a new key. Few people ever remove a key when they stop needing the door. After ten years, the ring is heavy, and if you lose it, whoever finds it can open many doors you had forgotten about. A certification campaign is the yearly afternoon when you sit down with the ring and ask of each key, “Do I still need this?”
Why it matters
- Bigger blast radius. If an attacker steals an account, the damage is bounded by that account’s access. More leftover access means more damage.
- Insider risk. Honest people with too much access can make costly mistakes, and the rare dishonest person has more to abuse.
- Compliance failures. Many rules and standards expect organizations to prove that access is reviewed regularly.
- Wasted money. Unused licenses for paid applications are a hidden cost. Reviews often find savings.
- Audit pain. Without regular reviews, audits turn into panicked spreadsheet exercises.
Reviews are not the only defense. Giving only what is needed in the first place, and removing access automatically when roles change, shrinks the pile before anyone has to review it. Campaigns are the safety net that catches what the other controls miss.
2What an Access Certification Is
The idea is simple. The hard part is doing it at scale, with evidence, without exhausting everyone involved.
The plain definition
An access certification, also called an access review or attestation, is a formal check in which a responsible person looks at a list of access and says, for each item, “yes, this is still appropriate” or “no, this should be removed”. The word “certify” means to confirm in a way that can be proven later. A campaign is a planned, time-limited round of such checks, covering a defined set of people or resources, assigned to defined reviewers, with a start date, a deadline, and defined consequences for the decisions.
The three questions every campaign answers
What is being reviewed?
The scope: which people, applications, groups, or permissions are included in this round.
Who decides?
The reviewers: managers, application owners, group owners, or named individuals responsible for the judgment.
What happens next?
The remediation: what the system does when a reviewer says “remove”, and what proof is kept.
Why a campaign, not ad hoc checks?
Informal checks happen when somebody remembers, cover whatever they happen to look at, and leave no record. A campaign has a schedule so it happens, a scope so nothing important is missed, named reviewers so someone is accountable, a deadline so it ends, and a history so an auditor can see what was decided, by whom, and when. Those five properties turn a good intention into a control.
flowchart LR
A["Define scope"] --> B["Assign reviewers"]
B --> C["Launch campaign"]
C --> D["Reviewers decide on each item"]
D --> E["Revocations carried out"]
E --> F["Evidence stored for audit"]
F --> G["Next campaign scheduled"]
The figure shows the loop. Notice that deciding is only the middle of the process. The steps before it make sure the right people look at the right things. The steps after it make sure decisions actually change access and leave proof. A campaign that skips the last two steps is just a survey.
A building inspector does not wander in whenever they feel like it. There is a schedule, a checklist covering every floor, a named inspector, a deadline for fixing problems, and a signed report. The report matters as much as the inspection.
3Why Rules and Standards Ask for Reviews
Many organizations run campaigns because someone outside requires evidence. Understanding what outsiders look for makes the campaign easier to design.
The common expectation
A wide range of security and financial control frameworks expect periodic review of user access. Examples include financial reporting controls for public companies, security assurance reports that customers ask vendors to provide, international information security standards, healthcare privacy rules, and payment card standards. They differ in wording and in how often they expect reviews, but share the same core idea: access must be justified, and the organization must be able to show that someone checked. This post does not give legal or audit advice, and your own compliance team decides exactly what your frameworks require.
What auditors usually want to see
| Auditor question | What the campaign should provide |
|---|---|
| Did you review all in-scope access? | A scope definition and a completeness report showing every item had a decision |
| Who reviewed it? | Named reviewers, with a reason they were the right people |
| Was the reviewer independent? | Rules that stop people from approving their own access |
| When did it happen, and how often? | Dates of launch, deadline, and completion, and a recurring schedule |
| What was decided? | A record of approve and revoke decisions, with times and reviewers |
| Was the access actually removed? | Evidence of the removal in the application, not just the decision |
| What about late or missing reviews? | Records of reminders, escalations, and outcomes for unreviewed items |
Look at the last two rows. Many programs fail audits not because reviewers said the wrong things, but because revocations were never carried out or because nobody can prove what happened to items left undecided. Designing for those two questions from the start saves a lot of grief.
Okta’s governance features, names, and licensing change over time, and some capabilities require a separate governance product or add-on. This guide describes lasting ideas and uses cautious wording about exact screens. Confirm details in the current Okta documentation for your organization before you build.
A restaurant must show inspectors that the fridge temperatures are checked daily. The check itself is valuable, but without the logbook it is as if it never happened. Campaigns are the logbook for access.
4Vocabulary and Anatomy of a Campaign
A few terms appear everywhere in governance. Learning them once makes the rest of this guide easy to follow.
Key terms
| Term | Meaning | Example |
|---|---|---|
| Campaign | One planned round of reviews with a scope, reviewers, and dates | Q3 review of all finance application access |
| Scope | The people or resources included in the campaign | All users assigned to the payroll application |
| Review item | One thing a reviewer must decide: usually one person’s access to one resource | Priya’s access to the payroll application |
| Reviewer | The person responsible for making decisions on items | Priya’s manager |
| Decision | The reviewer’s choice for an item | Approve, revoke, or reassign |
| Remediation | The action taken after a decision, such as removing access | Unassigning the application from the user |
| Resource | The thing access is to, such as an application, a group, or a permission | The payroll application |
| Entitlement | A specific permission or role inside an application | Payroll approver role |
| Fallback reviewer | A backup person for items whose normal reviewer cannot be found | The security team mailbox owner |
| Evidence | Records proving the campaign happened as stated | Exported decision report with timestamps |
The anatomy, from creation to closure
Design
Choose the scope, reviewers, dates, notifications, and what happens after decisions. Many mistakes are made here and discovered later.
Launch
The system builds the list of review items from live data and sends them to reviewers.
Review period
Reviewers work through their items. Reminders go out, and slow reviewers are escalated.
Remediation
Revoke decisions lead to access being removed, either automatically or through a manual task.
Closure
The campaign ends at the deadline. Items without a decision are handled by a defined rule.
Reporting
Results and evidence are stored, and lessons feed the design of the next campaign.
stateDiagram-v2
[*] --> Draft: Designer sets scope and reviewers
Draft --> Scheduled: Start date set
Scheduled --> Active: Start date reached
Active --> Active: Reviewers make decisions
Active --> Closed: Deadline reached or all items decided
Closed --> [*]
The state picture is a useful mental model. Before a campaign starts, you can freely change its design. Once it is active, changes are risky because people are already making decisions. After it closes, it becomes a record. Design carefully while in draft, and treat an active campaign as something to nudge, not redesign.
Think of a school exam. Questions are written beforehand, students sit it in a fixed window, papers are marked, grades are recorded, and the paper becomes part of the school’s records. You do not rewrite the questions halfway through the exam.
5Choosing the Scope
Scope decides what the campaign covers. Too wide and nobody finishes. Too narrow and risky access slips through.
Two ways to slice the same data
Access can be viewed from two angles. A user-centered campaign starts with people: for each person in scope, the reviewer sees all of that person’s access and decides on each item. A resource-centered campaign starts with a resource: for each application or group in scope, the reviewer sees everyone who has access to it and decides on each person. Both examine the same set of connections between people and resources, but they suit different reviewers.
User-centered (managers review their people)
- Managers know what their team members do and can judge whether access fits the role.
- Gives a whole-person view and reveals combinations that look odd together.
- Easy to explain: “review your team’s access”.
- Managers may not understand what technical permissions really allow.
- One manager may face a very long list for a big team.
Resource-centered (owners review who has access)
- Owners understand the resource and know what each permission means.
- One decision-maker covers everyone with access, ensuring consistency.
- Owners may not know who the people are or what their jobs are.
- An owner may be reluctant to remove access for people they do not know.
- Large applications produce very long lists.
Filtering the scope
- By resource. Choose specific applications or groups, typically the most sensitive ones first.
- By people. Limit to a department, location, worker type, or other attribute, so different business units can be reviewed in different rounds.
- By status. Normally include only active accounts. Deactivated people should have been removed already, and they belong in a different check.
- By risk. Concentrate effort where the damage would be greatest: financial systems, customer data, administrative roles.
- By age. Some campaigns focus on access granted long ago, or access not used recently.
flowchart TD
ALL["All access in the company"] --> F1{"Risk level?"}
F1 -- "High: finance, admin, customer data" --> HI["Review often, resource owners plus managers"]
F1 -- "Medium: internal business tools" --> ME["Review twice a year, managers"]
F1 -- "Low: general productivity tools" --> LO["Review yearly or rely on automated cleanup"]
The picture reflects a basic fact: reviewers have limited attention, so spend it wisely. Reviewing every low-risk application every quarter drowns reviewers and hides the important decisions among the trivial ones. A tiered approach keeps the important reviews sharp.
For your first campaign, choose a small but meaningful scope, for example your most sensitive financial application and its owners. A successful small campaign teaches the team more than an ambitious one that stalls.
A security guard in a large building checks the vault, server room, and executive floor every hour, but the cafeteria only once a day. Attention follows risk.
6Choosing the Reviewers
A review is only as good as the person doing it. The right reviewer knows enough to judge and has the standing to say no.
Common reviewer types
The person’s manager
Knows the person’s job and current projects. Best for judging whether access fits the role.
The application owner
Knows what the permissions allow and who should have them. Best for sensitive applications.
The group owner
Responsible for a group’s membership. Best when groups drive access to many systems.
A named person or team
Security, compliance, or a data owner. Best for privileged roles and cross-cutting reviews.
The user themselves
Sometimes asked to confirm their own need, as an extra input to a manager, but rarely the final decision.
What makes a good reviewer
- Knowledge. They understand what the access means and who needs it.
- Authority. They are senior enough to refuse requests and defend the decision.
- Independence. They have no personal stake in the answer. Nobody should approve their own access.
- Availability. They are around to finish the work during the review period.
- Accountability. The organization expects them to take this seriously, and their own manager knows it.
Where reviewer information comes from
Managers are usually found through the manager attribute in the user profile. Application owners come from an ownership record kept for each application or group. If those records are wrong or missing, review items go to the wrong people, or to nobody. That is why clean ownership data is a prerequisite, a point this guide returns to in a later chapter.
flowchart LR
ITEM["Review item: Priya has payroll access"] --> R1{"Reviewer type chosen"}
R1 -- "Manager" --> M["Look up Priya's manager from the profile"]
R1 -- "Application owner" --> O["Look up the payroll application owner"]
R1 -- "Named reviewer" --> N["Use the fixed person or team"]
M --> D["Decision task assigned"]
O --> D
N --> D
The picture shows how each review item finds its reviewer. Because the lookup depends on data that changes, such as who reports to whom, two items in the same campaign can go to different people, and an item can fail to find anyone when the data is missing.
A person must never be the sole reviewer of their own access. This happens more often than expected, for example when a manager is the application owner for the application their own team uses, or when an administrator reviews administrator access. Use rules or a separate reviewer to keep review independent.
A school does not let students mark their own exams. The teacher who knows the subject marks them, and a second teacher checks borderline cases. Independence and knowledge both matter.
7Fallbacks, Delegation, and Second-Level Review
Real organizations have people on leave, managers who left, and empty ownership fields. A good design plans for all of these.
Fallback reviewers
When the normal reviewer cannot be determined or is not available, a fallback reviewer receives the items. A fallback may be a security administrator, a compliance officer, or the manager’s manager. It should be a named person or a small team, never an empty mailbox. Without a fallback, orphaned items either block the campaign from finishing or silently go unreviewed.
Delegation
A reviewer who is going on leave, or who is not the best judge of a particular item, may hand the decision to someone else. This is useful, but dangerous if uncontrolled. Rules should say who may delegate, to whom, whether the delegate may re-delegate, and how delegations are recorded. Delegation to a subordinate defeats independence, because the subordinate may feel unable to say no.
Second-level review
For high-risk access, one pair of eyes may not be enough. A second level of review means that a different person reviews the first reviewer’s decisions, either all of them or a sample. This catches careless approvals and prevents a single weak reviewer from becoming the failure point. Some organizations review reviewers’ revoke decisions only, to catch mistakes that could disrupt work, and review approvals on a sample basis, to catch rubber-stamping.
| Situation | Recommended handling |
|---|---|
| Manager missing in the profile | Route to fallback reviewer and flag the data gap for repair |
| Reviewer on leave | Delegate to a peer or the manager’s manager, recorded and time-limited |
| Reviewer left the company | Fallback reviewer takes over and the profile is corrected |
| Reviewer is also the user being reviewed | Route to a second person, never self-review |
| High-risk access | Add second-level review by security or the data owner |
| Reviewer does not respond | Escalate after reminders, see the later chapter on escalation |
sequenceDiagram
participant S as Campaign system
participant M as Manager
participant D as Delegate or fallback
participant L as Second-level reviewer
S->>M: Assign review items
M->>D: Delegate items while on leave
D->>S: Submit decisions
S->>L: Send high-risk decisions for second review
L->>S: Confirm or overturn decisions
S->>S: Record all actors and times
The sequence shows how a single item can touch several people. What matters is that the system records each step, so an auditor can see who decided and under whose authority.
A hospital has a named doctor on duty for each ward, a cover doctor for holidays, and a senior consultant who reviews difficult cases. Patients are never left without someone responsible.
8Review Decisions: Approve, Revoke, Reassign
The decision is the heart of the campaign. Each choice has a meaning, a consequence, and a way it can go wrong.
The usual choices
| Decision | Meaning | Consequence | Risk |
|---|---|---|---|
| Approve (certify) | This access is still appropriate | Access remains, and a record shows who confirmed it and when | Rubber-stamping without thinking |
| Revoke | This access should be removed | Access is removed through remediation | Removing something still needed, disrupting work |
| Reassign | I am not the right person to decide | The item moves to another reviewer | Passing items around without anyone owning them |
| No decision | Reviewer did not act before the deadline | Handled by the campaign’s closing rule | Silent approval or silent removal, depending on design |
What should happen to undecided items?
This is one of the most important design choices. There are two basic philosophies. In a “keep unless revoked” approach, items nobody decided on stay as they are, and the campaign merely records that no decision was made. This is safe for business continuity but weak for security, since silence means access continues. In a “remove unless approved” approach, undecided items are revoked at the deadline. This is strong for security and creates strong pressure on reviewers to respond, but it can cause disruption if reviewers are simply late or absent. Many organizations choose the second for high-risk access and the first for low-risk access.
flowchart TD
DL["Deadline reached"] --> UN{"Item undecided?"}
UN -- "No" --> DONE["Apply the reviewer decision"]
UN -- "Yes" --> RISK{"High-risk access?"}
RISK -- "Yes" --> REV["Revoke by default, notify the user and manager"]
RISK -- "No" --> KEEP["Keep access, record as not reviewed, follow up"]
The picture shows a balanced approach. High-risk access is removed by default when nobody speaks up, since the cost of leaving it is high. Low-risk access is left in place but flagged so it can be followed up. In both cases, a record is kept.
Making decisions meaningful
Good campaigns ask for a reason on revoke decisions, and sometimes also on approvals for sensitive items. The reason helps the next reviewer, helps auditors, and gently pushes reviewers to think. It also gives the support team context when the person asks why their access was removed.
Offering a single “approve all” button for hundreds of items invites rubber-stamping. Bulk actions are convenient, and sometimes necessary, but they should be used with care, with grouping by similarity, and with extra scrutiny of items that look unusual.
A teacher marking an exam can tick, cross, or pass a question to a colleague. If the teacher ticks everything without reading, the marks mean nothing. The value of the tick is in the thought behind it.
9Remediation: Making Revoke Decisions Real
A decision to remove access means nothing until the access is actually gone. This step is where many programs quietly fail.
Two ways to remove access
When a reviewer chooses revoke, the system can take one of two paths. In automatic remediation, Okta itself removes the access, for example by removing the user from a group or unassigning an application, and the downstream effects (such as removing the account in a connected application) follow from the usual provisioning rules. In manual remediation, Okta records the decision and creates a task, ticket, or message for someone to carry out the removal in the target system. The first is fast and leaves less room for human error. The second is needed for systems that Okta cannot change directly.
| Approach | Strengths | Weaknesses | Suits |
|---|---|---|---|
| Automatic | Fast, consistent, easy to prove | A wrong click removes real access immediately | Applications fully provisioned by Okta |
| Manual task | Human check before removal, works for any system | Slow, tasks get forgotten, hard to prove completion | Systems Okta cannot control, or very sensitive removals |
| Automation flow | Can call other systems, open tickets, notify, and verify | Needs building and maintenance | Mixed estates with ticketing and legacy systems |
The proof problem
Auditors do not accept “the reviewer clicked revoke” as proof that access ended. They want evidence that the account or permission is truly gone. That means checking the target system, or at least recording the successful response from the removal action. Where removal is manual, track each ticket until it is closed, and compare the list of revoked items with the list of closed tickets.
sequenceDiagram
participant R as Reviewer
participant OK as Okta
participant APP as Application
participant T as Ticketing system
R->>OK: Revoke decision
OK->>APP: Remove assignment through provisioning
APP-->>OK: Success or failure response
OK->>T: Create ticket if removal failed or is manual
T-->>OK: Ticket closed with confirmation
OK->>OK: Mark item remediated and keep evidence
The sequence shows a layered approach: try the direct removal, check the response, and open a tracked task if it did not work. Every path ends with the item marked as truly remediated. An item stuck between “decided” and “removed” is a gap an attacker or auditor may find.
Typical failures
- Removal fails silently. The application rejects the change and nobody notices.
- Access returns. A group rule or an access request gives the access back after the review removed it.
- Access removed in one place only. The person still has the permission through a second path, such as a different group.
- Local accounts remain. The application has its own local admin accounts that Okta does not manage.
If access is granted through a rule, such as a group rule based on department, revoking it once does nothing if the rule simply puts the person back next week. For rule-driven access, a review should lead to a change in the rule or the person’s attributes, not just a single removal.
A manager who tells the locksmith “cancel that key” has not made the building safer until the locksmith confirms the lock is changed. The instruction and the result are two different events, and only the second protects the doors.
10Schedules and Frequency
How often to review is a balance between catching problems early and exhausting people. The answer differs for each kind of access.
One-time and recurring campaigns
A campaign can be a one-time event, such as a special review before an audit or after an acquisition, or it can be scheduled to repeat, for example every quarter. Recurring campaigns build the habit and generate the steady history auditors like to see. One-time campaigns are good for targeted projects. Most programs use a mix.
Matching frequency to risk
| Access type | Typical cadence | Reason |
|---|---|---|
| Administrator and privileged roles | Quarterly or more often | Highest damage if misused or stolen |
| Financial and regulated applications | Quarterly or twice a year | Often subject to specific audit expectations |
| Customer or personal data systems | Twice a year | Privacy obligations and breach cost |
| General business applications | Yearly | Moderate risk, many users |
| Contractors and third parties | Shorter cycle, tied to contract end | Turnover is higher, trust is lower |
| Low-risk productivity tools | Yearly or automated cleanup | Low risk, high volume |
These cadences are common examples, not rules. Your compliance team and your own risk assessment decide the right frequency. What matters is that the frequency is stated, followed, and justified.
Staggering
Running every campaign at the same time overloads reviewers, especially managers who receive items from many campaigns at once. Staggering campaigns across the year, with each starting in a different month, spreads the load. It also gives the identity team room to learn from one campaign before running the next.
gantt
title Example yearly campaign calendar
dateFormat YYYY-MM-DD
axisFormat %b
section Privileged
Admin roles review Q1 :a1, 2027-01-05, 14d
Admin roles review Q2 :a2, 2027-04-05, 14d
Admin roles review Q3 :a3, 2027-07-05, 14d
Admin roles review Q4 :a4, 2027-10-05, 14d
section Business applications
Finance applications :b1, 2027-02-01, 21d
Customer data systems :b2, 2027-05-03, 21d
General applications :b3, 2027-09-06, 21d
section Third parties
Contractor review :c1, 2027-03-01, 14d
Contractor review second :c2, 2027-08-02, 14d
The calendar shows privileged reviews every quarter, finance and customer data reviews on offset schedules, and a general review later in the year. No month has more than one or two campaigns, so reviewers are not buried.
Choosing the review window
Campaign length is a trade-off. Too short and people on holiday miss it. Too long and urgency fades. Two to three weeks is typical for large campaigns, with reminders at fixed points and a final warning shortly before the deadline.
Avoid launching campaigns in the middle of known busy periods such as year-end close, major product launches, or holiday season. A review that collides with a crunch gets rubber-stamped.
A car needs a quick check every morning, an oil change every few months, and a full service every year. Doing the full service daily would be wasteful, and skipping the oil change would be foolish. Each check has its own rhythm.
11Notifications, Reminders, and Escalation
Most campaigns fail because people do not finish, not because they decide badly. Communication design is a large part of success.
The communication ladder
Announcement before launch
A short message from a respected leader explaining why the campaign matters, how long it will take, and what happens at the deadline.
Launch notification
Each reviewer receives their assignment with a direct link, the number of items, the deadline, and a contact for help.
Midpoint reminder
A gentle nudge showing progress and remaining items for those who have not started.
Final reminder
A firm message a few days before the deadline, explaining what happens to undecided items.
Escalation
Overdue items are shown to the reviewer’s manager or the campaign owner, who follows up in person.
Closure notice
A final message with results, thanks, and what will happen next, including any removals.
Writing messages people read
- Clear subject. “Action needed by 14 March: review access for your team” beats “Access certification notification”.
- One request. Tell the person exactly what to do and how long it should take.
- A direct link. No hunting for the page.
- Consequences stated plainly. What happens if nothing is done.
- A named human. Someone to ask for help.
flowchart LR
L["Launch day 0"] --> R1["Reminder day 7"]
R1 --> R2["Reminder day 12"]
R2 --> F["Final warning day 14"]
F --> E["Escalate to reviewer's manager day 15"]
E --> C["Closing rule applied day 21"]
The ladder in the picture starts gently and ends firmly. Notice that escalation happens before the deadline, giving the campaign owner time to chase people. Waiting until after the deadline to discover that half the reviewers never opened their email turns a campaign into a failure.
Send the progress of each department’s reviewers to its leader weekly. People respond to peer visibility. A simple table showing which teams have finished often does more than another reminder.
A library sends a friendly reminder before a book is due, a firmer one on the due date, and a call from a librarian if it is long overdue. Each step is polite, and each is a little more insistent than the last.
12The Reviewer Experience: Fatigue and Context
A reviewer faced with hundreds of unexplained rows will click approve. Making the work easier is not a nicety, it is what makes the control work.
Why rubber-stamping happens
When a reviewer sees a list of two hundred lines with cryptic names, no context, and a deadline in an hour, the rational response is to approve everything and move on. Revoking something wrongly causes complaints. Approving something wrongly causes no visible problem until much later. The incentives reward saying yes. Good campaign design pushes back against those incentives by lowering effort and increasing meaning.
Ways to reduce effort
Review less, more carefully
Focus on high-risk access and let low-risk access be covered by automatic cleanup rules.
Group similar items
Show all identical access together so the reviewer can decide once and see exceptions clearly.
Show last use
When the application reports when the person last signed in, show it. Access not used for months is a strong candidate for removal.
Show peers
Show what most people in the same team have. Unusual extra access stands out.
Use plain names
Describe permissions in plain language, not cryptic technical codes.
Highlight changes
Show what is new since the last review so the reviewer concentrates on differences.
Measuring attention
Some warning signs suggest a rubber-stamping problem: reviewers who approve everything in seconds, campaigns where the revoke rate is almost zero every time, and decisions made in huge bulk batches. A very low revoke rate is not proof of good access hygiene. It may only show that reviewers are not looking. Investigate by sampling a few approved items and asking the reviewer to justify them.
flowchart TD
A["Reviewer opens campaign"] --> B{"Items have context?"}
B -- "No" --> C["Cryptic list, rubber-stamp likely"]
B -- "Yes" --> D["Last use, peer comparison, plain names"]
D --> E{"Volume manageable?"}
E -- "No" --> C
E -- "Yes" --> F["Considered decisions"]
The picture shows two gates. Without context, even a short list gets stamped. Without a manageable size, even a well-explained list gets stamped. Both conditions must hold.
If your campaign has a near-100 percent approval rate every time, do not celebrate. Either access is perfectly tidy, which is rare, or reviewers are not reviewing. Sample and test before you present the results as proof of good control.
A proofreader asked to check a thousand pages in an afternoon will skim. A proofreader given twenty marked-up pages and a pencil will find the mistakes. Attention is a limited resource, and design decides how it is spent.
13Use Case: The Quarterly Manager Review
The most familiar campaign asks every manager to review the access of their direct reports. It is simple to explain and hard to do well.
The setup
Imagine a fictional company, Brightwater Insurance, with 3,000 employees and 450 managers. Each quarter, the identity team runs a campaign in which every manager reviews the applications and groups assigned to each direct report. Managers see their team members, the access each person holds, and when it was last used.
How the team made it work
- Scope by risk. Only applications classified as medium or high risk are included, which cuts the number of items per manager to about twenty.
- Plain-language descriptions. Each application has a one-line description of what it is for and what it allows.
- Peer comparison. Items that most of the team holds are shown as normal, and unusual ones are highlighted.
- Clear timeline. Three weeks, with reminders at day seven, day fourteen, and day eighteen, and escalation to the director at day nineteen.
- Defined closing rule. High-risk items undecided at the deadline are revoked, and medium-risk ones are flagged.
- Training. A ten-minute video shows managers what to look for.
flowchart LR
HR["Manager relationships from profile data"] --> CAMP["Quarterly campaign"]
APPS["Medium and high risk applications"] --> CAMP
CAMP --> MGR["Each manager sees team access with context"]
MGR --> DEC["Approve or revoke"]
DEC --> REM["Automatic removal and tracked tickets"]
REM --> REP["Report to security and audit"]
Results in the first year
In the first quarter, 38 percent of managers finished on time, and the team learned that many managers did not recognize their own direct reports because the manager attribute was out of date after a reorganization. After a data cleanup and clearer instructions, the on-time rate rose to above 90 percent by the third quarter. The revoke rate settled at about five percent of items, mostly from people who had changed teams. The team also found three unused paid licenses for every hundred users, a saving that helped pay for the program.
Expect the first campaign to be messy. Treat it as a test of your data, not just your people. Every manager who says “I do not know this person” is telling you about a profile record to fix.
A teacher doing a first class register of the year often discovers that some names are misspelled and some students have moved class. The register is as much a check on the school’s records as on the students.
14Use Case: Privileged and Administrator Access
Administrator roles deserve their own campaign. Few accounts, enormous power, and a long record of breaches that started with a forgotten admin.
Why privilege is special
Privileged access means the ability to change systems, not only use them. Administrators can create accounts, change policies, read sensitive data, and remove logs. A small number of such accounts can do more damage than thousands of ordinary ones. Attackers target them first, and insiders with more power than they need are among the most expensive risks. Reviews should therefore be more frequent, more thorough, and conducted by someone with the skill and independence to judge.
Design choices
- Frequency. At least quarterly, and some organizations review monthly.
- Reviewers. Security or the system owner rather than the line manager alone, with a second-level review.
- Scope. Every administrator role in Okta itself and in critical applications, including custom roles and delegated administration.
- Evidence of need. Each administrator should justify why they still need the role, and how recently they used it.
- Strict closing rule. Undecided privileged access is removed at the deadline.
- Emergency accounts. Break-glass accounts are reviewed too, and checked for secure storage and tested sign-in.
| Question for each administrator | Why it is asked |
|---|---|
| Do they still work here and in the same role? | Movers and leavers often keep powerful roles |
| Did they use the role in the last ninety days? | Unused power is pure risk |
| Could a lesser role do the same job? | Least privilege reduces the damage possible |
| Is the account protected by strong sign-in? | Powerful accounts need the strongest factors |
| Is the role limited by scope, such as one group or application? | Narrow scope limits harm |
| Is there a shared or service account behind the role? | Shared credentials hide accountability |
flowchart TD
ADM["Administrator role assignment"] --> Q1{"Still employed and in role?"}
Q1 -- "No" --> RV["Revoke"]
Q1 -- "Yes" --> Q2{"Used in last 90 days?"}
Q2 -- "No" --> RV
Q2 -- "Yes" --> Q3{"Lesser role enough?"}
Q3 -- "Yes" --> DG["Downgrade role"]
Q3 -- "No" --> AP["Approve with justification, second review"]
The picture shows that approval is the last outcome, not the first. Each question tries to shrink the role before approving it. The downgrade outcome is especially valuable: instead of a yes-or-no choice, it recognizes that the right answer is often “less power”.
Administrators reviewing administrators can become a club that approves its own members. Use independent reviewers such as security or an external auditor, and keep records of who reviewed whom.
The master keys to a building are counted and signed for far more carefully than the keys to the stationery cupboard. Few keys, huge consequences, so the count happens often and the signatures are checked.
15Use Case: Application Owner Review for a Financial System
When a single application holds money or financial reporting data, the owner who understands it should confirm who may use it.
The scenario
Consider a fictional manufacturer, Ironvale Components, with a general ledger application used by 120 people. Auditors expect Ironvale to show that access to this system is reviewed twice a year by the business owner, who knows which roles are appropriate. The business owner is the head of financial reporting, not an IT person. The campaign must therefore present the access in business terms.
Design choices
One resource
The ledger application, with each user’s assigned role inside it, not only whether they have an account.
Resource owner
The head of financial reporting, with a deputy as fallback and a manager review as a second perspective.
Role descriptions
Plain statements such as “can post journal entries” or “can approve payments” beside each assignment.
Conflicting roles
Highlight anyone who holds roles that should never be combined, for example entering and approving payments.
Role removal
Removing a role is carried out in the application, tracked through a ticket and verified against the application’s own user list.
Signed-off report
The owner signs off the completed review, and the report is stored for the auditors.
sequenceDiagram
participant ID as Identity team
participant OW as Business owner
participant OK as Okta
participant LG as Ledger application
participant AU as Auditor
ID->>OK: Launch twice-yearly campaign
OK->>OW: Review items with role descriptions
OW->>OK: Decisions, with reasons for revokes
OK->>LG: Remove roles through provisioning or ticket
LG-->>OK: Confirm current user and role list
ID->>AU: Provide decisions, confirmations, and sign-off
The picture shows an end-to-end chain. The last two steps matter most for audit: the application confirms its real user list after the changes, and the identity team provides the complete package to the auditor. A review that stops after the decision step is unfinished.
What the first review found
The first review at Ironvale found nine accounts belonging to people who had left the finance department, two people who held both payment entry and approval roles, and one shared account used by a temporary team. All were corrected within the review window. The owner also asked for a regular report of new access granted between reviews, to catch problems sooner.
Combine review with a check against rules about incompatible roles. A person might seem fine in each role on its own, but dangerous in combination. Reviewers cannot spot such conflicts easily unless the campaign points them out.
In a shop, the person who counts the till should not be the person who checks the count. Neither is dishonest, but the arrangement protects everyone. Reviews should look for these paired duties.
16Use Case: Contractors and Third Parties
People who are not employees come and go quickly, are managed loosely, and often keep access long after their work ended.
Why contractors need extra care
Contractors, consultants, vendors, and temporary workers often have shorter relationships, weaker ties to the company, and less visibility in HR systems. Their access is commonly granted quickly to get work started, and the end of the engagement may not be recorded anywhere. Without a deliberate check, accounts outlive contracts. In many breach investigations, a long-dormant contractor account turns up as the entry point.
A stronger approach
- Sponsor. Every external person has a named internal sponsor, who is accountable for them and acts as reviewer.
- End date. Every external account has an end date in the profile, and access expires or is reviewed at that date.
- Shorter cycle. Contractor access is reviewed more often, for example every quarter, with the sponsor confirming the engagement continues.
- Narrow access. Contractors receive only the applications they need for their work.
- Strict closing rule. Undecided contractor access is revoked at the deadline.
- Vendor-level review. Where a vendor supplies many people, ask the vendor to confirm who still works on the contract.
| Control | What it prevents |
|---|---|
| Named sponsor required | Orphan accounts nobody feels responsible for |
| End date in profile | Access outliving the contract |
| Quarterly sponsor review | Silent extensions and scope creep |
| Revoke-by-default at deadline | Reviewers ignoring the task |
| Strong sign-in requirement | Unmanaged personal devices with weak protection |
| Vendor roster confirmation | Former vendor staff retaining access |
flowchart TD
CON["Contractor account created with sponsor and end date"] --> TIME["Time passes"]
TIME --> EV{"Quarterly review or end date reached?"}
EV -- "Review" --> SP["Sponsor confirms engagement continues"]
SP --> Y{"Still needed?"}
Y -- "Yes" --> EXT["Extend end date with reason"]
Y -- "No" --> OFF["Remove access"]
EV -- "End date" --> OFF
The picture reverses the usual default. For employees, access continues unless removed. For contractors, access ends unless someone actively extends it. That one change closes the most common gap.
A sponsor who left the company leaves their contractors without a reviewer. Include sponsor-leaving as a trigger that reassigns or reviews the contractors immediately, rather than waiting for the next campaign.
Visitor badges at a company reception expire at the end of the day, and the badge stops working unless someone vouches for the visitor again. Nobody finds that unreasonable, and nobody wanders the building a year later with an old badge.
17Use Case: Event-Based Reviews for Movers and Leavers
Calendar-based reviews catch slow creep. Event-based reviews catch the sudden jumps, such as a change of job, before they become years of leftover access.
Why events matter
A quarterly campaign may find that someone who moved from sales to finance still holds sales permissions, but only after three months of unnecessary access. If the system reacts at the moment of the move, the problem is caught immediately. These event-driven reviews trigger on specific changes: a new department, a new manager, a change of location, a long leave of absence, a change of worker type, or a nearing contract end date.
Events worth reacting to
| Event | Response |
|---|---|
| Department or job change | Review the person’s existing access, keeping what fits the new role and removing the rest |
| Manager change | New manager confirms the team’s access, especially after reorganizations |
| Long leave starts | Suspend or reduce sensitive access during the leave |
| Contract end approaching | Sponsor confirms extension or removal before the date |
| Reviewer or sponsor leaves | Reassign their responsibilities and review their items |
| Resignation recorded | Prepare a controlled removal, with extra checks for privileged access |
| Security incident involving the account | Immediate targeted review of access |
How events and campaigns work together
Event-based reviews do not replace regular campaigns. They are smaller, faster, and aimed at one person or a few people. Regular campaigns remain the safety net that checks everything, including cases where events were missed because the data was wrong. Some organizations also automate the first step: when a person moves, roles that belong to the old department are removed automatically through rules, and a review covers only the leftover access that rules cannot decide.
flowchart LR
HRC["HR change recorded: new department"] --> OKP["Okta profile updated"]
OKP --> RULE["Rule-based access adjusts automatically"]
OKP --> EVT["Event triggers a focused review"]
EVT --> NM["New manager reviews remaining access"]
NM --> OUT["Keep, revoke, or downgrade"]
The figure shows two layers. Rules handle the predictable parts, such as access that always goes with a department. A short review handles the unpredictable leftovers, such as special project access. Together they shrink the time during which a mover carries two roles’ worth of access.
Event-based reviews rely on accurate and timely HR data. If job changes are recorded weeks late, the review fires weeks late. Improve the timeliness of the HR feed and the whole control improves.
When a family moves house, the old keys are returned the same week. Nobody waits for the next annual home inspection to remember that someone else now lives in the old house.
18Entitlements and Separation of Duties
Knowing that someone has an application is only half the picture. What they can do inside it often matters more.
Entitlements in plain words
An entitlement is a specific permission inside an application, such as “view invoices”, “approve payments”, or “administer users”. Two people can both have the same application and have very different powers. A review that looks only at whether the application is assigned misses the real risk. Entitlement-level review asks about each permission, which is more work but far more meaningful.
Separation of duties
Separation of duties is the principle that no single person should control every step of a sensitive process. The person who creates a payment should not be the person who approves it. The person who writes code should not be the only person who can release it to production. Rules can define pairs of entitlements that are not allowed together. These pairs are called conflicts. A good campaign highlights any person who holds both sides of a conflict.
| Conflict example | Risk if one person holds both |
|---|---|
| Create vendor and approve payments | Fake vendor can be created and paid without anyone noticing |
| Enter journal entry and approve journal entry | False financial records with no second check |
| Develop code and deploy to production | Unreviewed changes reach customers |
| Administer users and review audit logs | Misuse can be hidden by editing the evidence |
| Request access and approve access | Self-approval of privileges |
flowchart TD
P["Person holds entitlement A"] --> CK{"Also holds conflicting entitlement B?"}
CK -- "No" --> OK["No conflict flagged"]
CK -- "Yes" --> FL["Flag in review with reason"]
FL --> RV{"Reviewer choice"}
RV --> R1["Remove one entitlement"]
RV --> R2["Approve exception with compensating control and expiry"]
The picture offers two legitimate outcomes. Sometimes the person genuinely needs both, for example in a very small team. Then the exception must be written down, given an end date, and backed by a compensating control such as an extra independent review of that person’s actions.
Entitlement-level review and conflict detection depend on the application exposing its permissions in a way the governance tool can read. Not all applications do. For those that do not, you may need a periodic export from the application or a manual list of roles.
A bank vault needs two keys held by two different people. The point is not that either person is untrustworthy. The point is that no single mistake or temptation can open the vault alone.
19Data Quality: The Hidden Dependency
A campaign is only as good as the data behind it. Missing managers, wrong owners, and stale statuses quietly spoil the whole exercise.
What the campaign relies on
- Manager attribute. Used to find the reviewer for each person. If it is wrong or missing, items go to the wrong person or to the fallback.
- Ownership records. Every application and group in scope needs a current, named owner.
- Employment status. Used to include or exclude people. A leaver still listed as active will be reviewed pointlessly or, worse, never removed.
- Worker type. Used to apply different rules to employees and contractors.
- Resource descriptions. Used to show plain-language names.
- Accurate assignments. The list of who has what, which should match what the target application really holds.
Symptoms of poor data
| Symptom in the campaign | Likely data cause | Fix |
|---|---|---|
| Many items go to the fallback reviewer | Missing managers in the profile | Repair the HR feed and add checks for blank managers |
| Reviewers say “I do not know this person” | Out-of-date reporting lines after reorganizations | Refresh manager data before each campaign |
| Owners reject ownership | Stale ownership records | Confirm owners before launch |
| Reviewers see accounts for people who left | Delayed deactivation | Fix the leaver process, not just the review |
| Application shows people not in the list | Local accounts or manual assignments | Reconcile the application’s own list with Okta’s |
| Confusing item names | Missing descriptions | Add plain-language names for resources |
flowchart LR
DQ["Data quality checks before launch"] --> M1["Every active user has a manager"]
DQ --> M2["Every resource has an owner"]
DQ --> M3["Every account maps to a real person"]
DQ --> M4["Descriptions exist for all resources"]
M1 --> GO{"All checks pass?"}
M2 --> GO
M3 --> GO
M4 --> GO
GO -- "Yes" --> L["Launch campaign"]
GO -- "No" --> FX["Fix and recheck"]
The diagram suggests a simple gate before launching. A one-hour check of the four conditions often saves a week of confused reviewers. Treat the results as a to-do list for the HR and application teams, not as an excuse to delay forever.
Do not paper over bad data by sending everything to a single fallback reviewer. That person will drown, and the control becomes a formality. Better to postpone a part of the campaign than to run it on data that cannot be trusted.
A postal worker with a list of wrong addresses will deliver letters to the wrong houses very efficiently. The efficiency is useless without accurate addresses.
20Integrations: Automation, Tickets, and Logs
Campaigns do not live alone. They connect to workflows, ticketing, messaging, and monitoring systems that make them smoother and more provable.
Where integrations help
Workflows for remediation
Automation flows can remove access in systems Okta does not manage, create tickets, and verify the result.
Ticketing systems
Manual removals are tracked as tickets with owners and due dates, and closed with proof.
Chat and email
Reminders and escalations appear where people already work, with links straight to the review.
Security monitoring
Events such as campaign launch, decisions, and revocations flow into central logs and alerts.
Reporting tools
Results are exported for dashboards and audit packs without hand-made spreadsheets.
Reference data feeds
HR systems and application inventories provide managers, owners, and descriptions.
A typical flow
sequenceDiagram
participant OK as Okta campaign
participant WF as Automation flow
participant AP as Target application
participant TK as Ticketing
participant SM as Security monitoring
OK->>WF: Revoke decision event
WF->>AP: Remove permission through its interface
AP-->>WF: Result
WF->>TK: Open ticket only if removal failed
WF->>SM: Send decision and result record
TK-->>OK: Ticket closure updates item status
The sequence shows automation as the hands of the campaign. The decision is Okta’s, the action is the flow’s, the fallback is a ticket, and the audit trail goes to monitoring. Each piece does one job.
Cautions
- Secure the automation. A flow that can remove access can also remove it wrongly. Restrict who can edit it and log all changes.
- Handle failures. Plan for a target application being down. Retry, then ticket.
- Avoid loops. Make sure removal does not trigger a rule that re-grants the access.
- Protect personal data. Messages and tickets should not carry more personal information than needed.
Start with one integration, usually a ticketing connection for manual removals, and make it reliable before adding more. Several half-working integrations are worse than one solid one.
A hospital’s decision to discharge a patient triggers a chain: paperwork, pharmacy, transport, and a follow-up call. The doctor decides, but the system around the decision makes it happen.
21Evidence, Audit, and Reporting
A review you cannot prove is a review you cannot defend. Good evidence is planned, not assembled in a panic.
What to keep
The campaign definition
Scope, reviewers, dates, and closing rules as they were at launch, so the auditor can see what was intended.
The population
The complete list of items at launch, proving nothing was left out.
The decisions
Each item’s decision, reviewer, time, and any reason.
The remediation proof
Confirmation that revoked access is gone, from the application or the ticket.
The exceptions
Late, delegated, escalated, and undecided items, and how they were resolved.
The sign-off
A named executive or control owner confirms the campaign is complete.
The completeness question
The hardest evidence question is: “How do you know the list you reviewed was complete?” If the list was built from Okta, but the application also has accounts Okta does not know about, the review missed them. Strong programs reconcile the application’s own user list with the campaign population. The reconciliation, with its differences explained, is evidence in itself.
| Report | Audience | Purpose |
|---|---|---|
| Completion by reviewer | Campaign owner | Chase slow reviewers |
| Completion by department | Business leaders | Create peer visibility |
| Decision summary | Security and compliance | Check revoke rates and patterns |
| Remediation status | Identity operations | Make sure revocations happen |
| Exceptions report | Security leadership | Review conflicts and long-lived exceptions |
| Audit pack | Auditors | Provide complete, timestamped proof |
flowchart LR
SNAP["Population snapshot at launch"] --> REC["Reconcile with application user lists"]
REC --> DEC["Decisions recorded with times"]
DEC --> REM["Remediation confirmed"]
REM --> PACK["Audit pack assembled"]
PACK --> SIGN["Control owner signs off"]
SIGN --> ARCH["Archived for the required retention period"]
Notice the first step is a snapshot. Data changes during a campaign as people join and leave. Capturing the population at launch lets you answer what was reviewed, even if the situation has moved on since.
Ask your auditors early what format and detail they want. Building the audit pack to their needs from the start avoids rework, and they often have helpful ideas that make the control stronger.
A pilot’s pre-flight checklist is signed and filed. If anything goes wrong, investigators ask for the signed checklist first. A check without a record counts for little.
22Security Considerations
The review process itself is a target. If it can be manipulated, it provides false comfort, which is worse than no control at all.
Risks to the process
- Self-approval. A person approving their own access, directly or through a friendly delegate.
- Collusion. Two people agreeing to approve each other’s excessive access.
- Reviewer impersonation. An attacker who controls a reviewer’s account can approve access they should not.
- Tampering with scope. Quietly removing risky applications from a campaign so they are never reviewed.
- Tampering with reviewers. Changing the manager attribute so items go to a friendly reviewer.
- Pressure on reviewers. A senior person insisting that their team’s access be approved without scrutiny.
- Over-broad campaign administration. Too many people able to create, edit, or close campaigns.
Prevent self-review
Reviews of a person’s access must go to someone else. Use rules and a fallback to enforce it.
Protect reviewer accounts
Require strong sign-in for reviewing, and consider extra confirmation for revoke or approve actions on sensitive items.
Restrict campaign administration
Few people can create or change campaigns. Changes to scope and reviewers are logged and reviewed.
Watch manager changes
Alert on unusual changes to manager attributes just before a campaign.
Sample approvals
Independent checks of a sample of approved items catch collusion and rubber-stamping.
Escalation outside the line
Reviewers can report pressure to security or compliance without fear.
flowchart TD
ATT["Threats to the review"] --> T1["Self-approval or collusion"]
ATT --> T2["Hijacked reviewer account"]
ATT --> T3["Scope or reviewer tampering"]
T1 --> C1["Independence rules, sampling"]
T2 --> C2["Strong sign-in, confirmation for sensitive actions"]
T3 --> C3["Restricted administration, change alerts"]
The picture reminds us that reviews are controls that need controlling. Independence, strong sign-in, and tamper detection protect the integrity of the whole exercise.
An attacker with access to a manager’s account can approve their own colleague’s malicious access in seconds, and the audit trail will show a legitimate manager. Protect reviewer accounts at least as well as administrator accounts, since they hold the power to certify access.
An auditor who accepts gifts from the company being audited is no longer independent, even if the books are fine. The integrity of the check matters as much as the check itself.
23Monitoring and Metrics
What you measure shapes what you improve. A few well-chosen numbers reveal both the health of the campaign and the health of access itself.
Metrics worth tracking
| Measure | What a healthy sign looks like | What a warning looks like |
|---|---|---|
| On-time completion | Rising and above ninety percent | Stuck low or only done after escalation |
| Revoke rate | A steady, modest percentage that varies by area | Always near zero, or wildly different between similar teams |
| Time to decide per item | Enough to read the item | A second or two per item in huge batches |
| Time to remove | Hours or a few days | Weeks, or no confirmation at all |
| Returned access | Rare | Frequent re-granting of revoked access through rules |
| Fallback share | Small | Large, showing poor data |
| Exceptions open | Few, with expiry dates | Many, old, or with no expiry |
| Complaints after revocation | Few, quickly resolved | Many, showing weak reviewer judgment or context |
flowchart LR
CAMP["Campaign events and decisions"] --> LOGS["Central log store"]
LOGS --> DASH["Dashboards: progress, revoke rate, removal time"]
LOGS --> ALERT["Alerts: stalled campaign, failed removals"]
DASH --> REV["Post-campaign review"]
ALERT --> OPS["Identity operations respond"]
REV --> IMP["Improve the next campaign"]
Hold a short retrospective
After each campaign, spend an hour with the campaign owner, a few reviewers, and the application owners. Ask what confused people, which data was wrong, which items were hardest to decide, and what was learned about access. Write down three changes for the next round. Over a year, this habit turns a clumsy first campaign into a smooth routine.
Report the findings of reviews to the business, not just the completion numbers. “We removed 312 unused licenses and 41 stale administrator roles” tells leaders the program is worth the effort.
A runner who tracks times, not just whether they went running, sees progress and notices trouble early. Numbers keep good intentions honest.
24Scale and Rollout
A pilot with ten reviewers is easy. A company-wide campaign with thousands is a project of its own. Plan the rollout like one.
Start small, grow deliberately
Pilot
One sensitive application and a handful of friendly reviewers. Learn what confuses them.
Expand to high-risk
Add privileged roles and the financial systems with the strictest audit needs.
Add manager reviews
Roll out to managers department by department, fixing data as you go.
Add third parties and events
Bring in contractors and event-based triggers.
Steady state
A published calendar, regular retrospectives, and continuous data quality work.
Scale concerns
- Number of items per reviewer. Keep it small enough to finish in about an hour. More than a few hundred is too many for careful review.
- Large resources. An application used by everyone creates one enormous list. Use manager-based review for it, or break the population into smaller campaigns.
- Remediation volume. Hundreds of removals at once can strain applications and support teams. Phase removals and warn help desks.
- Support load. Expect questions on launch day and after removals. Prepare short answers and a contact path.
- Product limits. Governance features have limits on campaign sizes and numbers, which vary by license and over time. Check your own limits.
flowchart TD
BIG["Large population: 20000 users on one application"] --> SPLIT{"How to split?"}
SPLIT --> S1["By department, one campaign each"]
SPLIT --> S2["By manager, each sees their team only"]
SPLIT --> S3["By risk, only elevated roles go to owners"]
S1 --> OUT["Each reviewer has a manageable list"]
S2 --> OUT
S3 --> OUT
The picture offers three ways to cut a big problem into small ones. The best choice depends on who knows the access best. Often, a mix works: managers review standard access, and the owner reviews only elevated roles.
Removing hundreds of accesses on the same day can cause a wave of support calls and business disruption. Warn the service desk, stagger removals when possible, and give people a simple way to ask for access back if a removal was a mistake.
A town does not repaint every road in one weekend. It does the busiest ones first, learns what works, and schedules the rest. A big job done in stages is a job done safely.
25Failure Scenarios and Recovery
Campaigns fail in a small number of predictable ways. Knowing them in advance turns surprises into routine fixes.
| Failure | Symptom | Recovery | Prevention |
|---|---|---|---|
| Wrong scope launched | Reviewers receive items that do not belong, or key applications are missing | Pause or close, correct, relaunch with an explanation | Preview the population and have a second person check scope before launch |
| Reviewers not found | Items pile up with the fallback reviewer | Repair manager or owner data, reassign in bulk | Data readiness check before launch |
| Low participation | Few reviewers act, deadline approaches | Escalate to leaders, extend if the closing rule is severe | Executive sponsorship, reminders, peer visibility |
| Mass wrongful revocation | Complaints, business disruption | Restore access from the recorded list, apologize, find the cause | Pilot, stagger removals, clear instructions |
| Removal failures | Revoked in Okta but still active in the application | Open tickets, retry, verify in the application | Confirm removals against the application’s own list |
| Access returns | Revoked access reappears after a week | Fix the rule or request flow that regrants it | Review rules together with assignments |
| Reviewer account compromised | Unusual approvals from one reviewer | Lock the account, reopen affected items, investigate | Strong sign-in, anomaly alerts on review actions |
| Campaign stuck | Open items that nobody can act on | Administrator reassigns items or applies closing rule | Fallback reviewers and a clear ownership of the campaign |
A recovery routine
Stop the damage
Pause automatic removals or reminders if the problem is spreading.
Identify the cause
Check scope, data, and rule changes. Look at the campaign log for what happened and when.
Communicate
Tell reviewers and affected people what happened and what to expect.
Repair
Restore access that should not have gone, fix data or design, and rerun the affected part.
Record and learn
Document the incident and add a check that would have caught it.
flowchart TD
P["Problem noticed"] --> Q1{"Wrongly removed access?"}
Q1 -- "Yes" --> RES["Restore from decision record, notify users"]
Q1 -- "No" --> Q2{"Reviewers missing or inactive?"}
Q2 -- "Yes" --> ESC["Fix data, escalate, reassign"]
Q2 -- "No" --> Q3{"Removals not happening?"}
Q3 -- "Yes" --> TK["Check integrations, open tickets, verify"]
Q3 -- "No" --> INV["Investigate scope and design"]
Before every campaign that removes access automatically, export the list of items about to be affected. If something goes wrong, that export is the quickest route to restoring what should not have been removed.
A ship’s crew practices emergency drills so that when something fails, each person already knows their part. A recovery routine rehearsed on paper makes the real event much less frightening.
26Design Patterns That Work
These patterns have proved themselves in many organizations. Adapt them to your own size and risk.
Risk-tiered calendar
Review privileged access most often, regulated applications next, and general applications least. Stagger campaigns across the year so reviewers are never swamped.
Right reviewer for the question
Managers judge whether access fits a job. Owners judge what a permission means. Use both where risk is high, and security for privileged roles.
Expiry by default for the risky
For contractors, privileged roles, and exceptions, access ends unless someone confirms it. Silence removes, not renews.
Close the loop
Every revoke decision leads to a verified removal, tracked until proven. The evidence includes the application’s confirmation.
Reduce before you review
Use rules, expiry, and automated cleanup to shrink the access pile first. Reviews then focus on judgment, not housekeeping.
Readiness gate and retrospective
Check data before launch and hold a short retrospective after closure. Each campaign becomes better than the last.
flowchart LR
RULES["Rules and expiry shrink access automatically"] --> CAMP["Campaigns review what remains"]
CAMP --> EVT["Event reviews catch sudden changes"]
EVT --> CAMP
CAMP --> PROOF["Verified removal and evidence"]
PROOF --> LEARN["Retrospective improves rules and data"]
LEARN --> RULES
A tidy household sweeps daily, cleans weekly, and deep-cleans yearly. The deep clean is far easier because the smaller routines have already done most of the work.
27Anti-Patterns to Avoid
These habits look sensible at first and lead to empty reviews. Recognize them early.
Anti-patterns
- Review everything, all the time. Reviewers drown and approve blindly.
- Approve all button as the main feature. Bulk approval without scrutiny.
- No consequence for silence. Undecided items simply continue, so reviewers learn to ignore the task.
- Decision without removal. Revoke is recorded but the access remains.
- Cryptic items. Technical codes, no descriptions, no context.
- Self-review. Owners and administrators approving their own access.
- Dirty data tolerated. Reviews sent to the wrong people.
- One campaign for everything. Same cadence, same reviewers, no risk tiers.
- Checkbox compliance. Running reviews for the audit and ignoring their findings.
Better habits
- Review by risk. More focus on fewer, more important items.
- Grouped, contextual bulk actions. With visible exceptions and sampling.
- Defined closing rules. Silence removes for high risk, and is flagged for low risk.
- Verified removal. Every revoke confirmed in the target system.
- Plain descriptions. Last use, peers, and clear names.
- Independent reviewers. Rules prevent self-review.
- Readiness checks. Fix data first.
- Tiered programs. Different cadence and reviewers per risk level.
- Findings acted on. Reviews feed rules, training, and access design.
| Anti-pattern | What it causes | Quick fix |
|---|---|---|
| Review everything | Fatigue and rubber-stamping | Risk-tier the scope |
| No consequence for silence | Low participation | Define closing rules by risk |
| Decision without removal | False assurance | Track remediation to confirmation |
| Self-review | Failed audit and real risk | Independent reviewers and second-level checks |
| Dirty data | Wrong reviewers, confusion | Readiness gate |
| Checkbox compliance | No improvement in security | Report and act on findings |
The most dangerous anti-pattern is a campaign that looks perfect on paper: one hundred percent completion, near-zero revocations, and no complaints. That outcome usually means nobody looked. Test your own program by sampling approvals.
A fire drill that everyone ignores by staying at their desks passes the schedule and fails the purpose. A control that exists only to be ticked off protects nothing.
28Trade-Offs, Best Practices, and Common Mistakes
Every choice in a campaign gives something up. Naming the trade-offs makes decisions deliberate.
The main trade-offs
| Choice | Gain | Cost | Lean toward it when |
|---|---|---|---|
| Frequent reviews | Problems caught early | Reviewer fatigue | Risk is high and the population small |
| Infrequent reviews | Less effort | Longer exposure | Risk is low and rules clean up automatically |
| Manager reviewers | Know the person | May not understand permissions | Access fits job roles |
| Owner reviewers | Know the resource | May not know the people | Permissions are technical or sensitive |
| Revoke-by-default on silence | Strong pressure to respond | Possible business disruption | Access is high-risk |
| Keep-by-default on silence | No disruption | Weak enforcement | Access is low-risk |
| Automatic remediation | Fast and provable | Mistakes happen instantly | Applications are fully provisioned |
| Manual remediation | Human check | Slow, easy to forget | Systems Okta cannot change directly |
| Entitlement-level review | Real risk visible | More work per reviewer | Roles inside applications carry real power |
Best practices
- State the purpose and risk of each campaign in one sentence before building it.
- Scope by risk and start with a small, meaningful pilot.
- Choose independent reviewers who know enough to judge.
- Define fallbacks, delegation rules, and second-level review for high-risk access.
- Run a data readiness check before launch.
- Give reviewers context: plain names, last use, peers, and changes since the last review.
- Define closing rules by risk level, and make them known in advance.
- Verify every removal in the target system.
- Keep evidence from the start and ask auditors what they need.
- Hold a retrospective after every campaign and act on it.
Common mistakes
- Launching before checking manager and owner data.
- Treating completion rate as the only measure of success.
- Forgetting that rules may regrant what a review removed.
- Reviewing application access but ignoring roles inside the application.
- Launching during busy periods.
- Forgetting the service desk when removals are large.
- Leaving long-lived exceptions with no expiry.
quadrantChart
title Choosing review depth
x-axis Low impact if misused --> High impact if misused
y-axis Few people --> Many people
quadrant-1 Manager plus owner review
quadrant-2 Manager review with automation
quadrant-3 Light yearly review
quadrant-4 Owner or security review
Productivity tools: [0.15, 0.85]
Internal business apps: [0.4, 0.6]
Customer data systems: [0.7, 0.55]
Financial ledger: [0.85, 0.3]
Administrator roles: [0.95, 0.1]
The picture is a way of thinking, not a measurement. Items with high impact and few holders, such as administrator roles, justify intense, specialist review. Items with low impact and many holders, such as productivity tools, are better handled by light, mostly automated checks.
A homeowner checks the front door lock every night and the garden shed lock once a year. The effort matches what could be lost.
29Worked Example: A Governance Program at Cedarpoint Health
To pull everything together, here is an invented company and a complete campaign program. The company, numbers, and names are made up for teaching.
The company
Cedarpoint Health is a fictional healthcare services company with 5,000 employees, 900 contractors, and about sixty applications, including a patient records system, a billing platform, and a general ledger. It faces audits that expect regular access reviews, and it recently found a former contractor’s account active eleven months after the contract ended. Leadership asked the identity team to build a proper certification program within six months.
The design
| Campaign | Scope | Reviewers | Cadence | Closing rule |
|---|---|---|---|---|
| Privileged access | All administrator roles in Okta and critical systems | Security lead, plus system owners | Quarterly | Revoke undecided |
| Patient records | Patient records system, role-level | Clinical systems owner, then privacy officer sample | Twice a year | Revoke undecided |
| Billing and ledger | Billing platform and general ledger, with conflict flags | Finance owner | Twice a year | Revoke undecided |
| Manager review | Medium-risk applications for all employees | Direct managers | Yearly, by department in stages | Keep and flag |
| Contractors | All contractor accounts | Named sponsors | Quarterly plus end date | Revoke undecided |
| Event-based | Movers, sponsor departures, long leave | New manager or security | On event | Keep and flag after seven days |
flowchart LR
DATA["Readiness gate: managers, owners, descriptions"] --> PRIV["Privileged campaign"]
DATA --> REG["Patient records and billing campaigns"]
DATA --> MGR["Manager campaign in stages"]
DATA --> CON["Contractor campaign with sponsors"]
EV["Event triggers"] --> MGR
PRIV --> REM["Automatic removal plus tickets"]
REG --> REM
MGR --> REM
CON --> REM
REM --> EVD["Evidence archive and dashboard"]
How the first year went
In the first month the team ran a readiness check and discovered that 14 percent of employees had no manager recorded and that a third of applications had no named owner. They fixed these before launching anything. The pilot, a review of the general ledger, found two people holding conflicting payment roles, which the finance owner resolved the same week. The privileged campaign removed 41 unused administrator roles and downgraded 17 more.
The contractor campaign was the biggest surprise. It found 130 accounts past their end dates, nearly all because sponsors had changed roles or left. Introducing an end date and a sponsor requirement for every new contractor, plus the sponsor-departure trigger, reduced the number of overdue accounts to a handful per quarter. The manager campaign’s first run reached 71 percent on-time completion, rising to 93 percent after clearer descriptions and weekly progress reports to department heads. A sample check of approvals found that a few managers were approving everything in bulk. Their directors discussed this with them, and later campaigns showed a more varied pattern of decisions.
When the external audit arrived, the team provided the population snapshots, decision records, ticket confirmations, and executive sign-offs. The auditors raised no findings about access review. The program also freed up roughly 400 unused application licenses, which reduced costs.
Result
Cedarpoint now has a published yearly calendar, six campaign types matched to risk, verified removals, and evidence ready for audit. The most valuable work was not clever technology. It was fixing ownership data, deciding what silence means, and following each revoke decision all the way to the actual removal.
A well-run apartment building has a list of who holds keys, checks it on a schedule, asks the owners of each flat to confirm who still lives there, changes locks when someone moves out, and keeps the records. None of it is exciting, and all of it keeps residents safe.
30Frequently Asked Questions
Short answers to questions that come up often. Feature names, screens, and licensing change over time, so confirm exact details in current Okta documentation.
What is an access certification campaign?
A planned, time-limited round in which designated reviewers confirm or remove people’s access to defined resources, with records of every decision and its outcome.
How often should we run campaigns?
It depends on risk. Privileged access is often reviewed quarterly, regulated applications quarterly or twice a year, and general applications yearly. Your compliance team confirms what your frameworks expect.
Who should be the reviewer?
Managers are good at judging whether access fits a role. Resource owners are good at judging what a permission means. For sensitive access, use both, and use security for privileged roles.
What happens if a reviewer does nothing?
That is set by your closing rule. Many organizations revoke undecided high-risk access and flag undecided low-risk access for follow-up. Decide and announce the rule before launch.
How do I stop rubber-stamping?
Reduce volume by scoping by risk, add context such as last use and peer comparison, group similar items, require reasons for sensitive approvals, and sample approved items.
How do I prove that access was actually removed?
Keep the removal response, ticket closure, or a fresh export from the application showing the access is gone, alongside the decision record.
What if a manager is missing in the profile?
Route to a fallback reviewer and fix the data. Frequent fallbacks show a data quality problem to solve at the source.
Can a reviewer review their own access?
They should not. Use rules and fallbacks to send self-review items to someone independent.
What about contractors?
Give every contractor a sponsor and an end date, review more often, and make access expire unless the sponsor confirms it.
Do campaigns replace automatic access removal?
No. Rules and expiry shrink the problem automatically. Campaigns catch what rules cannot decide, and act as a safety net.
What is separation of duties?
The principle that no single person should control every step of a sensitive process. Reviews flag people who hold conflicting permissions.
Should we review at the application level or the permission level?
Start at the application level for most things. Use permission-level review for sensitive applications where roles inside carry real power.
What if we revoke something by mistake?
Restore it from the decision record, and offer a simple route for people to ask for access back. Pilot and stagger removals to limit the impact.
What evidence do auditors want?
The scope, the complete population, reviewer identity and independence, decisions with times, proof of removal, handling of late and undecided items, and a sign-off.
Where should I start?
Pick one sensitive application, confirm its owner and the managers of its users, run a small pilot with a clear closing rule, verify the removals, and expand from what you learn.
31Summary and Key Takeaways
Access certification campaigns turn a good intention, keeping access honest, into a repeatable control with owners, deadlines, and proof.
Key Takeaways
- Access piles up unless someone asks. Adding access has a trigger and removing it does not, so scheduled reviews supply the missing trigger.
- Scope by risk. Review privileged, regulated, and sensitive access most often and most deeply, and let rules handle the low-risk rest.
- Choose reviewers who know and are independent. Managers know the person, owners know the permission, and nobody reviews their own access.
- Make reviews meaningful. Give plain descriptions, last-use data, and peer comparisons, keep lists manageable, and watch for rubber-stamping.
- Decide what silence means. Set closing rules by risk, announce them, and follow up with reminders and escalation.
- Close the loop. Every revoke must end in a verified removal, and rules must not quietly grant the access again.
- Fix the data, keep the evidence, and keep improving. Clean manager and owner records first, store proof as you go, and learn from every campaign.
Okta changes feature names, screens, limits, and licensing over time, and governance capabilities may require a separate product or add-on. Use this post to understand the ideas, and confirm exact settings in your own admin console and the current Okta documentation before you build.