Directory Integration in Okta: The Basics
A plain-English guide to connecting your company's existing list of people to Okta. Learn what a directory is, how Okta reads it, how sign-in works afterward, and how to keep the whole thing safe and healthy.
Picture a company with five thousand employees. Somewhere inside its offices sits a big, trusted list that says who works there, which team each person belongs to, and what their work password is. That list has been built and fixed over many years. Now the company wants to use dozens of cloud tools such as email, chat, and payroll sites, and it wants each person to sign in to all of them in a simple, safe way.
Nobody wants to type those five thousand people in again by hand. That is exactly the problem that directory integration solves. In this guide you will learn what a directory is, how Okta connects to it, what happens behind the scenes, and how to avoid the common mistakes. No earlier knowledge is needed. Every new word is explained the first time it appears.
1What a Directory Is, in Simple Words
Before we connect anything, let us understand the thing being connected.
A directory is an organized list of the people, groups and devices that belong to an organization. It stores facts about each person, such as a name, an email address, a job title, a manager, and the groups they belong to. It also helps check passwords when someone tries to sign in. In many companies this list is kept on servers inside the company’s own buildings or data centers. The most famous example is Microsoft Active Directory, often shortened to AD. Another common kind speaks a language called LDAP, which stands for Lightweight Directory Access Protocol. A protocol is simply an agreed way for computers to talk to each other.
Think of a school register. It lists every student, their class, their roll number, and which clubs they belong to. When a teacher wants to know whether a student is allowed into the science lab, they check the register. A company directory works the same way, except that the visitors are computers and apps, and the question is “does this person work here, and may they come in?”
What lives inside a directory
Each person in a directory is stored as an entry, also called an object. An entry has attributes, which are the small facts about that person. A first name is an attribute. So is an email address, a department, or a phone number. Entries are arranged in folders called organizational units, or OUs, which usually follow the company’s shape, such as one folder for each office or department.
A directory is not the same as a file folder on your computer. In technology, a directory is a special database designed for fast lookups of people and permissions, and it is built to be read far more often than it is changed.
2Why Companies Need Directory Integration
The pain of two lists is the reason this feature exists.
Imagine that Okta had its own list of users, and the company’s directory had another list. A new person joins, and the help desk adds them to the directory. Someone must also remember to add them to Okta. A person leaves, and someone must remember to remove them from both. Sooner or later, one list gets out of date. A former employee keeps access to a cloud tool for weeks, and a new joiner cannot start work because the second list was forgotten.
Passwords make it worse. If people must keep one password for the office network and another one for Okta, they will forget one of them, reuse them, or write them on sticky notes. Each of these habits creates risk.
What integration promises
Directory integration means connecting your existing directory to Okta so that the two stay in step. Okta reads the people and groups from your directory, creates matching user profiles in the cloud, and keeps them updated. People can also use the password they already know. There is one source of truth, and changes flow from it automatically.
Think of two shop assistants who each keep their own handwritten stock list. They will disagree by the end of the week. Now give them a single shared stock sheet that both read from. The list stays the same for both of them. Directory integration is that shared sheet for your company’s people.
3Okta Directory Integration at a Glance
The big picture first, the details later.
Okta is an identity provider, which means it is the trusted service that knows who everyone is and decides whether they may enter an app. To do that job well, Okta needs a good list of people. That list can come from several places. In the Okta admin console, a section called Directory Integrations is where an administrator connects those places.
The main kinds of connection
Active Directory
Connects Okta to a Microsoft Active Directory in your own network, using a small helper program called the Okta AD Agent.
LDAP directory
Connects Okta to a directory that speaks LDAP, using a helper program called the Okta LDAP Agent.
Okta LDAP Interface
The opposite direction. Old apps that only speak LDAP can ask Okta questions as if Okta were an LDAP server.
Other sources of people
Some companies bring in people from a human resources system or from another Okta account. These are called profile sources.
What “basic” means in this guide
This guide covers the foundation: the core idea, the most common setup with Active Directory, a short look at LDAP, and the habits that keep an integration healthy. It skips rare and highly customized setups so that you can build a solid mental picture first. Once the basics feel natural, the advanced options become much easier to learn.
Menu names and screens in the admin console change from time to time. Learn the ideas first, and use your own admin console and the current Okta documentation for the exact button names.
4Core Concepts You Need to Know
Ten small ideas explain almost everything in this topic.
Universal Directory
Okta’s own cloud list of people and their attributes. Information from your on-site directory and other sources is gathered here into one profile per person.
Agent
A small program installed on a server inside your network. It is the messenger between your directory and Okta.
Import
The act of reading people and groups from the directory and bringing them into Okta.
Matching
Deciding whether a person found in the directory is the same as someone already in Okta, so that you do not create a duplicate.
Attribute mapping
Telling Okta which directory fact fills which Okta field, such as “mail” fills “email”.
Profile mastering
Choosing which source is the boss for a person’s facts. If two sources disagree, the master wins.
Delegated authentication
Okta asks your directory to check the password, instead of keeping its own copy of it.
Organizational unit
A folder inside the directory. You can choose which folders Okta may read.
Group
A named collection of people, such as “Finance Team.” Groups are used to decide who gets which apps.
Provisioning
Creating, updating and removing accounts automatically in other apps, based on changes in the trusted list.
Source of truth in one paragraph
A source of truth is the one place that everyone agrees is correct. In a directory integration, your on-site directory is very often the source of truth for people. Okta reads from it and does not argue with it. If a phone number is wrong, you fix it at the source, and the fix travels to Okta on the next sync.
Why an agent is needed
Your directory lives inside your private network, behind firewalls, on purpose. Okta lives in the cloud. The two cannot simply call each other across the internet. The agent sits inside your network and opens a safe outgoing connection to Okta, which acts like a secure tunnel. That one design choice is what makes the whole setup safe and simple to approve with network teams.
5Architecture and Components
Who are the players, and what does each one do?
flowchart LR AD["On-Premises Active Directory"] --> AG["Okta AD Agent on a Member Server"] AG -->|"Outbound HTTPS only"| OK["Okta Cloud"] OK --> UD["Universal Directory"] UD --> AP["Cloud and Web Applications"] U["Employee"] --> OK ADM["Okta Administrator"] --> OK
The parts, one by one
The on-site directory is where your people already live. For most companies this is Active Directory, running on servers called domain controllers. A domain controller is a server that answers questions about who is allowed to do what inside the company network.
The Okta AD Agent is a small Windows service. It is installed on a server that is part of your domain, and many companies choose a dedicated member server instead of a domain controller itself. The agent reads from the directory, and it carries password checks and other requests. It makes an outgoing connection to Okta over normal secure web traffic, so you usually do not need to open any inbound doors in your firewall.
Okta Cloud is the service that receives the data, applies your rules, and builds user profiles. Universal Directory is the part of Okta that stores those profiles. Applications are the cloud tools that people use every day. They trust Okta to say who the person is. The administrator is the person who configures all this, and the employee is the person who simply signs in.
A courier service is a fair comparison. Your private warehouse is the directory. The courier who comes in and out is the agent. The courier does not leave the warehouse door open for strangers. The courier simply carries parcels out and brings answers back. The city sorting centre is Okta, which sends the parcels onward to the right shops, which are the apps.
Why outbound only matters
Security teams worry about any opening in the network wall. With this design, nothing from the internet has to walk in. The agent reaches out, and answers travel back on the same connection. That is a much smaller risk than leaving a door open for the cloud to knock on.
6Setting Up the Connection Step by Step
The journey from nothing to a working link takes careful planning more than clever clicking.
Plan first
Decide which folders and groups in the directory should be visible to Okta. Decide which source is the master for each fact. Write down the rules before you click anything.
Prepare a server and a service account
Choose a Windows server that belongs to the domain. Create a service account with only the permissions the agent needs, and no more.
Add the directory in the admin console
In the Directory Integrations area, choose to add an Active Directory. The console guides you to download the agent installer.
Install and register the agent
Run the installer on your server, point it at your domain, and sign in to your Okta account to approve the link. The agent now appears as connected.
Choose folders, attributes and rules
Select the organizational units to import. Choose how usernames are built, how matches are decided, and which facts are mapped to which fields.
Run a first import and review
Bring in people and groups, then read the results carefully. Look for duplicates, strange names and unexpected accounts before you let anyone sign in.
Test with a small pilot group
Let a few friendly users sign in, and watch what happens. Fix problems while the group is small.
Roll out and monitor
Expand step by step. Turn on regular imports and keep an eye on the agent status and the system log.
Do not import the whole directory on the very first try. Old test accounts, service accounts and shared mailboxes often hide in directories. Importing them by mistake clutters Okta and can even create security gaps.
Choose a clean way to name users
Every person needs a unique sign-in name in Okta. Companies commonly build it from the email address or from the directory’s user principal name, a login name that looks like an email address. Pick a rule that does not change often and that never repeats. A name rule that clashes will cause confusing errors later.
7How an Import Works Inside
Reading a directory is simple in idea and careful in practice.
sequenceDiagram autonumber participant OK as Okta Cloud participant AG as AD Agent participant DC as Domain Controller OK->>AG: Request an import through the open outbound channel AG->>DC: Read users and groups in the chosen folders DC-->>AG: Return entries and their attributes AG-->>OK: Send the data securely OK->>OK: Match people, map attributes, create or update profiles OK->>OK: Record the results in the system log
Walking through the diagram
The agent keeps a standing secure connection to Okta. When an import starts, either on a schedule or because an administrator pressed a button, Okta passes the request down that connection. The agent then asks the domain controller for the people and groups inside the folders you chose.
The domain controller replies with entries and their attributes. The agent forwards them to Okta, still over the secure connection. Okta then does the careful work. It compares each incoming person with the people it already knows. It applies your attribute mapping so that facts land in the right fields. It creates new profiles, updates changed ones, and, depending on your settings, deactivates people who have disappeared or been disabled.
Full imports and incremental imports
A full import reads everything in scope and compares it to what Okta has. It is thorough but slower. An incremental import only looks at what changed since last time. It is fast and light, which makes it good for frequent runs. Many teams run quick incremental imports often and a full import less often as a safety net.
A full import is like counting every item in a shop at the end of the year. An incremental import is like checking only the items that were sold today. Both are useful, and a shop that does only one of them will slowly drift from the truth.
Read the summary after each import. A sudden spike in new users, or a sudden number of deactivations, is often a sign of a mistake in the folder scope or in the source directory. Catching it early saves a lot of cleanup.
8Matching, Mapping and Mastering
Three words that sound alike and do three very different jobs.
Matching: is this the same person?
When the import finds a person in the directory, Okta asks whether that person is already in its list. It compares something that should be unique, such as the username or the email address. If it finds a match, it links the two and does not create a copy. If there is no match, it creates a new profile. A poor matching rule leads to duplicates, and duplicates lead to confused users who have two accounts and two sets of access.
Mapping: which fact goes where?
Directories and Okta name their facts differently. One calls the email address “mail” while the other calls it “email”. Attribute mapping is a translation table. You tell Okta that the directory’s department fact fills the Okta department field, and so on. Mappings can go in one direction or both, depending on your design.
Mastering: who wins a disagreement?
If two sources describe the same person differently, one must be the boss. This is called profile mastering. In a basic setup, the on-site directory is master. Edits made directly in Okta for those facts are either blocked or overwritten on the next import, so there is no tug of war.
| Idea | Question it answers | What goes wrong if ignored |
|---|---|---|
| Matching | Is this the same person as before? | Duplicate accounts and mixed-up access |
| Mapping | Which directory fact fills which Okta field? | Empty fields or wrong data in apps |
| Mastering | Which source wins if they disagree? | Edits that keep flipping back and forth |
Think of merging two address books. Matching asks whether “Priya S.” in book one is the same person as “Priya Sharma” in book two. Mapping decides that “mobile” in one book belongs in the “phone” column of the other. Mastering decides that, if the numbers differ, you will trust the newer, official book.
9Signing In: Delegated Authentication Explained
How can people keep the password they already know?
After the import, Okta knows who your people are. But what about their passwords? In a common setup called delegated authentication, Okta does not keep its own copy of the directory password. Instead, when a person signs in to Okta, Okta hands the password check to your directory through the agent. The directory says valid or not valid, and Okta acts on that answer.
sequenceDiagram autonumber participant U as User participant OK as Okta participant AG as AD Agent participant DC as Domain Controller U->>OK: Type username and directory password OK->>AG: Pass the sign-in request AG->>DC: Ask the directory to check the password DC-->>AG: Valid or not valid AG-->>OK: Send the result OK-->>U: Sign in or show an error
Why companies like this
The directory stays the one place where passwords are set, changed and locked. If someone is disabled in the directory, they cannot get into Okta either. If a person is locked out after too many wrong tries, the same rule applies in Okta. People remember one password, and the security team enforces one set of password rules.
Think of a hotel receptionist who does not keep a copy of your home key. When you say you live at a certain flat, the receptionist phones the building manager, who checks the real key list and answers yes or no. The receptionist never holds the secret. Okta plays the receptionist, and the directory plays the building manager.
Other pieces that often come along
Many organizations pair directory sign-in with a second proof, such as an approval on a phone app, so that a stolen password is not enough on its own. Some also set up desktop single sign-on, which can let a person who is already signed in to their company computer reach Okta without typing anything again. Some companies allow changes of password to flow from Okta back into the directory, while others keep it strictly one way. These are design choices, and each has trade-offs that your team should discuss.
Because the agent is now part of the sign-in path, an offline agent can mean failed sign-ins for directory users. This is why companies install more than one agent. We will see this in the reliability chapter.
10Groups and Folders: Controlling What Comes In
Importing everyone is rarely the right answer. Importing the right people is.
Scope with organizational units
You can tell Okta which folders to read. For example, you may choose the folders for full-time staff and contractors, but skip the folders for test accounts, shared mailboxes and old archived users. This is called scoping. A tight scope keeps Okta clean and limits risk.
Groups drive access
Directory groups are also imported. Once they are in Okta, they become a powerful steering wheel. You can say that everyone in the “Sales” group receives the customer-relationship app, and everyone in “Engineering” receives the code repository. When someone changes team in the directory, their group changes, and their app access follows by itself on the next sync.
Role-based groups
One group per job role. Access to apps is attached to the group and not to each person.
Location groups
One group per office or country. Useful for rules that differ by place.
Contractor groups
A separate group for outside staff, so their access can be limited and ended cleanly.
Admin groups
A small, closely watched group for people who administer systems.
A simple example
A person moves from the support team to the finance team. In the directory, an administrator changes their group. After the next import, Okta removes their support tools and gives them the finance tools. Nobody had to open a ticket for each app.
Be careful with very large or deeply nested groups. They can slow imports and make it hard to explain why a person has a certain app. Keep group design simple and documented.
11LDAP Integration and the Okta LDAP Interface
Two different ideas that sound the same. Learn to tell them apart.
So far we have talked about Active Directory. Not every company uses it. Some use other directories that speak LDAP, such as certain open-source or vendor directories. Okta can connect to these too, using a helper called the Okta LDAP Agent. It works in the same spirit as the AD Agent: installed inside your network, making outgoing connections, reading people and groups, and passing password checks.
The second idea: Okta acting like an LDAP server
There is a twist. Some older apps and devices, such as certain network gear, print servers and legacy tools, were built long ago to sign people in by asking an LDAP server. They cannot speak the modern web sign-in language. For these, Okta offers a feature called the Okta LDAP Interface. It lets Okta answer LDAP questions, so the old app thinks it is talking to a normal LDAP server while Okta does the real work behind the curtain.
flowchart LR
subgraph IN["Direction 1 - bring people into Okta"]
L["LDAP Directory"] --> LA["Okta LDAP Agent"] --> OK1["Okta"]
end
subgraph OUT["Direction 2 - let old apps ask Okta"]
APP["LDAP Based Application"] --> LI["Okta LDAP Interface"] --> OK2["Okta"]
end
Think of a translator at a meeting. In direction one, the translator listens to an old-fashioned speaker and reports what was said to the modern team. In direction two, the translator speaks the old language to a visitor who only understands it, while the modern team does the real thinking. Both directions use a translator, but the job is different.
A simple way to remember
If the question is “I already have a directory and want Okta to read it,” you want an agent integration. If the question is “I have an old app that only speaks LDAP and I want it to use Okta,” you want the LDAP Interface. Mixing them up is one of the most common beginner mistakes.
When you use LDAP, always prefer the secure version that wraps the connection in encryption. Plain LDAP sends information in a form that anyone on the network path could read.
12Data Flow and Lifecycle of a Person
Follow one employee from the first day to the last.
flowchart LR J["Joiner: account created in the directory"] --> I["Import creates the Okta user"] I --> A["Apps assigned through groups"] A --> M["Mover: group or attributes change"] M --> A A --> L["Leaver: account disabled in the directory"] L --> D["Okta deactivates the user at the next sync"]
The joiner
A new hire is added to the directory by HR or IT. At the next import, Okta sees the new entry and creates a matching profile. Because the person is in certain groups, they receive the right apps automatically. On day one they can sign in with their directory password.
The mover
People change teams, offices and titles. Each change is made once in the directory. The next import updates the Okta profile and shifts the groups. App access that depends on those groups shifts too. This is the biggest time saver in the whole system, because moves are easy to forget when each app is handled by hand.
The leaver
When someone leaves, the directory account is disabled. At the next import, Okta notices and, depending on your settings, deactivates the matching profile. Sessions end, and the person can no longer reach connected apps. Accounts in other apps can also be removed or suspended through provisioning.
Think of an office building’s keycard system. A new hire gets a card. A person who moves floors gets different doors on their card. A person who leaves has the card switched off at the front desk, and every door obeys at once. The directory is the front desk record, and Okta is the system that tells every door.
The speed of a leaver’s access removal depends on how often imports run. If imports run once a day, a person disabled at nine in the morning may still have access until the next run, unless an administrator acts directly. Plan for urgent removals.
13Advantages, Disadvantages and Trade-offs
Every design trades something away. Here is an honest balance sheet.
Advantages
- One trusted list of people instead of two that drift apart
- People keep one familiar password
- Joiners, movers and leavers are handled in one place
- No inbound firewall holes for the usual agent design
- Group changes automatically change app access
- Fits companies that are moving to the cloud step by step
- Gives clear records of what changed and when
Disadvantages
- Depends on servers and agents that must be kept healthy
- Bad directory data flows into Okta
- Delegated sign-in needs the agent and directory to be reachable
- Poor matching or mapping creates duplicates and errors
- Changes reach Okta only as fast as the sync schedule
- Extra work to design groups and folders carefully
- Old directories may carry years of untidy data
Comparing where the list of people can live
| Approach | Where people are managed | Best for | Main watch-out |
|---|---|---|---|
| Active Directory integration | On-site directory | Companies already running AD | Agent servers must be kept healthy |
| LDAP directory integration | On-site LDAP directory | Companies with non-Microsoft directories | Secure connection and schema differences |
| Okta as the main list | Directly in Okta | Cloud-first and smaller companies | Needs a clear process for adding and removing people |
| HR system as the source | The human resources system | Companies that want HR to drive access | HR data quality matters a lot |
The big trade-off: freshness versus load
If you import very often, changes arrive fast, but you add work for the directory and the agent. If you import rarely, the load is low, but leavers keep access longer. Most teams pick a middle path with frequent light imports and a regular full check.
14Security: Threats and Defenses
The agent has a trusted place inside your network. Treat it that way.
Threat 1: A compromised agent server
The server that runs the agent can read parts of your directory and handle password checks. If an attacker takes it over, they gain a strong foothold. Defenses include keeping the server dedicated and patched, limiting who can log on to it, and monitoring it closely, as you would a domain controller.
Threat 2: An over-powered service account
The agent uses a service account. If that account has more rights than it needs, a leak becomes a disaster. Follow the principle of least privilege, which simply means giving each account only the permissions it truly needs. Use a long random password and protect it well.
Threat 3: Importing the wrong accounts
If powerful accounts, such as administrators or old service accounts, are imported by mistake, they can be assigned apps they should never touch. Careful scoping keeps them out.
Threat 4: Weak or unencrypted connections
For LDAP in particular, an unprotected connection can reveal secrets to anyone watching the network. Always use the encrypted option, and keep certificates valid.
Threat 5: Delayed removal of leavers
A former employee who keeps access for even a day is a risk. Use quick imports, and for sensitive cases use direct deactivation in Okta at once.
Threat 6: Stolen passwords
Because the directory password now opens many cloud apps, a stolen password is worth more to an attacker. Add a second proof, such as an approval on a phone app, and use rules that ask for extra proof in risky situations.
What people do
They run the agent under a domain administrator account because it is the quickest way to make everything work.
Why it hurts
If that account or the agent server is attacked, the intruder instantly holds the keys to the entire domain.
Do this instead
Create a dedicated service account with only the permissions needed for the chosen features, document those permissions, and review them regularly.
Giving the agent full administrator rights is like hiring a courier and handing over the master key to the whole building. A better plan is to give the courier a pass that opens only the delivery door.
15Reliability and High Availability
If the agent is the bridge, plan for the day a bridge is closed.
Because the agent carries both imports and, in delegated sign-in, every password check, it should never be a single point of failure. A single point of failure is one part that, if it breaks, stops the whole system. The usual fix is to install more than one agent on separate servers, ideally in different places and talking to different domain controllers.
flowchart TD OK["Okta Cloud"] --> A1["Agent 1 on Server A"] OK --> A2["Agent 2 on Server B"] A1 --> DC1["Domain Controller 1"] A2 --> DC2["Domain Controller 2"]
What can fail, and what happens
| What fails | What users notice | Good protection |
|---|---|---|
| One agent server goes down | Nothing, if a second agent is healthy | At least two agents on separate servers |
| One domain controller goes down | Nothing, if others can answer | Several domain controllers in each site |
| Internet link from the office fails | Directory users cannot sign in to cloud apps | A second link, and a plan for urgent access |
| Service account password expires | Imports and sign-ins start failing | Track the expiry date and rotate before it ends |
| Agent software is out of date | Missing fixes or odd behavior | Keep automatic updates healthy and watch versions |
A town with only one bridge is cut off whenever the bridge closes. A town with two bridges in different places carries on. The second bridge costs money, but nobody regrets it on the day the first one is blocked.
Have a break-glass plan
Sensible companies keep a small number of specially protected emergency administrator accounts that do not depend on the directory. They are used only if the normal path is broken, and every use is checked afterwards.
16Monitoring, Logging and Metrics
If nobody looks at the lights on the dashboard, a quiet failure stays quiet.
Okta writes a record of important events into its system log. Imports, agent connections, sign-in successes and failures, and changes to users are all written down. The admin console also shows the status of each agent, so you can see at a glance whether it is connected.
What to keep an eye on
Agent disconnected
An agent that drops offline means imports or password checks may stall. Alert on this at once.
Import errors
Repeated errors in an import often point to expired service accounts, changed permissions or bad data.
Sudden user count change
A big jump up or down can mean a folder scope mistake or a mass change in the directory.
Many failed sign-ins
A burst of failures for one person may be a forgotten password. A burst across many people may be an attack or an outage.
Useful numbers to track over time
Beyond individual alerts, teams track simple health numbers. Examples include how long each import takes, how many users were created, changed and deactivated in each run, how many sign-ins fail through the directory, and how many agents are healthy. Slow, steady changes in these numbers often show a problem long before users complain.
Send key Okta events to a central place where your security tools can raise an alarm automatically. Logs that nobody reads cannot protect anyone.
Watch the directory side too
The directory and the agent server need their own health checks. Disk space, memory, time settings and security patches on the agent server all matter. A server with the wrong clock can cause strange secure-connection errors that look like Okta problems but are not.
17Troubleshooting Common Problems
Most problems have simple causes. Check these before anything else.
Agent shows as offline
Check that the server is running, that its outgoing secure web traffic is allowed through firewalls and proxies, and that the agent service has started.
Import fails or imports nobody
Check the folder scope, the service account password and its permissions. A recent password change or expiry is a common cause.
Duplicate users appear
Review the matching rule. The chosen attribute may be empty, repeated, or formatted differently in the two places.
A user cannot sign in
Confirm the account is active in the directory, not locked, and that the user is typing the directory password. Check the log for the exact reason.
Attributes are empty or wrong
Check the mapping, and check whether the fact exists in the directory for that person.
A leaver still has access
Check the import schedule and the deactivation settings, then deactivate directly if the case is urgent.
A calm step-by-step routine
Read the exact message
Error messages in the console and log usually point straight to the cause. Copy them down before changing anything.
Check the agent
Is it connected, running, and on a healthy server with the right time?
Check the directory side
Is the account enabled, unlocked, in the right folder, and with the facts filled in?
Check the rules
Review scope, matching, mapping and mastering settings for the affected person.
Change one thing and retest
Make one change at a time, so you know which change fixed or broke the situation.
Avoid deleting the directory integration to “start fresh” unless you fully understand the effect. Removing it can affect the link between thousands of people and their profiles, and rebuilding it may cause matching problems.
18Design Patterns and Anti-Patterns
Habits that work well, and habits that cause trouble.
Patterns that work
Directory as the single source of truth
Pick one master for each fact, document it, and stick to it. Fix mistakes at the source and let them flow outward.
Groups for access, not individuals
Attach apps to groups and move people between groups. This keeps changes small and easy to explain.
Two or more agents
Always plan for failure of one server. Place agents in different locations where possible.
Pilot before rollout
Start with a small group and a limited scope. Expand only after the results look clean.
Anti-patterns that cause trouble
What people do
They import the entire directory, including test accounts and service accounts, because it is faster than choosing folders.
Why it hurts
Okta fills with accounts that should never sign in. Some of them may have strong rights and weak passwords, which attackers love.
Do this instead
Scope imports to the folders and groups of real people, and review the first import carefully.
What people do
They allow staff to edit the same facts both in the directory and in Okta, with no rule about who wins.
Why it hurts
Changes overwrite each other and nobody knows which value is right. Apps receive inconsistent data.
Do this instead
Choose a master for each fact and block or ignore edits made anywhere else.
What people do
They run a single agent on a single old server and never look at it again.
Why it hurts
When that server fails, imports stop and directory sign-ins fail, often on the busiest morning of the month.
Do this instead
Run at least two agents, patch the servers, and alert on agent status.
19Best Practices and Common Mistakes
A short checklist for the person setting this up.
Before you start
- Clean the directory first. Remove old accounts, fix missing emails and make usernames unique.
- Write down your plan: folders in scope, master for each fact, and naming rules.
- Agree on the import schedule and on how urgent leavers will be handled.
- Talk to the network team about outgoing secure connections and any proxy.
While you build
- Use a dedicated, least-privilege service account.
- Install at least two agents on separate servers.
- Pilot with a small group and review the first import by eye.
- Turn on a second proof for sign-in, so that a stolen password is not enough.
- Document every setting, including why it was chosen.
After go-live
- Watch the agent status and the system log every day at first, then through alerts.
- Rotate the service account password before it expires.
- Patch the agent servers and keep their clocks accurate.
- Review groups, folders and access at regular intervals.
- Practice an urgent removal and a break-glass sign-in before you need them.
Common mistakes
Importing everything. Skipping a pilot. Running one agent. Using an administrator account for the service. Forgetting the service account password will expire. Letting two places edit the same facts. Ignoring the import summary.
Setting up directory integration is like moving a household to a new home. A tidy, labelled box moves smoothly. A pile of mixed-up junk moves too, and you will be sorting it for months. Cleaning first makes everything later easier.
20Real-World and Industry Examples
Where this idea shows up in daily working life.
Okta is used by organizations of many sizes around the world, and a large share of them already own an on-site directory before they begin. The scenarios below are typical examples of how organizations in different fields apply the same ideas.
A company moving to the cloud gradually
The company has run Active Directory for fifteen years and now adopts many cloud tools. Rather than rebuilding its people list, it connects the directory to Okta. Staff keep their familiar passwords, and the company moves apps to the cloud one by one at its own pace.
A merger of two companies
After a merger, each company has its own directory. Both are connected to one Okta account. Staff from both sides can reach shared tools, while each side keeps its own directory until a longer-term plan is ready.
A university
Thousands of students and staff join and leave each term. The university uses an LDAP directory for its campus systems and connects it to Okta, so that cloud tools stay in step with enrollment without manual work.
A retailer with seasonal staff
Hundreds of temporary workers are added before a busy season and removed after it. Placing them in dedicated groups means access is granted fast and removed cleanly when the contract ends.
A hospital group with older equipment
Some older devices and tools only understand LDAP. The hospital uses the LDAP Interface so that these devices can check sign-ins against Okta, instead of keeping separate local passwords.
Lessons from real projects in the industry
Teams that report smooth directory projects tend to share the same habits. They clean data first, scope carefully, run more than one agent, pilot with a small group, and watch the logs. Teams that report painful projects tend to rush, import everything, and discover the problems after thousands of users are affected. The lesson is that preparation matters more than clever configuration.
21From Directory to Apps: Provisioning Basics
Getting people into Okta is half the story. Getting them into the apps is the other half.
Once your people are inside Okta, the next question is what they can reach. Many apps keep their own list of users. A project tool, for example, needs to know that Asha exists before Asha can open a board. Provisioning is the automatic creation, updating and removal of those app accounts, based on what Okta knows. Many apps accept these instructions through a common standard called SCIM, which stands for System for Cross-domain Identity Management. It is simply an agreed set of messages that say “create this person,” “change this fact,” or “turn this person off.”
Three actions that matter
| Action | Trigger | Result in the app |
|---|---|---|
| Create | A person gains access through a group | A new account appears in the app |
| Update | A fact changes in the directory, such as a title | The app account shows the new fact |
| Deactivate | A person loses access or leaves | The app account is switched off or removed |
Think of a conference organizer who keeps the master guest list. When a name is added, a badge is printed at every hall. When a name changes, the badges are reprinted. When a name is removed, the badges stop working. Provisioning is the badge printer attached to the master list.
How the chain fits together
The full chain is easy to say in one breath. The directory is the source. Okta imports it. Groups in Okta decide which apps a person should have. Provisioning then makes sure the right accounts exist in those apps. If any link is weak, the chain gives odd results, such as a person who can sign in to Okta but finds no account waiting in the app.
Test provisioning with one app and one pilot group first. Check that creates, updates and deactivations all behave as expected before adding more apps.
Not every app supports every kind of provisioning. Some can create accounts but cannot remove them. Always check what each app can do, and plan a manual step where it cannot.
22A Worked Example: Following Asha Through the System
A made-up story ties all the pieces together.
Asha is a new analyst joining a company that uses Active Directory and Okta. Follow her through each stage. The names and details here are invented for teaching.
HR creates her account in the directory
IT adds Asha to the Finance folder and to the “Finance Team” group. Her entry holds her name, email, department and manager.
The import runs
The agent reads the Finance folder. Okta sees a new entry, finds no existing match, and creates a new profile for Asha.
Mapping fills in her profile
The directory’s “mail” fact fills her Okta email. The “department” fact fills her Okta department. Her manager is linked too.
Her group brings her apps
Everyone in “Finance Team” gets the accounting tool, the expense app and the shared document space. Provisioning creates those accounts.
First sign-in on day one
Asha types her directory password. Okta passes the check to the agent, the domain controller says it is valid, and a second approval on her phone completes the sign-in.
Eight months later she moves teams
IT changes her group from “Finance Team” to “Sales Team”. On the next import, her accounting tool is removed and her customer tool appears.
Two years later she leaves
IT disables her directory account. At the next import, Okta deactivates her profile, and provisioning switches off her app accounts.
What the story shows
At no point did anyone type Asha into Okta by hand. At no point did anyone visit each app to add or remove her. Every change was made once, in the directory, and the rest followed. This is the whole value of the integration, and it becomes more precious as the company grows.
What if the story goes wrong?
Suppose HR typed Asha’s email with a spelling mistake. Every connected app then holds the wrong email. The fix is to correct the one entry in the directory. After the next import, Okta and the apps pick up the right email.
What if there were two Ashas?
If two people share the same name, matching on the name alone would be a disaster. That is why unique attributes, such as an email address or a user principal name, are used for matching instead.
23Password and Sign-In Options Compared
There is more than one way to decide who checks the password.
We met delegated authentication earlier. It is the most common choice for companies that keep their directory, but it is not the only one. The right answer depends on where your company wants passwords to live in the long run.
| Option | Who holds the password | Good for | Think about |
|---|---|---|---|
| Delegated authentication | The on-site directory | Companies that want one password and one set of rules | Agent and directory must be reachable at sign-in |
| Okta-managed passwords | Okta | Cloud-first companies and users outside the directory | Needs its own password rules and reset process |
| Password synchronization | Both places, kept in step | Gradual moves between the two worlds | More moving parts and more care about protecting secrets |
| Passwordless methods | No typed password | Companies that want to remove passwords over time | Needs managed devices and clear recovery steps |
A word about desktop single sign-on
Some companies also set up desktop single sign-on. When a person is already signed in to a company computer on the company network, Okta can recognize them and let them in without asking for a password again. It feels smooth, but it relies on the computer and network being trustworthy, so many companies pair it with extra checks for sensitive apps.
Think of an office with a staff entrance. Staff who walk in through the main door with their card are already known, so the inner doors do not ask again. Visitors who arrive by a side street must show ID at every door. Desktop single sign-on is the staff entrance. It is comfortable, but it is only safe as long as the main door is guarded.
Options and their names change as products evolve. Use this chapter to understand the choices, then check the current Okta documentation for what is available in your account.
24Planning Checklist: Questions to Ask Before You Start
Good projects are decided on paper before they are decided in the console.
Most directory integration problems are planning problems in disguise. A small set of questions, answered early and written down, saves weeks later. Here are the questions in four groups.
Who counts as a user?
Employees, contractors, interns, shared accounts? Decide which kinds belong in Okta and which do not.
Is the directory clean?
Are emails filled in and unique? Are old accounts removed? Fix the source before you copy it.
Who is master of what?
For each fact, name one source of truth, and write it down so everybody can see it.
How will groups drive apps?
Design a small, clear group scheme before you attach apps to groups.
Can the agent reach Okta?
Confirm outgoing secure connections, proxy settings and server placement with the network team.
What is the service account plan?
Create it with least privilege, a strong password and an expiry reminder.
What if an agent fails?
Plan for at least two agents and a tested emergency path.
Who will support users?
Train the help desk on sign-in problems, resets and how to spot suspicious requests.
Roll out in phases
Pilot
Connect the directory with a very small scope and a handful of friendly users. Learn from their experience.
Department by department
Add one team at a time. Review each import before moving to the next team.
Whole company
Open the integration to everyone in scope once the earlier phases are clean and stable.
Tidy and improve
Retire old processes, review groups and access, and tune imports based on what the logs show.
Keep a short change log with the date, the setting changed, who changed it and why. When something odd happens weeks later, that list is often the fastest route to the answer.
25A Plain-English Glossary
Keep this chapter handy. Every word used in the guide is explained here.
Directory words
Directory
An organized list of people, groups and devices in an organization, used to look up facts and check passwords.
Active Directory
Microsoft’s directory service, widely used in company networks. Often shortened to AD.
LDAP
Lightweight Directory Access Protocol. An agreed way for programs to look up entries in a directory.
Domain controller
A server that answers questions about who is allowed to do what in an AD network.
Organizational unit
A folder inside a directory used to group entries, often by department or office.
Entry or object
One record in a directory, such as a person or a group.
Attribute
A single fact stored in an entry, such as a job title.
Service account
A special account used by a program, not a person. The agent uses one.
Okta words
Identity provider
The trusted service that knows who everyone is and decides who may enter an app. Okta plays this role.
Universal Directory
Okta’s cloud store of people and their attributes, gathered from all sources.
Agent
A helper program inside your network that connects your directory to Okta.
Import
Reading people and groups from a source and bringing them into Okta.
Profile mastering
Choosing which source wins when two sources disagree about a person.
Delegated authentication
Okta asks the directory to check the password instead of keeping its own copy.
Provisioning
Creating, updating and removing accounts in apps automatically.
System log
Okta’s record of important events, used to spot problems and investigate them.
26Frequently Asked Questions
27Summary and Key Takeaways
Key Takeaways
- Directory integration joins two lists into one. Okta reads your existing directory so people, groups and changes flow in automatically.
- An agent is the safe bridge. It sits inside your network and makes outgoing secure connections, so no inbound door is usually needed.
- Matching, mapping and mastering are the three big settings. They decide who is who, where each fact goes, and which source wins.
- Delegated authentication keeps one password. Okta asks the directory to check it, so password rules stay in one place.
- Scope carefully. Import real people and the right groups, not test accounts, service accounts and old leftovers.
- Plan for failure. Run more than one agent, watch agent status, and keep emergency access ready.
- Protect the bridge. Use a least-privilege service account, harden the agent server, and add a second proof at sign-in.