Profile Source Priority in Okta: Who Wins When Many Systems Describe the Same Person
A plain-English, in-depth guide to how Okta decides which system's data becomes a person's profile, how to rank your sources, and how to avoid the tug-of-war that breaks access.
Think about one employee, Maria. Your HR system says she is a Senior Analyst in Finance. Your Active Directory says she is an Analyst in a department called “FIN”. A contractor system, left over from last year, says she is an external consultant. All three are describing the same human, and all three want to tell Okta who she is. Which one is right?
Profile source priority is the part of Okta’s identity model that answers this question. It lets you rank the systems that feed Okta, so that one clear voice speaks for each person and the others stay in their lane. This guide explains the idea from the ground up, shows how the pieces fit, and walks through the design choices, the traps, and the habits that keep your profiles clean.
1What Is Profile Source Priority?
Three simple ideas sit behind the name: a profile, a source, and a ranking.
Okta keeps one record for every person, stored in a place called Universal Directory. That record is called a profile. A profile is like an identity card that holds attributes, which are named pieces of information such as first name, email, department, job title, manager, and start date. Every app that Okta connects to reads from this card.
A profile source is any system that is allowed to feed information into that card. Common examples are an HR system such as Workday, a directory such as Active Directory, or another business app that Okta can import people from. Okta itself can also be a source, when administrators or people edit the profile directly.
Profile source priority is the ranking you give to those sources. When more than one system claims the same person, the ranking tells Okta whose version of the profile to trust first. In short, it answers one question: when two systems disagree, who wins?
Imagine three editors who each send corrections to the same company phone book. If nobody says who has the final word, the printed book changes every time a different editor writes in. A ranked list of editors solves it. The top editor’s page wins, and the others only fill in what the top editor left blank.
Three questions it helps you answer
Who owns this person?
Which system is the main authority for the whole profile of a given user.
Whose value wins?
When two systems send different values for the same attribute, which value Okta keeps.
What if the top source goes quiet?
How Okta behaves when the leading source no longer has the person or stops sending updates.
Everyday phrases and what they really mean
Identity teams use short phrases that can confuse newcomers. Knowing them saves time in meetings. When someone says “HR is the master”, they mean that the HR system is the source whose values win for the attributes it owns. When they say “Okta is mastered by the directory”, they mean the profile is filled mainly from directory data. When they say “the import overwrote it”, they mean a source wrote a value that replaced one already stored.
Another common phrase is “flapping”, which describes a value that keeps switching between two answers. A “stale” value is one that no longer matches reality because the source stopped updating it. An “orphan” is an account whose source record has vanished, leaving nobody responsible for it. Spotting these three words in a log or a ticket quickly tells you what kind of problem you face, and which part of this guide to open first.
Finally, people often say “source of truth” when they really mean “the system I trust most”. Be gentle with the phrase. Truth in identity data is rarely about one system being right about everything. It is about agreeing, in writing, which system answers which question, and holding every other system to that agreement.
Menu names, available options, and exact behavior can differ between Okta Classic and Okta Identity Engine, and they change over time. Use this guide to understand the concepts, then confirm the current screens and rules in Okta’s own documentation before you change a live setup.
2The Problem: Many Sources, One Profile
Every rule exists because something went wrong without it. Here is what goes wrong without clear priority.
In a small company, one system usually knows everyone. As the company grows, it adds a dedicated HR system for contracts and pay, a directory for computers and logins, and special systems for contractors, students, or partners. Each is correct about its own corner of the business. None of them is correct about everything.
Now connect them all to Okta. Each source sends updates on its own schedule. If there is no ranking, whichever source ran last overwrites the profile. This causes a quiet but damaging problem called flapping, where a value keeps switching back and forth as different sources take turns writing it.
What goes wrong without a ranking
Flapping values
A job title changes from “Manager” to “Analyst” and back every few hours as two sources overwrite each other.
Wrong access
Group rules read the department. When the department flips, people gain and lose apps for no real reason.
Duplicate people
Two sources create two profiles for the same human, each with its own apps and its own history.
Stale leavers
HR says the person left, but another source still lists them as active, so access lingers.
Picture three secretaries, each with a key to the same filing cabinet, each told to “keep the address cards up to date”. Without a rule about who is in charge, they erase each other’s changes all day. The cabinet is never wrong for long, but it is never right for long either.
Why this matters even for small teams
Some teams believe ranking is only for giant enterprises. In truth, trouble starts as soon as a second people system appears. A startup that adds a payroll tool beside its directory already has two voices describing the same employees. The earlier the ownership rules are written, the cheaper they are to keep. Fixing a tangled profile design after five systems and three thousand users is far harder than writing a one-page ownership table on the day the second system arrives.
The habit is also cheap to start. Pick the five attributes that drive access, name one owner for each, and record the answer where the whole team can read it. That small exercise already removes most of the confusion, and it prepares you for the day a merger, a new HR platform, or an audit makes the question urgent.
A fictional example: Northwind Traders
Northwind Traders, a made-up company used here for teaching, has 6,000 employees in an HR system, 6,200 accounts in Active Directory, and about 400 contractors in a separate vendor system. Before ranking its sources, the company saw hundreds of profile changes every week that nobody had made on purpose. After agreeing a priority order, those mystery changes disappeared.
You cannot stop systems from disagreeing. You can only decide in advance who wins when they do.
3Core Concepts to Know First
A short vocabulary list makes the rest of this guide much easier to follow.
Identity work has its own words. Most of them describe either where data comes from, or who is allowed to change it. The table below puts the key terms next to a simple picture.
| Term | Plain meaning | Easy picture |
|---|---|---|
| Universal Directory | Okta’s cloud store of user profiles. | The company’s central address book. |
| Profile | The set of attributes describing one person. | One person’s card in the address book. |
| Attribute | One piece of information, such as department. | One line on the card. |
| Profile source | A system allowed to feed profile data into Okta. | An editor who sends corrections. |
| Profile master | The source whose data is treated as the authority. | The editor with the final word. |
| Priority | The ranking among sources for the same person. | The order of editors by seniority. |
| Import | Bringing records from a source into Okta. | The editor delivering the new pages. |
| Matching | Deciding that two records describe the same person. | Recognizing the same face in two photos. |
| Mapping | A rule that links a field in one system to a field in another. | A translation chart between two forms. |
| Attribute-level sourcing | Choosing a source separately for each attribute. | Different editors owning different pages. |
Source of truth, explained
The phrase source of truth means the one system whose answer is final for a given piece of data. For a hire date, that is almost always the HR system. For a login name, that may be the directory. For a preferred display name, it may be the person themselves. A healthy design names a source of truth for every attribute that matters.
Priority versus ownership
Priority is the ranking between sources. Ownership is the decision about who may change a value at all. They work together. Ownership says the HR system is allowed to set the job title. Priority says that if two systems both try, the higher-ranked one wins. A good design uses both: clear owners most of the time, and a clear ranking for the rare disagreements.
In a hospital, the lab owns blood test results and the pharmacy owns medication lists. That is ownership. If a rare conflict appears, such as two records of the same allergy, a ranking rule says which department’s note counts. You need both rules for safe records.
A profile source feeds Okta. It is not the same as an authentication source, which decides where passwords are checked. A person’s profile can come from HR while their password is checked in Active Directory. Chapter 14 covers this split.
4Architecture and Components
Here is the full picture of how profile data flows in, gets ranked, and flows back out to apps.
The design has three layers. On the left are the profile sources, which send people and attributes into Okta. In the middle is Okta, where matching, priority, and sourcing rules decide what the final profile looks like. On the right are the downstream apps, which read the finished profile and receive updates. Data enters ranked, and leaves clean.
flowchart LR
subgraph Sources["Profile Sources"]
HR["HR system"]
AD["Active Directory"]
CT["Contractor system"]
end
subgraph OktaZone["Okta"]
MT["Matching rules"]
PR["Priority and sourcing rules"]
UD["Universal Directory profile"]
end
subgraph Apps["Downstream Apps"]
A1["Email suite"]
A2["Chat tool"]
A3["Sales CRM"]
end
HR -->|"Import"| MT
AD -->|"Import"| MT
CT -->|"Import"| MT
MT --> PR
PR --> UD
UD -->|"Provision and update"| A1
UD -->|"Provision and update"| A2
UD -->|"Provision and update"| A3
The components, one by one
Profile sources
HR systems, directories, and other apps that Okta can import people from.
Matching rules
The logic that decides two incoming records are the same person, so only one profile exists.
Priority order
The ranked list of sources that settles who wins when several sources claim one person.
Attribute sourcing
Optional settings that pick a source for individual attributes, rather than the whole profile.
Universal Directory
Okta’s single profile per person, which is the one version everything else reads.
Downstream apps
Apps that receive profile data through provisioning, and group rules that act on it.
Why one profile matters
Apps do not care how many sources a company has. They want one trustworthy answer. By collapsing many voices into one profile, Okta protects every connected app from the confusion. This is the biggest gift of a well-ranked design: the mess stays upstream, and the clean answer goes downstream.
A newspaper receives reports from many reporters, then an editor combines them into one story. Readers never see the disagreements between reporters. They see the final article. Okta’s priority rules play the editor’s role for identity data.
Draw this three-layer picture for your own company before you configure anything. Naming every source and every app on one page often reveals forgotten systems and hidden conflicts.
5Types of Profile Sources
Not every source deserves the same trust. Knowing each type helps you decide where it belongs in the ranking.
Sources differ in how often they change, how carefully their data is kept, and how complete they are. A good ranking reflects these real strengths. The top spot should go to the system that is most authoritative about the person, not the one that is easiest to connect.
| Source type | Typically good at | Typically weak at |
|---|---|---|
| HR system | Employment facts: hire date, job title, manager, department, employment status. | Technical data such as login names, which are usually created elsewhere. |
| Directory such as Active Directory or LDAP | Login names, group membership, and technical account details. | Business facts, which are often typed by hand and may be out of date. |
| Contractor or vendor management system | Contract dates and sponsor information for non-employees. | Broad coverage, since it only knows its own people. |
| Other business apps with import | Special facts such as sales region or student year. | Authority, since the app may copy data from somewhere else. |
| Okta itself | Preferred names, recovery details, and attributes with no other home. | Knowing about hires and leavers without being told. |
Qualities of a strong primary source
Authoritative
It is where changes truly begin, such as a hire entered by HR, not a copy of someone else’s data.
Timely
New hires and leavers appear quickly, not weeks after the fact.
Complete
It covers the people you need to manage, with the attributes you plan to use.
Clean
Its values are consistent, with a stable unique identifier for each person.
Authority beats convenience
Teams are often tempted to rank the directory first, simply because it was connected first and everyone trusts it. But if titles in the directory are copied by hand from HR, the directory is a second-hand source. Ranking the true origin first means mistakes are fixed at the root, not patched downstream.
If you want to know someone’s birthday, you check their birth certificate, not a card a friend wrote from memory. Both may agree most of the time. When they differ, you know which one to trust, because one is the original and the other is a copy.
If System A copies data from System B and System B copies data back from System A, ranking them in either order hides the loop but does not fix it. Find where a change is truly first entered, and make that system the top source.
6Attribute Design: Building a Profile Worth Ranking
A ranking is only as good as the attributes it protects. Good profile design makes every later decision easier.
A profile is made of attributes, and each attribute has a name, a type, and a purpose. Okta provides a standard set of base attributes such as first name, last name, email, and login. It also lets administrators add custom attributes for anything specific to the company, such as cost center, building, or contractor sponsor. Every attribute you add is another thing that sources may write and apps may read.
Questions to ask before adding an attribute
Who will read it?
If no app, policy, or report uses the attribute, it is clutter and a privacy burden.
Who will write it?
Name the one source that owns the value, before the first import runs.
What shape is the value?
Text, number, true or false, or a list. Pick the shape that matches the real data, so comparisons work.
How clean is the source?
If the source data is messy, plan a cleanup first, or the mess will spread to every app.
Naming and consistency
Short, clear names save a great deal of confusion. A name such as “costCenter” tells the next administrator what the field holds. A name such as “custom1” tells them nothing. Agree a naming style, write it down, and apply it to every new attribute. Consistent names also make mappings and group rules easier to read.
Free text versus controlled values
Free text invites variation. One manager types “Finance”, another types “finance dept”, and a third types “FIN”. Group rules that look for an exact value will miss two of the three. Where possible, let the owner source supply a controlled list of values, and convert odd spellings into the standard form at the mapping step.
| Attribute kind | Example | Design advice |
|---|---|---|
| Identifier | Employee number | Stable, unique, never reused, and owned by HR. |
| Access-driving | Department, job family, employment type | Protect strictly. Only the owner source may write it. |
| Contact detail | Mobile phone, office location | Allow self-service edits where useful, and keep them out of access rules. |
| Personal preference | Preferred name | Owned by Okta, so that imports never erase it. |
| Technical | Login name, technical email | Owned by the directory or Okta, built from a clear rule. |
Designing attributes is like designing a paper form. If you add too many boxes, nobody fills them in properly. If the boxes are vague, people write anything. A short, clear form with one person responsible for each box gives you data you can trust.
Mark each attribute in your documentation as access-driving or not. The access-driving ones need the tightest ownership and the closest monitoring.
7How Okta Decides Who Wins
This chapter walks through the decision in simple steps. The exact screens vary, but the logic is steady.
When a source sends a record to Okta, Okta does not simply paste it onto a profile. It first asks which person this record describes. Then it asks how much authority this source has for that person. Only then does it decide which values to keep. The questions are always asked in this order.
flowchart TD
R["Record arrives from a source"] --> M{"Does it match an existing user?"}
M -->|"No"| C["Create a new user from this source"]
M -->|"Yes"| P{"Is this source the top priority for this user?"}
P -->|"Yes"| U["Apply this source's values as allowed by mappings"]
P -->|"No"| L["Keep higher source values and only fill gaps if allowed"]
C --> D["Profile stored in Universal Directory"]
U --> D
L --> D
The decision, step by step
A record arrives
An import run, a change event, or an administrator action brings new information about a person.
Okta looks for a match
Using your matching rules, such as an employee number or email, Okta decides whether this person already exists.
Okta checks the ranking
If the person exists, Okta compares the sending source with the sources that already know this person.
Mappings decide the details
Even for the winning source, only the attributes you mapped and allowed to update are changed.
The profile is saved and passed on
The final profile is stored, and provisioning sends relevant changes to downstream apps.
Think of airport border staff. They first check who you are by matching your face to your passport. Then they check what type of visa you hold, which decides how much authority you have. Only then do they decide what you may do. Identity first, authority second, action third.
Details such as what happens when the top source removes a person, or how blank values are treated, depend on your settings and Okta version. Test these cases with sample users before you rely on them.
8Import and Matching: Linking Records to One Person
Priority only works if Okta correctly knows that two records are the same human. Matching is the foundation.
An import is the process of bringing records from a source into Okta. Each record describes one person in the source’s own words. Before Okta can rank anything, it must decide whether that record belongs to a person it already knows. This decision is called matching.
Matching uses rules you choose. A rule might say “two records are the same person if their employee number is equal”, or “if their email addresses are equal”. When a rule finds a match, Okta links the new record to the existing profile instead of creating a second one. When no rule finds a match, Okta may create a new profile.
Good identifiers and bad identifiers
| Identifier | Strength | Risk |
|---|---|---|
| Employee number | Stable, unique, and owned by HR. Often the best choice. | Some contractors or older accounts may not have one. |
| Email address | Familiar and often present in every system. | Changes after a marriage, rebrand, or domain move, and shared mailboxes can collide. |
| Username | Easy to read. | Reused over time, so a new hire may inherit an old username. |
| Full name | Always present. | Not unique. Two people can share a name, so avoid it for matching. |
What a wrong match looks like
If matching is too loose, two different people are merged into one profile. One person’s title and manager then appear on another person’s account, which can grant the wrong access. If matching is too strict, the same person appears twice, and each profile fights for its own apps. Both problems look like priority problems, but the real cause lies in matching.
Good habits for matching
Pick one shared identifier
Agree a value that exists in every source and never changes, ideally created by HR.
Clean the identifier first
Remove spaces, fix leading zeros, and make sure each value is unique inside each source.
Test with a small group
Import a small sample, then read the results to see which records linked and which stayed apart.
Review exceptions
Check records that did not match. They often reveal data errors that need fixing at the source.
Matching is like a library keeping one card per reader. If a reader borrows from two branches with slightly different spellings of their name, the library must link both loans to one card. A card number printed on every borrowing slip makes this easy. A name alone does not.
Do not try to tune the priority order while matching is wrong. You will chase symptoms. Get the same person linked correctly first, then rank the sources.
9Source Priority and Attribute-Level Sourcing
Two related tools help you control who wins. One works on the whole person, and the other works on single attributes.
Source priority works at the level of the person. It ranks the systems that know a person, so that one of them leads. Attribute-level sourcing works at the level of a single attribute. It lets you say that the email should come from one source, the department from another, and the preferred name from Okta itself.
| Question | Source priority | Attribute-level sourcing |
|---|---|---|
| Works on | Whole person and the ranking of sources. | One attribute at a time. |
| Best for | People who exist in several systems with overlapping data. | Mixing the strengths of several systems in one profile. |
| Simplicity | Simple to explain: one ranked list. | More flexible, but more rules to track. |
| Main risk | A top source that is weak on some attributes. | A confusing patchwork if the choices are not documented. |
A mix-and-match example
Suppose HR is the best source for job title, manager, and employment dates. The directory is the best source for the login name and technical email. Okta is best for the preferred display name, because people know how they want to be called. Attribute-level choices let each system speak where it is strongest, while priority settles disputes over any attribute you did not assign.
Employment facts
Title, department, manager, hire date, and employment status.
Technical identity
Login name, technical email, and security group membership.
Personal choices
Preferred name, pronunciation notes, and self-service contact details.
When to use which
Start simple. If one system is strong across the board, a clean priority order may be all you need. When a single system is weak at a few attributes, add attribute-level choices only for those. Every extra rule is something a future administrator must understand, so each one should earn its place.
A film crew has a director who has the final say on the whole movie. That is priority. But the costume designer alone decides what actors wear, and the sound engineer alone decides the sound mix. That is attribute-level ownership. Both ideas can live together, as long as everyone knows which is which.
Keep a one-page table listing each important attribute, its source, and its owner. Treat it as the single reference when anyone asks why a value looks the way it does.
10Mappings: Translating Between Systems
Mappings control exactly which fields move, in which direction, and whether they overwrite what is already there.
Each source names its fields differently. One system says “Surname”, another says “Last Name”, and a third says “sn”. A mapping is a rule that links a field in the source to a field in the Okta profile. Without a mapping, a value simply does not travel, no matter how highly ranked its source is.
Priority decides the winner, mappings decide the details
This point surprises many people. A source can be the top priority and still change nothing if its mappings are empty. In the same way, a lower-ranked source with many mappings can fill gaps that the top source never maps. Always read priority and mappings together when you investigate a value.
Questions to answer for every mapping
Which way does it flow?
From the source into Okta, or from Okta out to an app. Many mappings only make sense in one direction.
Should it replace existing values?
Some mappings update on every import, others only fill a blank value on first creation.
What if the source value is empty?
Decide whether an empty value should erase the Okta value or be ignored. Test the real behavior in your setup.
Does the value need reshaping?
Dates, phone numbers, and names may need standard formats so that every app can read them.
Transformations in simple terms
Sometimes a value must be changed on the way in. For example, a source may store a full name in one field, while Okta wants first and last name separately. Or a department code such as “FIN” may need to become “Finance”. Okta provides ways to transform values during mapping. Keep these transformations small and well documented, because hidden logic is the hardest to debug later.
| Mapping situation | Risk if ignored | Good practice |
|---|---|---|
| Two sources map the same attribute | Values depend on which source wins, so results look random. | Map each important attribute from one owner source only. |
| Source sends blank values | Good values may be erased. | Test blank handling, and fix source data where possible. |
| Different formats for dates or phones | Downstream apps reject or misread them. | Standardize formats at the mapping step. |
| Mapping copied from a template | Fields that your company never uses clutter the profile. | Map only what apps and policies need. |
Mapping is like a translator at a meeting. The most senior person in the room may speak, but if the translator has no phrasebook for a topic, nobody else understands. Seniority and translation are separate. You need both for a message to arrive.
An attribute may be mapped from a lower-ranked source and also be editable by people in Okta. Both can quietly overwrite your intended value. When a field keeps changing, list every writer, not only the top source.
11Common Conflict Scenarios
Real life is messier than a diagram. Here are the situations that most often force a priority decision.
Each scenario below shows a common clash and the thinking that resolves it. The companies are fictional teaching examples, but the patterns appear again and again.
Scenario 1: HR and the directory disagree on a title
HR says “Senior Analyst” and the directory says “Analyst”. A person was promoted last month, HR updated at once, and the directory was never changed. Ranking HR above the directory for the title means the correct value wins every time, and the stale one cannot flip it back.
Scenario 2: A contractor becomes an employee
A contractor in the vendor system is hired full time. Now the vendor system and the HR system both describe the same person. A priority order that puts HR above the vendor system lets the new employee record take the lead, while the old contractor record stays as a quiet, lower-ranked source.
Scenario 3: A rehire returns after two years
A former employee comes back. The HR system may issue a new employee number, or reuse the old one. If matching relies on a reused number, the person may link back to their old profile with old data. Decide in advance how rehires should match, and test that case with a sample.
Scenario 4: Two HR systems after a merger
Two companies merge, and each keeps its own HR platform for a year. Both systems are authoritative for their own people. Here the sources rarely overlap, so priority matters less than clear matching. For the few people present in both, such as a shared executive, a documented ranking removes the confusion.
Scenario 5: Preferred name versus legal name
HR stores the legal name, but the person goes by a different name at work. If HR is allowed to overwrite the display name on every import, the preferred name is lost every night. Assign the preferred name to Okta as the owner, and keep the legal name where it belongs.
A simple conflict checklist
Identify the attribute
Which exact field shows the disagreement?
List every writer
Which sources, mappings, and people can change it?
Find the true origin
Where is this fact first entered by a human with the authority to enter it?
Make that source the owner
Rank or assign it accordingly, and remove the other writers.
When two witnesses give different accounts, a good investigator asks who was actually there. The witness who saw the event first-hand outranks the one who heard about it later. Profile ranking follows the same instinct: trust the source closest to the original fact.
12Data Flow and the Life of a Profile
Follow one person from hiring to leaving, and watch where the ranking takes part.
Identity teams describe a person’s time at a company in three stages. A joiner is a new hire, a mover is someone whose role changes, and a leaver is someone who departs. At each stage, a source starts the change, Okta applies the priority rules, and apps receive the result.
sequenceDiagram autonumber participant H as HR system participant D as Directory participant O as Okta Universal Directory participant A as Downstream apps H->>O: New hire record arrives O->>O: Match to a person and apply priority O->>D: Provision the directory account D-->>O: Account details imported back O->>A: Provision apps based on profile and groups H->>O: Promotion changes title and manager O->>A: Updated profile values flow out H->>O: Termination date reached O->>A: Deactivate access
Stage by stage
Joiner
HR enters the hire. Okta creates the profile from the top-ranked source, then provisions the directory account and apps.
Mover
HR updates the title or manager. Because HR ranks first for those attributes, Okta accepts the change and passes it to apps. Group rules may add or remove access.
Leaver
HR sets an end date or status. Okta follows the leading source and begins deactivation, closing apps in a controlled way.
Rehire
If the person returns, matching decides whether the old profile is reactivated or a new one is created. Plan this on purpose.
Timing is the hidden detail
Changes do not appear in Okta the instant they happen in the source. They arrive when the next import or event runs. A promise that “access ends at once” is only as true as your import schedule. Write down the expected delay at every stage, and make sure that what HR, security, and managers expect matches what the system does.
Think of a school record that follows a student for years. The registrar creates it on the first day, updates it with each year’s class, and closes it on graduation. Many teachers read it, but only the registrar writes the official facts. Priority is the registrar rule for identity.
Keep one test user for each stage: a new hire, a promotion, a leaver, and a rehire. Run them through your setup after every change to priority or mappings.
13Deactivation and Fallback Behavior
The most sensitive moment in any ranking is when the top source stops speaking for a person.
A top-ranked source might remove a person because they left the company. It might also lose the person by mistake, for example after a bad data load. Okta cannot tell these cases apart by itself. What happens next depends on your settings, so this is the part to understand and test with the most care.
Three questions to settle in advance
Does the user deactivate?
When the leading source marks a person as gone, should Okta deactivate their profile and close access?
Does a lower source take over?
If a lower-ranked source still lists the person as active, should it keep the profile alive or be ignored?
What about the data?
Should the last good values stay in place, or should some attributes be cleared?
Why the choice matters
If a leaver is still active in a lower-ranked source and that source can keep the profile alive, a person who has left may retain access. That is a security risk. On the other hand, if a data load mistake in the top source deactivates thousands of people at once, that is an outage. Both dangers are real, and the right balance depends on your company and its risk appetite.
Safety nets worth building
Limit bulk changes
Where available, use safeguards that pause an import when an unusually large number of users would be deactivated.
Alert on spikes
Send a notice to the identity team when deactivations jump well above the normal daily number.
Review lower sources
Regularly check which people are active only in a lower-ranked source. Many are forgotten accounts.
Document the rehire path
Know how a returning person is reactivated, and who approves it.
A hotel’s front desk marks a guest as checked out. If the cleaning team’s list still shows the room as occupied, the guest’s key card might keep working. Hotels solve this by letting the front desk list overrule all others, and by checking exceptions each morning.
Use a test source and a few sample users to practice a leaver, a mistaken removal, and a rehire. Seeing the real behavior once is worth more than reading about it ten times.
14Profile Sources Versus Authentication Sources
Two different questions are easy to mix up. Where does a person’s data come from, and where is their password checked?
A profile source feeds the identity card. An authentication source judges the password. These can be the same system, but often they are not. A company might take profile data from its HR system and still check passwords in Active Directory. That is perfectly normal and often the best design.
| Question | Profile source | Authentication source |
|---|---|---|
| What does it decide? | The values on the person’s profile. | Whether the typed password is correct. |
| Who can be one? | HR systems, directories, apps, or Okta. | Okta itself, or a connected directory. |
| What does ranking affect? | Which source’s attributes win. | Nothing directly. Ranking is not about passwords. |
| Typical example | HR is top priority for title and manager. | Active Directory checks the password. |
Why the difference matters
If you change the priority order, passwords do not move. If you change where passwords are checked, the profile does not move. Treating them as one thing leads to wrong fixes, such as reordering sources to solve a sign-in problem. When sign-in breaks, look at the authentication path. When a value is wrong, look at the profile sources.
Wrong title in an app
Look at profile sources, mappings, and priority.
Cannot sign in
Look at the authentication path, policies, and password status.
Your passport shows who you are, and your boarding pass shows whether you may board. Both are needed to fly, but they come from different offices. If your boarding pass is wrong, changing your passport photo does not help.
Draw two separate diagrams for your company: one for where profile data flows, one for where passwords are checked. Seeing them apart prevents many wrong guesses during incidents.
15Provisioning Outward to Apps
The clean profile is only useful if apps receive it. Here is how the outward journey connects to the ranking.
Once Okta holds one trusted profile, it can create and update accounts in downstream apps. This outward step is called provisioning. The app mappings decide which Okta attributes go to which app fields. Because every app reads from the same ranked profile, they all see consistent values.
Why ranking helps apps
Without ranking, two apps could receive different titles for the same person, depending on when each update ran. With ranking, a change in the winning source reaches every app in the same form. This consistency matters for reports, approvals, and audits, which often rely on department or manager data from several apps at once.
Group rules as a second consumer
Group rules read profile attributes and place people in groups. App access then follows group membership. This makes profile accuracy a security topic, not merely a tidiness one. If the department flips between two values, group membership flips with it, and so does access.
App profile mappings
Define which Okta values reach each app and in which format.
Group rules
Turn attribute values such as department into group membership and app access.
Directory write-back
Okta may write values into a directory account, so that on-premises systems share the same data.
A town’s census office publishes one official population number that schools, hospitals, and road planners all use. If each department counted by itself, plans would clash. One ranked source for the number keeps every plan in step.
If Okta writes a value out to a directory, and that directory is also a profile source that sends the same field back, you can create a loop. Decide a single direction for each attribute and protect it with the right mapping.
16Group Rules and Profile-Driven Access
The clearest reason to care about profile priority is what happens next: groups, and the access that follows them.
A group is a named list of people, such as “Finance Team”. Instead of giving an app to forty people one by one, you give it to the group. A group rule goes one step further. It reads attributes from profiles and places people into groups automatically, for example “everyone whose department equals Finance joins the Finance Team”. When the profile changes, group membership follows.
The chain of trust
A source states a fact
HR records that a person works in Finance.
Priority picks the winner
Okta keeps HR’s value as the department, because HR ranks first for it.
A group rule reads the value
The rule places the person in the Finance group.
Apps follow the group
The accounting tool is assigned to the group, so the person gets it without a ticket.
Every link in this chain depends on the one before it. If the department flips between two values because two sources are fighting, the person joins and leaves groups with it. Apps are added and removed without any human decision. This is why priority is a security matter, not just a tidiness matter.
Making rules robust
Use stable values
Base rules on attributes with a single owner and a controlled list of values.
Handle blanks on purpose
Decide what a blank department should mean. A blank should not silently grant or remove important access.
Keep rules readable
Short rules with clear names are easier to audit than clever, long ones.
Review membership
Ask group owners to confirm that members still need their access, a few times a year.
When profile data is late
New hires are the delicate case. If the profile is created before the HR source has supplied the department, group rules may find a blank and place the person in no group, or in a default group. Plan for this gap. Some teams delay account creation until key attributes arrive, while others give a minimal safe set of access first and add more once HR data lands.
A concert wristband color is decided by the ticket type. Staff at each door only look at the color. If the ticket system prints the wrong color, the wrong person walks into the backstage area. Group rules are the wristband readers, and profile priority decides which ticket data is trusted.
A group rule that gives broad access when an attribute is blank can hand out access by accident. Test every rule with blank, odd, and misspelled values before you rely on it.
17Designing Your Priority Order
A good order is not guessed. It comes from a short, repeatable method.
Designing priority is mostly an exercise in listening. You gather facts about each source, you ask who truly owns each piece of data, and you rank accordingly. The technical clicking at the end is small compared with the thinking before it.
A five-step method
Inventory the sources
List every system that holds people data, including forgotten ones such as old vendor tools or test directories.
Rank the attributes that matter
Pick the attributes that drive access and reporting, such as department, manager, status, and email.
Find each true origin
For each attribute, discover where a human first enters it with authority.
Write the order and the exceptions
Create the ranked list, then list the attributes where another source or Okta should own the value.
Test, then roll out in waves
Try the design on a small group, review results, and widen the scope slowly.
A worked example
| Rank | Source | Why it sits here |
|---|---|---|
| 1 | HR system | It is the origin of employment facts, so it leads for employees. |
| 2 | Contractor system | It is the origin for non-employees, so it leads for contractors. |
| 3 | Directory | Strong for technical data, but a copy of business data. |
| 4 | Other apps | They add special attributes but rarely hold authority over identity. |
In this example, the directory still owns the login name through an attribute-level choice, and Okta owns the preferred display name. The ranked list handles everything else. Notice how three kinds of rule combine into a design that is easy to describe in a few sentences.
Designing priority is like writing seating rules for a large family dinner. You decide who sits at the head of the table, who carves, and who pours the drinks. Without the plan, everyone reaches for the same dish. With the plan, dinner flows.
If you cannot explain your priority order in two minutes to a new colleague, it is probably too complicated. Simplify before you build.
18Hybrid Designs: HR, Directory, and Okta Together
The most common real-world setup combines an HR system, a directory, and Okta. Here is how the roles usually divide.
Many organizations still depend on Active Directory for computers, file shares, and older applications. They also run an HR system and want Okta as the front door for cloud apps. The three systems each have a natural job. HR knows the employment facts, the directory holds the technical accounts, and Okta holds the unified profile and handles sign-in and app access.
A typical division of labor
| System | Main role | Typical direction of data |
|---|---|---|
| HR system | Origin of employment facts and lifecycle events. | Into Okta. |
| Okta | Unified profile, access rules, and sign-in front door. | Receives from HR, sends to directory and apps. |
| Directory | Technical accounts for on-premises systems. | Receives accounts from Okta, may send technical values back. |
| Cloud apps | Where people do their work. | Receive from Okta. |
Two popular patterns
HR-driven, directory downstream
HR leads. Okta creates and updates directory accounts. The directory is mostly a consumer, with a few technical attributes flowing back.
Directory-driven for existing staff
The directory already holds the staff and remains the source of record for them. Okta imports from it, and HR is added gradually for the attributes it knows best.
Pattern B is common during a long transition. A company may begin with the directory as the top source because that is where its data lives today. Over time, it moves HR to the top for business attributes as the quality of HR data and integration improves. This step-by-step approach lowers risk, and the priority order is the tool that makes each step controlled.
Avoiding the write-back loop
In a hybrid design, a value can travel in a circle. Okta writes a department into the directory. The directory is also a source, so it sends the same department back to Okta. If both directions are active for the same field, any delay or format difference can cause flapping. Choose one direction per attribute, and make the other mapping read-only or switched off.
Picture a company newsletter that is copied to an office notice board, and the notice board is photographed and sent back to the newsletter team as a new tip. Soon nobody knows which version is the original. One-way flow for each piece of news keeps the story straight.
Example: A staged move to HR-first
Northwind Traders starts with Active Directory as the top source, since it already holds all 6,000 employees. In stage one, the HR system is added below it as a source for hire dates only. In stage two, HR is promoted to own title and manager. In stage three, HR becomes the top source for all employment facts, and the directory turns into a downstream consumer. Each stage is tested with a small group before it is widened.
Write down the target end state on day one, even if you will take years to reach it. Every interim step should move toward that picture, and never away from it.
19Governance and Data Ownership
Ranking is a technical setting, but keeping it healthy is a people job.
Governance means the habits and records that keep a design correct over time. A priority order is not set once and forgotten. New sources appear, old ones are retired, and business rules change. Without governance, the order slowly drifts away from reality.
Who owns what
HR team
Owns the accuracy of employment facts and the timing of hires, moves, and exits.
Directory team
Owns login names, technical groups, and the health of the directory.
Identity team
Owns the Okta configuration, the ranking, the mappings, and the documentation.
Security and audit
Reviews that access matches policy and that leavers lose access in time.
Habits that keep the design healthy
Keep the attribute table current
Update the one-page list of attributes, sources, and owners whenever something changes.
Use change control
Record who changed the order or a mapping, when, and why. Ask for a second pair of eyes on risky changes.
Review regularly
Once or twice a year, revisit the list of sources and confirm that each still earns its rank.
Retire sources cleanly
When a system is decommissioned, remove it from the ranking on purpose, and check what that does to the people it described.
A house needs regular care even when nothing seems wrong. A leaking pipe is easy to fix when you notice the first drip, and expensive after a year. Reviewing your ranking twice a year is the equivalent of checking the pipes.
If only one person understands your priority design, you have a risk. Write it down so that anyone on the identity team can read and maintain it.
20Security and Privacy
Profile data decides who gets access to what. That makes the ranking a security control as well as a data tool.
Many access rules in Okta are built on profile attributes. A group rule may say “everyone in Finance gets the accounting app”. If someone can change their department value, they may be able to change their own access. So the question “who can write this attribute?” is also the question “who can grant access?”. Priority and ownership help answer it safely.
Security risks tied to profile sources
Self-editable sensitive fields
If people can edit fields that drive access, such as department or manager, they could widen their own access.
Weak lower-ranked source
A poorly protected source that can fill gaps may be used to plant false values.
Over-privileged connection
An import account with more rights than it needs gives attackers a bigger prize.
Unreviewed admin changes
Anyone who can reorder sources or edit mappings can change many profiles at once.
Protective habits
Lock down access-driving attributes
Make sure only the owner source can change values that group rules and policies depend on.
Use least privilege for connections
Give each import connection only the read or write rights it truly needs.
Protect administrator roles
Limit who can edit sources and mappings, and require strong sign-in for them.
Watch for unusual changes
Alert on large batches of profile changes or sudden shifts in department and manager values.
Privacy: collect less, protect more
Every attribute you import is personal information about a real person. A good privacy rule is data minimization, which means collecting only what you need. Fewer attributes mean less to protect and less to explain to a regulator. Review the list of imported fields at least once a year and drop what no app or policy uses.
A building’s access list is only as safe as the people allowed to edit it. If anyone can write their name on the list, the lock on the door does not matter. Controlling who can change the profile is like controlling who holds the pen.
A single change to the priority order can rewrite thousands of profiles. Give it the same care as a change to a firewall rule: review it, schedule it, and keep a record of it.
21Monitoring, Logging, and Metrics
You cannot manage what you cannot see. A few steady signals tell you whether your ranking is working.
Monitoring means watching the health of a system so that you learn about trouble before your users do. Logging means keeping a written diary of what the system did. For profile sources, the important question is always the same: did the right source change the right attribute at the right time?
Where to look
| Source of information | What it tells you |
|---|---|
| Okta System Log | Records of imports, profile updates, user creation, and deactivation, with the reason and the actor. |
| Import results | Counts of users created, updated, matched, and skipped in each run. |
| Profile history of a user | Which source or action last changed a given value. |
| Source system logs | What the HR system or directory sent, and when. |
| Downstream app logs | Which updates actually reached each app. |
Metrics worth tracking
Import duration and size
A sudden jump in either often points to a data problem at the source.
Unmatched records
Records that find no match may be genuine new people, or signs that matching is broken.
Deactivations per day
A spike can mean a mass exit, or a mistaken source load. Alert and check.
Value flapping
Attributes that change many times a day are a sign that two writers are fighting.
Catching flapping early
Flapping is the classic symptom of missing or weak ranking. Searching the log for the same user and attribute changing repeatedly in a short window quickly reveals it. When you find one, look for the pair of sources or mappings that are writing the same value, and remove one of them.
A smoke detector does not prevent a fire, but it gives you minutes instead of hours. Monitoring your imports and profile changes is a smoke detector for identity data. The first flicker is the cheapest moment to act.
Copy important log data to your own long-term storage. Built-in history is limited, and auditors may ask for records from many months back.
22Data Quality, Compliance, and Auditing
When auditors visit, they ask who had access, who approved it, and when it ended. Clean, well-sourced profiles make the answers easy.
Data quality means that profile values are accurate, complete, consistent, and timely. Compliance means following rules set by law, customers, or the company itself. The two are connected. Rules about access can only be shown to be followed if the data that drives access is trustworthy. Ranking your sources is one of the most direct ways to make that data trustworthy.
The four qualities of good data
Accurate
The value matches reality. A title matches the person’s real job.
Complete
Important fields are not blank for the people who need them.
Consistent
The same fact looks the same everywhere, with standard spellings and formats.
Timely
Changes arrive soon enough that access never lags far behind reality.
Evidence auditors often ask for
| Question an auditor asks | Where the answer comes from |
|---|---|
| Who has access to this sensitive app? | Group membership, and the profile values that put people in the group. |
| How is access removed when someone leaves? | Your documented leaver flow, with timestamps from the HR source and Okta. |
| Who can change the data that drives access? | The ownership table, and the roles allowed to edit sources and mappings. |
| Can you show what changed and when? | The Okta System Log and the profile history for the user. |
| How do you keep personal data to a minimum? | The reviewed list of imported attributes and the reasons for each. |
A data quality routine
Measure
Count blanks, duplicates, and odd values in the attributes that drive access.
Trace to the source
For each problem, find which source created it and tell the owner team.
Fix at the root
Correct the data where it begins, so it stays fixed after the next import.
Repeat on a schedule
Run the checks monthly, and report the numbers to the owners.
A restaurant inspector wants to see clean kitchens, labeled ingredients, and temperature logs. The dull records are the proof. Clean profile data, ownership tables, and change logs are the identity team’s temperature logs.
Built-in log history may be shorter than your audit period. Check retention and copy key records to your own long-term storage before you need them.
23Troubleshooting Walkthroughs
Instead of memorizing errors, learn a method: ask who wrote the value, then work backwards.
Almost every profile problem is a version of “this value is wrong” or “this person is missing or duplicated”. The method for both is similar. Find the exact attribute or person, list every writer, and check the order of authority. Always ask what changed recently, since most surprises follow a change.
Walkthrough 1: A value keeps changing back
Read the history
Open the user’s recent log entries and see which source or action wrote the value each time.
Name the two writers
Flapping nearly always involves two. They may be two sources, or one source and a person editing in Okta.
Choose the owner
Decide which writer should own the attribute, based on where the fact is truly entered.
Silence the other writer
Remove the mapping, change the attribute source, or stop the edits. Then watch the next few runs.
Walkthrough 2: The same person appears twice
Matching identifier
Do both records carry the same stable identifier, spelled the same way?
Matching rule
Is the rule too strict, for example case-sensitive or space-sensitive?
Source data
Is the identifier blank or different at the source? Fix it there.
Cleanup plan
Decide which profile survives and what happens to the other, before you merge or deactivate anything.
Walkthrough 3: A leaver still has access
Check the top source
Is the person marked as ended in the leading source, and when did that change arrive?
Check lower sources
Is another source still listing them as active and keeping the profile alive?
Check timing
Has the next import run yet? A delay may explain it.
Act now, fix later
Deactivate the user directly for urgent cases, and then correct the root cause so it does not repeat.
Walkthrough 4: A new hire got the wrong apps
Start by reading the profile values that group rules use, such as department and job family. A wrong or blank value usually explains the wrong groups. Trace that value back to its source and mapping. If the source was late with the hire record, the profile may have been created from a lower-ranked source with incomplete data. Fix the timing or the order.
When a clock shows the wrong time, you check whether someone keeps changing the hands before you replace the battery. Profile troubleshooting is the same. Find who touched it last, then decide who should be allowed to touch it at all.
Keep a short runbook with these four walkthroughs. During an incident, a checklist beats memory every time.
24Advantages, Disadvantages, and Trade-offs
Every design has a price. Here is an honest scorecard for ranking profile sources.
Advantages
- One trusted profile per person, which every app can rely on.
- Fewer mystery changes, because writers have a clear order.
- Safer access rules, since group rules read stable values.
- Easier audits, because the source of every value can be explained.
- Smoother mergers, since new sources can be added to the ranking.
- Clean downstream apps, with no need for each to settle conflicts.
Disadvantages
- It needs upfront thinking and agreement between several teams.
- A weak top source can spread its mistakes across every app.
- Complex attribute-level choices become hard to remember.
- Changes arrive on the import schedule, not instantly.
- Mistakes in ranking can rewrite many profiles at once.
- It depends on good matching, which needs clean identifiers.
Key trade-offs in plain words
| Decision | One side | Other side |
|---|---|---|
| Simple order versus attribute-level control | A single ranked list is easy to explain and maintain. | Per-attribute choices fit real data better but add rules to track. |
| Strict ownership versus flexibility | Strict ownership prevents fights and abuse. | Flexibility lets teams fix data quickly but invites flapping. |
| Frequent imports versus light load | Frequent imports keep data fresh and leavers closed quickly. | Rare imports are lighter but leave a wider gap for stale data. |
| Strong bulk-change safeguards versus speed | Safeguards stop disasters from bad data loads. | They may pause legitimate large changes such as year-end reorganizations. |
Choosing a strict ownership model is like keeping one master key for a building, held by one trusted person. It is safer than copies for everyone, but it means the key holder must always be reachable. The trade-off is convenience for safety.
For companies with more than one people system, the benefits clearly outweigh the costs. The main weakness is rarely the feature itself. It is usually unclear ownership, weak matching, or a lack of monitoring.
25Design Patterns and Anti-patterns
A pattern is a proven way of solving a repeating problem. An anti-pattern is a popular mistake.
Patterns that work
HR first for employees
Rank the HR system at the top for employment facts, and let it drive hires, moves, and exits.
One owner per attribute
Name a single owner for each important attribute and map it from that owner only.
Okta owns personal choices
Let people control preferred name and personal contact details inside Okta.
Stable shared identifier
Use an employee number or similar value to match records across every source.
Lower sources fill gaps only
Allow secondary sources to supply values that the top source does not hold, and nothing more.
Documented and reviewed
Keep the order, the exceptions, and the owners written down and reviewed twice a year.
Anti-patterns to avoid
What people do
They connect several sources, give them all the same authority over the same attributes, and hope the last import wins.
Why it hurts
Values flap, group membership changes by itself, and nobody can explain why a person has certain access.
Better approach
Rank the sources and name one owner for each important attribute.
What people do
They match people by name or by an email address that can change, because it was the easiest field to use.
Why it hurts
Different people get merged, or the same person is split into two profiles. Priority then appears to misbehave.
Better approach
Match on a stable identifier owned by HR, and clean it at the source.
What people do
They rank the directory first because it was connected first, even though its business data is copied by hand from HR.
Why it hurts
Stale titles and managers win over correct ones, and the true source cannot correct them.
Better approach
Rank by true origin of the data, not by who connected first.
What people do
They change the ranking in production on a Friday afternoon with no test users and no rollback plan.
Why it hurts
Thousands of profiles may change at once, and nobody knows how to undo it.
Better approach
Test with sample users, schedule the change, and write the rollback steps before you begin.
26Best Practices and Common Mistakes
A short field guide of habits that save time and avoid late-night incidents.
Best practices, in order of when you meet them
Map the people systems first
Draw every source and every consumer on one page before changing a setting.
Agree ownership with the business
Hold a short meeting with HR, directory, and security owners, and write down who owns which attribute.
Clean the data at the source
Fix identifiers, blanks, and inconsistent values where they begin.
Pilot with a small group
Import a small sample, inspect each profile, and review what changed.
Roll out in waves
Extend to more groups slowly, watching logs after each step.
Document and review
Keep the order and exceptions in a runbook, and review them on a schedule.
Mistakes that appear again and again
Forgetting the hidden writer
A value flips because people can still edit it in Okta, or because a forgotten app is still mapped to write it. List every writer before you blame the ranking.
Skipping the rehire test
A returning employee is matched to an old profile with old groups and old access. Always test the rehire path with a sample.
Ignoring blank values
A source sends empty fields and erases good data. Test how blanks are treated, and fix empty values at the source.
Treating priority as a one-time setting
The design was perfect two years ago, but three systems have since been added. Schedule regular reviews.
After every change to a source, mapping, or order, run your four test users through a full cycle. Small checks catch small problems.
27Changing Priorities Safely
Sooner or later you will need to move a source up or down. This chapter shows how to do it without surprises.
Changing the order is one of the riskiest actions in a profile design, because it can change many profiles in a single run. The goal is to make the change small, visible, and reversible. Common triggers are a new HR system, a merger, a retired directory, or the discovery that the old ranking was wrong.
The safe-change recipe
Describe the change on paper
State which source moves, which attributes are affected, and which people will see different values.
Estimate the impact
Compare values between the old and the new top source, and count how many users would change.
Test in a safe space
Use a preview organization or a small test group where the change can be rehearsed.
Back up what matters
Export or record current profile values and settings, so that you can compare and restore if needed.
Schedule a quiet window
Choose a time when few people sign in and the identity team is available to watch.
Watch and verify
Check the log, sample users, and downstream apps right after the change, and again the next day.
Moving to a new HR system
Replacing an HR platform is a common reason to change the order. A careful approach is to run the new system alongside the old one for a while. Connect it at a lower rank first and compare what it would send. When the values match what you expect, promote it to the top and demote the old system. Retire the old source only after you have checked the people it alone described.
Changing the ranking is like changing the lead singer in a band during a concert tour. You rehearse the new singer in practice, perhaps let them sing one song at a show, and only then give them the whole set. Switching in the middle of the main song without practice makes the audience notice.
Avoid changing the order, the mappings, and the matching rules in the same week. If something breaks, you will not know which change caused it.
28Real-World Usage Scenarios
Here are four common situations where ranking profile sources earns its place. The companies are fictional teaching examples.
Scenario 1: HR-driven identity for a growing company
Northwind Traders makes its HR system the top source for employment facts. A new hire entered by HR appears in Okta, receives a directory account, and gets the right apps by department. A promotion in HR updates the title in every app without a single ticket. The directory still owns the login name, and Okta owns the preferred name.
Scenario 2: A merger with two HR systems
Two companies join and keep both HR systems for a year. Each system is authoritative for its own staff, so most people never overlap. The identity team connects both, matches by a shared identifier, and writes a rule for the handful of people who appear in both. Staff see one sign-in page and one set of apps from day one.
Scenario 3: Contractors who become employees
A technology firm hires many contractors through a vendor system and later converts the best into employees. The ranking puts HR above the vendor system. On conversion, the HR record takes the lead automatically, and the old vendor record quietly becomes a lower-ranked source that can be retired.
Scenario 4: A university with students, staff, and alumni
A university has a student system, a staff system, and an alumni system. A person may be in all three over a lifetime, and sometimes in two at once, such as a graduate student who is also a teaching assistant. A clear order and matching by a lifelong identifier let the right profile lead at each stage.
Public facts that give context
Many large organizations run several people systems at once, usually a human resources platform, a directory, and a handful of specialized tools. Okta, founded in 2009, built its business on connecting such systems to cloud applications, and its Universal Directory is designed to hold a single profile per person. The detailed setups of specific customers are not public, so the stories above remain fictional.
29Frequently Asked Questions
Quick answers to the questions that come up most often.
30Summary and Key Takeaways
The whole guide in one place.
Profile source priority is how Okta turns many competing voices into one trusted profile. It ranks the systems that feed Okta, works together with mappings and matching, and can be refined with attribute-level choices. Done well, it removes flapping values, protects access rules, and gives auditors a clear story.
A mental model to carry with you
When any profile question lands on your desk, sort it into one of four buckets. The first bucket is identity: is this the right person, and are the records linked correctly? The second bucket is authority: which source should speak for this fact? The third bucket is plumbing: is the field mapped, allowed to update, and flowing in the right direction? The fourth bucket is timing: has the next import or event actually run yet?
Most confusing situations turn out to be a mix-up between buckets. A duplicated person is an identity problem. A wrong title that keeps returning is an authority problem, often with a hidden second writer. A value that never arrives is a plumbing problem, usually an unmapped or read-only field. A leaver who still has access for a few hours may simply be a timing problem. Naming the bucket first tells you which logs to open and which team to call.
This model also helps when you explain the design to others. Managers care about authority because it is about risk. Data owners care about identity and quality because they are about accuracy. Platform teams care about plumbing and timing because they are about reliability. A good identity architect speaks to all of them, keeps the written ownership table up to date, and treats every change to a source, a mapping, or the ranking with the care it deserves.
Finally, remember the humble purpose behind all this machinery. Behind every profile is a real person who wants to start work on day one, reach the right tools, and lose nothing they need. A ranking that is clear, tested, and documented serves that person quietly, every single day.
Key Takeaways
- One person, one profile. Okta keeps a single profile per person, and priority decides which source speaks first when several systems describe them.
- Rank by true origin. Put the system where a fact is first entered with authority at the top, not the one that was connected first.
- Matching comes before ranking. Use a stable, unique identifier such as an employee number so that the same person is always recognized.
- Mappings decide the details. A top source changes only the fields that are mapped and allowed to update, so read priority and mappings together.
- Keep profile and password separate. Profile sources feed attributes, while authentication sources judge passwords, and each needs its own design.
- Plan for leavers and rehires. Test what happens when the top source removes a person, when a lower source disagrees, and when someone returns.
- Govern and monitor. Document owners, change the order with care, watch for flapping and deactivation spikes, and confirm current behavior in Okta’s documentation.