Modernizing Legacy SWA Apps to SAML/OIDC into Okta
Secure Web Authentication was a clever bridge: Okta remembers a password and types it into an old login page for you. It works, but the password still exists, still travels and still lives inside the app. Moving those applications to modern sign-in standards removes the password from the picture. A first-principles guide to finding, planning, migrating and retiring SWA applications with Okta.
Brightwater Utilities supplies electricity and water to two million homes. It has twelve thousand employees and, in its Okta tenant, 340 applications. A hundred and forty of them use SWA: when a person clicks the tile, an Okta browser plugin opens the application’s old login page, fills in a stored username and password and presses the button. For years this was a great success. Nobody had to remember 140 passwords. Nobody had to wait for the vendor to add modern sign-in.
Then a contractor’s laptop was stolen. The plugin on that laptop held, in encrypted form, the credentials for nine applications. The company reset those nine passwords within the hour and was relieved. What it did not know was that 31 of the 140 SWA applications used a shared login: one username and one password for an entire team. The shared passwords had not been changed in four years, and eleven former employees still knew them. The auditor’s report said what the identity team already felt: “The tile hides the password from the user. It does not remove the password from the system.”
Modernizing means asking each application to trust Okta’s word about who the person is, using standards called SAML or OpenID Connect, instead of accepting a typed password that Okta fills in. The password disappears from the sign-in. The application can no longer be reached by guessing it. Leavers lose access the moment Okta says so. Okta offers several building blocks for this, including application integrations for SAML and OIDC, SCIM provisioning, authentication policies and an event log. Product names, features and editions change over time, so every Okta-specific statement in this guide is guidance to confirm against current official documentation, and every application-specific statement must be checked with the application vendor. What does not change is the thinking: how to find the applications, decide the target, migrate in safe waves, retire the old password and prove it. We start from zero and assume no earlier knowledge.
1Why the Old Way Worries Us
A password hidden from the person is still a password. Anything that can be typed can be stolen, guessed, shared or forgotten about.
When SWA is in use, three things are true at once. The application still has its own username and password for each person. Okta keeps a copy of that password so it can fill the login form. And the person can often still go to the application directly and type the password themselves, bypassing Okta altogether.
- The password still exists. It can be phished, guessed, reused or leaked from either end.
- Okta protects the tile, not the application. A stolen password works at the application’s own login page, with no second step.
- Leavers are not fully cut off. Disabling the Okta account stops the tile, but the application account and its password remain until someone removes them.
- Passwords are rarely rotated. The application owner has no reason to change a password that works.
- Shared logins hide who did what. Records show a team account, not a person.
- The browser plugin is a dependency. It must work on every browser, every version and every device.
None of this means SWA was a mistake. It was the best available bridge when applications could not do better. The question now is whether the bridge should remain the permanent road.
A hotel can hide the room key behind the desk so guests do not lose it. The lock is still the same old lock, and anyone with a copy can still walk in.
2What SWA Is, and What It Is Not
A clear definition helps decide which applications should move first.
Secure Web Authentication, usually called SWA, is a way for Okta to sign a person in to an application that does not understand modern sign-in standards. Okta stores the person’s username and password for that application, protected by encryption. When the person clicks the application tile, a browser plugin or extension opens the login page and fills in the stored values.
What it is
- A form-filling mechanism run by a browser plugin.
- A way to give one place to click for applications with old-style login.
- A stepping stone for applications that cannot yet use standards.
What it is not
- It is not federation. The application never receives a signed statement from Okta; it receives a typed password.
- It is not password-free. A password remains at the heart of it.
- It is not app-level multi-step sign-in. Okta may require a second step to open the tile, but the application itself will accept a password alone if typed directly.
- It is not provisioning. Creating and removing accounts in the application is a separate job.
- It is not a permanent design. It is a bridge.
Verify: Exactly how your Okta edition offers SWA, which variants exist (for example, where the user supplies the password, where an administrator sets it, or where credentials are shared) and which browsers and plugins are supported should be confirmed in current official documentation.
A bridge made of ropes gets travellers across the river. It is not the bridge you want for trucks.
3What Modernizing Means, and What It Does Not
Modernizing is a change in how the application trusts Okta. It is not a rewrite of the application.
To modernize an SWA application means to connect it to Okta using a standard federation protocol, usually SAML or OpenID Connect, so that the application accepts Okta’s signed statement of who the person is, and then to turn off the old password sign-in.
| Modernizing includes | Modernizing does not require |
|---|---|
| Configuring the application to trust Okta | Rewriting the application |
| Mapping people to application accounts | Changing what people do with the application |
| Turning off local password sign-in | Removing the application |
| Setting up automatic account creation and removal where possible | Moving to a new vendor, unless the old one cannot support standards |
| Testing, switching over and retiring the old tile | A big-bang cutover for everyone at once |
- Often the application already supports SAML or OIDC; it simply was never switched on.
- Sometimes support needs a higher licence tier from the vendor.
- Sometimes the application is too old and needs a gateway, a replacement or a compensating control.
Asking “Does it support SAML or OIDC?” is the first question for each of the 140 applications. The answer decides almost everything that follows.
Changing a door lock does not mean rebuilding the house. It means choosing a better lock and changing who holds the keys.
4Core Concepts: The Vocabulary of Federation
A handful of words appear again and again. Learn them once and the rest of the guide reads easily.
| Term | Plain meaning |
|---|---|
| SWA | Secure Web Authentication: Okta stores a password and fills the login form |
| Federation | Trusting another system to prove who someone is |
| Identity provider (IdP) | The system that proves identity: here, Okta |
| Service provider (SP) or relying party | The application that trusts the IdP |
| SAML | An older but widely supported standard that sends a signed statement from IdP to application |
| OpenID Connect (OIDC) | A newer standard built on web tokens, common for modern and mobile applications |
| Assertion or token | The signed note that says who the person is |
| Claim or attribute | A fact inside the note, such as email address or group |
| Single sign-on (SSO) | Signing in once and reaching many applications |
| SCIM | A standard way to create, update and remove accounts in applications automatically |
| Just-in-time (JIT) creation | Making the account the first time the person signs in |
| Metadata and certificate | Technical files that tell each side how to recognise the other |
| Enforcing SSO | Turning off the application’s own password login |
Keep apart two ideas that are easy to confuse: sign-in proves who you are when you arrive; provisioning makes sure your account exists, has the right access and is removed when you leave. A modern setup does both.
A passport (federation) tells the border guard who you are. A visa office (provisioning) decides whether you may enter at all. Travel needs both.
5How SWA Works Inside
Understanding the mechanism shows exactly where the weaknesses sit.
Credential stored
Either the user or an administrator saves a username and password for the application in Okta, in encrypted form.
Tile clicked
The person clicks the application tile in Okta.
Plugin wakes
The Okta browser plugin recognises the application’s login page.
Form filled
The plugin decrypts the stored values on the person’s device and fills the username and password fields.
Button pressed
The plugin submits the form, as if the person had typed it.
Application decides
The application checks the password in its own database and opens a session.
- The application never knows Okta was involved. It sees only a normal password login.
- Any change to the login page can break the form filling.
- The plugin must be installed and healthy on every device.
- The password is decrypted on the device at the moment of use.
- Anyone who learns the password can skip Okta entirely.
The last point matters most. The strength of the whole chain is the strength of a password that lives in two places and can be typed by anyone.
A butler who unlocks the front door with the family key is convenient. The key still opens the door for whoever else has a copy.
6The Risks of SWA in Detail
Auditors and attackers both look for the same things.
| Risk | What happens | Which fix helps |
|---|---|---|
| Password phishing | Attacker obtains the application password and signs in directly | Federation with enforced SSO |
| Password reuse | Same password elsewhere, so a breach elsewhere opens this app | Remove passwords from the flow |
| Shared accounts | No individual accountability | Individual accounts through SSO and provisioning |
| Orphaned application accounts | Leavers keep working passwords | Automatic deprovisioning |
| Unrotated passwords | Old secrets live for years | No password to rotate |
| No app-level second step | Password alone opens the app | Policies at the Okta sign-in |
| Plugin failures | Breakage after browser updates | Standard redirect-based sign-in |
| Weak logging | App shows a team login, not a person | Individual identity in logs |
- Rank applications by how bad the loss would be, not by how annoying the migration is.
- Treat shared logins as the highest-risk SWA pattern.
- Treat internet-facing applications as higher risk than internal ones.
A castle with a strong gate and a side door unlocked is judged by the side door.
7Why SWA Existed, and Why It Is Still Useful Sometimes
A fair account of the past makes better decisions about the future.
When Okta and similar services appeared, most business applications knew only usernames and passwords. SWA let companies offer a single place to click years before vendors added standards. It brought real benefits: fewer forgotten passwords, a central list of applications and a way to remove a leaver’s tile.
Advantages
- Works with almost any web login page
- No change needed at the vendor
- Quick to set up for a single application
- Gives users one place to start
- Useful as a temporary bridge
Disadvantages
- Password remains the core
- Needs a plugin and healthy browsers
- Does not enforce strong sign-in at the app
- Poor for shared accounts and accountability
- Does not remove accounts when people leave
- Fragile when login pages change
- Keep SWA for genuinely stuck applications, with extra controls.
- Never design a new integration as SWA if the application supports standards.
- Record every remaining SWA application with an owner and an end date.
A temporary bridge is a fine thing to have. It is a poor thing to forget.
8SAML and OIDC in Plain Words
Both standards do the same basic job: let one system prove to another who a person is, without handing over a password.
Imagine a conference. You show your identity at the registration desk, and the desk gives you a signed badge. At each room, the guard does not ask for your passport again; the guard checks that the badge is genuine and reads the name on it. The registration desk is Okta. The badge is the assertion or token. The room is the application.
SAML
- Older, very widely supported by business software.
- The statement is an XML document signed by Okta.
- Typical for browser sign-in to web applications.
- Needs certificates that expire and must be renewed.
OpenID Connect
- Newer, designed for web, mobile and programming interfaces.
- The statement is a token in a compact signed format.
- Typical for modern and mobile applications.
- Uses keys published at known addresses, which are rotated automatically in many setups.
For a legacy application, the choice is usually made for you: use what the vendor supports. If both are offered, many teams prefer OIDC for new work and SAML where the vendor’s SAML support is more mature.
Two embassies issue passports in different formats. Both are accepted at the border if the border guard recognises them.
9Choosing the Target Pattern for Each Application
Not every legacy application will become a SAML or OIDC application. Choose the right target for each.
| Target | When to choose it | Watch for |
|---|---|---|
| SAML | Vendor supports it, especially older enterprise software | Certificate renewal, attribute mapping |
| OIDC | Vendor supports it, modern or mobile apps | Redirect addresses, token lifetimes |
| Gateway or reverse proxy | App has no standards support but sits behind a controllable address | Extra component to run and secure |
| Header-based integration | App trusts identity headers from a front end | Must prevent anyone bypassing the front end |
| Replace | Vendor out of business or app is end of life | Project cost and change for users |
| Retire | App is no longer used | Archive and data retention |
| Keep SWA with compensating controls | Truly stuck for now | Tight limits and an end date |
- Ask the vendor first. Support often exists and was never switched on.
- Check licence tiers: some vendors charge more for SSO features.
- Choose replace or retire early for dead applications; do not spend effort modernizing them.
- Record the decision and reason per application.
When a road is blocked you choose a detour, a new bridge or no trip at all. Each has a cost.
10Provisioning with SCIM: Accounts That Follow the Person
Sign-in is half the job. The other half is making sure the right accounts exist, change and disappear.
SCIM is a standard way for Okta to tell an application, “Create an account for this person,” “Change their department,” and “Deactivate them.” Where an application supports it, accounts are created and removed automatically as the person joins, moves and leaves.
| Without provisioning | With provisioning |
|---|---|
| An administrator creates accounts by hand | Account appears when the person is assigned |
| Leavers keep accounts until someone remembers | Account is deactivated when Okta says so |
| Roles are set by hand and drift | Roles follow groups in Okta |
| Evidence is scattered | Events recorded in Okta |
- Not every application supports SCIM; some offer just-in-time creation at first sign-in, or an older provisioning interface.
- Without any automation, plan a manual process with tickets and checks.
- Never think of SSO alone as leaver protection if the application keeps working local passwords.
Verify: Which of your applications support SCIM or another provisioning method, which actions are supported (create, update, deactivate) and what your Okta edition includes should be confirmed with the vendor and in current documentation.
A company badge is useful only if the badge office also creates it on day one and cancels it on the last.
11Two Ways to Sign In, Side by Side
The picture shows what changes and what disappears.
flowchart LR
subgraph SWA["SWA: password fill"]
A1["Person clicks tile"] --> A2["Plugin fills stored password"]
A2 --> A3["App checks its own password"]
end
subgraph FED["Federation: SAML or OIDC"]
B1["Person clicks tile"] --> B2["Okta checks person and policy"]
B2 --> B3["Okta sends signed statement"]
B3 --> B4["App trusts the statement"]
end
| Aspect | SWA | SAML / OIDC |
|---|---|---|
| What the app receives | Typed username and password | Signed statement from Okta |
| Where the password lives | In the app and in Okta | Nowhere for this sign-in |
| App can be reached directly with password | Yes | No, once SSO is enforced |
| Second step enforced | Only at the tile | At the Okta sign-in for every use |
| Leaver cut-off | Tile only | All sign-in, plus accounts with provisioning |
| Accountability | May be a team login | Individual identity |
| Plugin needed | Yes | No |
Handing the guard a key is different from showing a badge the guard can verify.
12Architecture and Components of the Migrated Setup
After migration, a handful of parts do the work.
flowchart TD
U["Employee or contractor"] --> OK["Okta sign-in and policies"]
OK --> SSO["SAML or OIDC integration per app"]
SSO --> APP["Modernized application"]
OK --> PRV["Provisioning (SCIM or other)"]
PRV --> APP
GRP["Groups and rules in Okta"] --> SSO
GRP --> PRV
OK --> LOG["System Log and monitoring"]
GW["Gateway or reverse proxy"] -.-> LEG["Legacy app that cannot use standards"]
OK -.-> GW
| Component | Responsibility |
|---|---|
| Okta sign-in and policies | Prove identity, apply strong sign-in rules |
| Application integration | The trust link between Okta and the app |
| Provisioning | Create, update, remove accounts |
| Groups and rules | Decide who gets which app and role |
| Gateway (where needed) | Bridge apps that cannot use standards |
| Logs and monitoring | Evidence and early warning |
Notice that groups feed both sign-in and provisioning. One decision about who should have the app flows to both halves.
A railway has tracks, signals and a control room. Remove any and the timetable collapses.
13Internal Working: One Federated Sign-In, Step by Step
Follow Anita from Brightwater’s billing team as she opens a migrated application.
sequenceDiagram
participant A as Anita
participant O as Okta
participant S as Billing application
A->>O: Clicks the billing tile
O->>A: Checks session, asks for second step if policy says so
A->>O: Proves identity
O->>O: Applies app policy: group, device, network
O->>S: Sends signed statement with email and role
S->>S: Verifies signature and audience
S->>S: Matches email to existing account
S->>A: Opens session, no password typed
Click
Anita opens the tile or goes to the application and is redirected to Okta.
Prove
Okta checks she is signed in and, if the policy requires, asks for a second step.
Policy
Okta checks group membership, device and network for this application.
Statement
Okta creates a signed statement with her email and role.
Check
The application verifies the signature, the intended audience and the time.
Match
The application finds her existing account by email or another identifier.
Session
The application opens her session without a password.
Notice step six. If the application cannot match the statement to her existing account, she gets a blank account, a new duplicate, or an error. Matching is where most migrations stumble.
A guard checks the badge, reads the name, and finds the person on the guest list. If the list has a different spelling, the guest waits outside.
14Okta Building Blocks for the Migration
List what Okta offers before planning the work.
| Okta capability | How it helps |
|---|---|
| Application catalogue and custom integrations | Prebuilt or custom SAML and OIDC connections |
| Provisioning integrations and SCIM | Automatic account lifecycle |
| Groups and group rules | Assign access and roles |
| Authentication policies | Second steps and conditions per app |
| Network zones and device conditions | Place and device rules |
| Workflows | Custom steps such as ticket creation |
| Reports and System Log | Usage, errors and evidence |
| Preview environment | Test integrations safely |
| Access gateway or similar products | Bridging legacy apps |
Verify: Which of these capabilities are included in your Okta edition, the exact names of products for legacy gateways and their current availability should be confirmed in current official documentation.
A builder lists tools and materials before quoting the job.
15Discovery: Finding Every SWA Application
You cannot modernize what you have not counted.
Start by listing every application that uses SWA in Okta. Then go further, because the list inside Okta is rarely the whole story.
- Export the application list from Okta and filter for SWA sign-in modes.
- Pull usage reports: who signs in, how often, last use.
- Check shared credential applications separately; they are the riskiest.
- Ask application owners and teams about tools used outside Okta.
- Review browser extension deployments and password manager exports for forgotten logins.
- Look at expense and procurement records for software nobody told IT about.
| Source | What it reveals |
|---|---|
| Okta application list | Known SWA apps |
| Usage reports | Dead or rarely used apps |
| Owners and managers | Real purpose and users |
| Procurement | Unlisted tools |
| Network or proxy data | Sites people really use |
Verify: Which reports and exports your Okta edition provides for application sign-in methods and usage should be confirmed in current documentation.
Before moving house you count the boxes in every cupboard, even the ones you forgot.
16Classifying Applications: Risk, Use and Ownership
Once found, each application needs a few facts recorded.
| Fact | Why it matters |
|---|---|
| Owner | Someone must decide and test |
| Data it holds | Drives risk and priority |
| Number of users and frequency | Drives impact and communication |
| Shared or individual accounts | Shared is highest risk |
| Internet-facing or internal | Exposure |
| Vendor and version | Determines support for standards |
| Contract renewal date | Moment of leverage for vendor changes |
| Current sign-in method and notes | Starting point |
| Dependencies | Other apps or scripts that sign in the same way |
- Keep it in one register, not in many spreadsheets.
- Assign a risk tier using data sensitivity, exposure and shared accounts.
- Record unknowns honestly and chase them.
This register is the backbone of the programme. Every later chapter refers back to it.
A ship’s manifest lists every crate, its weight and its destination. Without one, loading is guesswork.
17Questions to Ask Each Vendor
A short, standard list saves weeks of back-and-forth.
| Question | Why it matters |
|---|---|
| Do you support SAML, OIDC or both for sign-in? | Decides the target |
| Which licence tier includes SSO? | Cost |
| Can local password sign-in be disabled for users? | Needed to close the back door |
| How does your product match a signed statement to an account? | Matching rules, identifiers |
| Do you support SCIM or another provisioning method? | Lifecycle |
| Can roles be set from attributes in the statement? | Role mapping |
| How does single logout work? | Session handling |
| What are your certificate or key renewal steps? | Operations |
| Is there an administrator who is exempt from SSO? | Break-glass design |
| What happens to existing accounts when SSO is switched on? | Migration risk |
- Send the questions in writing and keep the answers.
- Ask for documentation links, not just yes or no.
- Ask the vendor for a test tenant if possible.
- Record vendor contacts and support routes.
Before hiring a builder you ask the same ten questions of every builder.
18Prioritising: Building the Waves
You cannot move 140 applications at once. Group them into waves.
| Wave | Contents | Reason |
|---|---|---|
| Wave 0 | Pilot: three willing, low-risk apps | Learn the process |
| Wave 1 | Highest-risk apps with vendor support ready: shared accounts, sensitive data, internet-facing | Biggest risk reduction |
| Wave 2 | Medium-risk apps with straightforward support | Steady progress |
| Wave 3 | Apps needing vendor upgrades or licence changes | Wait for contracts |
| Wave 4 | Gateway, replace or retire candidates | Longer projects |
| Ongoing | Stuck apps with compensating controls | Reviewed quarterly |
- Mix quick wins with risky targets so that progress is visible and risk falls early.
- Avoid waves that hit one team too hard at once.
- Align waves with contract renewals where possible.
- Respect business calendars: no migrations during month-end for finance apps.
- Review the plan monthly.
Moving house is easier room by room. Starting with the attic and the garage teaches you how the boxes behave.
19Matching People: Identifiers and Existing Accounts
The most common reason a cutover fails is that the application cannot tell which existing account belongs to which person.
Before SSO, the application knows people by a username it has stored: maybe a short code, an old email address or a full name. After SSO, Okta sends a statement with an identifier such as an email address or employee number. The application must connect the two.
| Problem | Effect | Fix |
|---|---|---|
| Application username is a short code; Okta sends email | No match; new blank account | Map attribute, or update the application usernames |
| Old email addresses | Mismatch for people who changed names | Normalise identifiers before cutover |
| Case differences | Match fails for some people | Ask vendor about case handling |
| Duplicate accounts for one person | Wrong account chosen | Merge or retire duplicates |
| Shared logins | No individual to match | Create individual accounts first |
| Contractors with personal emails | Mismatch | Use company identities |
- Run a matching report: for each user in the application, which Okta user matches?
- Fix unmatched users before cutover.
- Choose a stable identifier that does not change when people change name.
- Test with real samples, including awkward cases.
Careful: If matching uses an identifier that an attacker can control, such as a self-chosen email, an attacker may gain access to someone else’s account. Use identifiers controlled by your organisation.
A guest list with misspelt names leaves guests standing at the door.
20Shared and Generic Accounts
A single login used by many people is the biggest hidden risk in an SWA estate.
Shared accounts exist because licences were limited, because setup was quick, or because someone created a login for a team and nobody changed it. They make it impossible to know who did what, and they survive staff changes.
| Option | How it works | Notes |
|---|---|---|
| Create individual accounts | Everyone gets their own login via SSO and provisioning | Best option; may cost licences |
| Role-based accounts through SSO | A few named roles, each assigned to individuals | Good when licences are tight |
| Keep one shared account behind SSO with checkout | Access through a vault with logging | Compensating control only |
| Retire the application | If used rarely | Consider replacement |
- List every shared SWA login and who knows the password.
- Change those passwords at cutover and every time someone leaves while the account exists.
- Aim to eliminate shared accounts, not to hide them better.
- Where licences are the barrier, raise it with the business as a risk decision.
A key hung on a nail by the door is convenient and tells you nothing about who came in.
21Closing the Back Door: Turning Off Local Passwords
A modernized application that still accepts passwords is only half modernized.
After SSO is working, the application’s own login page may still accept usernames and passwords. An attacker with a phished or leaked password can use it, ignoring Okta completely. The job is not done until local password sign-in is disabled for ordinary users.
Confirm SSO works for everyone
All users have signed in via SSO at least once, or have been tested.
Disable password sign-in
Use the vendor setting that enforces SSO for ordinary users.
Keep a controlled exception
One or two emergency administrator accounts with long unique passwords, stored securely, alerted on use.
Rotate remaining passwords
Anything that survives must be changed.
Test the closure
Try to sign in with a local password and confirm it fails.
Record the evidence
Setting screenshot or export, test result, exception register.
- Some vendors cannot disable local passwords for administrators; document and compensate.
- Some applications keep programming interfaces with their own keys; review them separately.
- Some have mobile clients that use passwords; check them.
Verify: Whether each vendor allows local password sign-in to be disabled, and exactly how, should be confirmed with the vendor for every application.
Locking the new front door while leaving the old back door open fools nobody.
22Attributes, Roles and Claims
The signed statement can carry more than a name. It can carry what the person is allowed to do.
| Attribute | Used for | Source in Okta |
|---|---|---|
| Email or employee number | Matching the account | Profile |
| First and last name | Display and records | Profile |
| Department | Routing and reporting | Profile |
| Role or group | What the person may do in the app | Groups |
| Manager | Approvals | Profile |
| Region | Data access | Profile |
- Send only the attributes the application needs.
- Define roles in Okta groups, and map each group to an application role.
- Check the application’s role names exactly; a mistyped role can lock people out or grant too little.
- Beware of attributes users can edit themselves; do not base roles on them.
- Review default roles: new users should not get powerful roles by accident.
Careful: Do not send sensitive attributes that the application does not need. Each extra attribute is more data in transit and more to protect.
A badge shows a name and a colour. The colour decides which doors open.
23Assigning Access Through Groups
Move from one-by-one assignment to rule-based groups.
- Create groups that match job functions or application roles.
- Use group rules based on profile data, where profile data is trustworthy.
- Assign groups to applications, not individuals.
- Name groups clearly: app, role, purpose.
- Give groups owners.
- Plan access reviews for sensitive groups.
| Old way (SWA) | New way |
|---|---|
| User assigned to a tile one by one | Group assigned to the app with a role |
| Password set per user | No password at all |
| Leaver tile removed | Leaver removed from groups; accounts deactivated |
This is also the best moment to clean up who has access. Do not copy bad assignments from the old tile into the new groups. Ask owners to confirm.
A school assigns classes by year group, not by choosing each child’s desk.
24Migration Waves and the Cutover Steps
Each application passes through the same steps, whatever its wave.
flowchart TD
A["Application selected for migration"] --> B["Vendor confirms SAML or OIDC support"]
B --> C["Configure integration in test or preview"]
C --> D["Match users and fix identifiers"]
D --> E["Pilot with a small group"]
E --> F{"Pilot successful?"}
F -->|"No"| C
F -->|"Yes"| G["Announce cutover date"]
G --> H["Switch tile to federation, run parallel period"]
H --> I["Enforce SSO, disable local passwords"]
I --> J["Rotate or remove old credentials"]
J --> K["Retire SWA tile, record evidence"]
| Stage | Typical duration |
|---|---|
| Vendor confirmation | 1 to 3 weeks |
| Configure and match | 1 to 2 weeks |
| Pilot | 1 week |
| Parallel run | 1 to 4 weeks |
| Enforcement and retirement | 1 week |
Durations are illustrations. Simple applications move in days; complicated ones take months because of vendor work.
A ship docks, unloads, inspects and is released. The order does not change, only the time each step takes.
25Parallel Running and Coexistence
For a short time, the old and new sign-in may both work. Plan it carefully.
- Run the federated and SWA tiles side by side for a limited period.
- Make the new one the default and label the old one clearly.
- Set an end date and tell everyone.
- Watch usage numbers: how many still use the old path?
- Chase stragglers by name.
- Do not leave the old path open indefinitely.
| Risk of parallel running | Control |
|---|---|
| Users keep using the old path | End date, reminders, usage tracking |
| Confusion over two tiles | Clear naming |
| Attackers exploit the old path | Time limit and monitoring |
Careful: A parallel period without an end date becomes permanent. Put the date in the plan and in the communication.
When a new bridge opens, the old ferry runs a few more weeks, then stops.
26Testing the Migration: Functional Checks
Each application needs a test list before and after.
| Test | Pass looks like |
|---|---|
| Sign in from the Okta tile | Lands in the right account, no password asked |
| Sign in by going straight to the application | Redirected to Okta, then in |
| Right account is matched | Existing data visible, no duplicate |
| Roles map correctly | Each role sees expected features |
| New user is created correctly (provisioning or JIT) | Account exists with right role |
| User is removed on leaving | Account deactivated |
| Sign out behaves as designed | Session ends as expected |
| Mobile or desktop client | Works with SSO or documented alternative |
- Test with real people in each role, not only administrators.
- Test on the browsers and devices people really use.
- Keep test accounts for each role.
- Record results in the register.
Before a plane enters service, every control is moved and every light is checked.
27Testing the Migration: Negative and Edge Cases
Mistakes love the edges. Test what should fail.
- A user not in the group is refused.
- A leaver cannot sign in by any path.
- A local password no longer works, once enforcement is on.
- A stolen statement is rejected after expiry.
- A user with two accounts in the application is handled safely.
- A user whose email changed still matches.
- A very long session ends at the expected time.
- A user from a blocked place is refused by policy.
| Case | Expected |
|---|---|
| User outside the group clicks the app link | Refused at Okta |
| Local login with old password after enforcement | Refused |
| Leaver tries direct app URL | Redirected to Okta, refused |
| Administrator emergency account | Works, raises an alert |
Verify: How each application handles expired statements, clock differences and duplicate accounts should be confirmed during vendor testing.
A lock is tested by trying to open it without the key.
28Mobile Apps and Desktop Clients
Not everyone reaches an application through a web browser.
Many business applications have mobile apps and desktop programs. These clients may use their own sign-in screens and, in older products, a stored password. SWA through a browser plugin does nothing for them. Modernizing is a chance to fix them too.
| Client | Common issue | Approach |
|---|---|---|
| Mobile app from the vendor | May not support SSO or needs a special login flow | Check vendor SSO for mobile; use system browser sign-in where supported |
| Desktop thick client | Stores its own password | Check for SSO support; otherwise gateway or keep with controls |
| Programming interfaces and scripts | Use keys or passwords | Move to API tokens or service identities with owners |
| Email or sync clients | Legacy password protocols | Migrate to modern authentication |
- Ask the vendor about client support for SSO before the cutover.
- Test real devices.
- Plan communication specifically for mobile users.
- Handle device-level rules, such as managed device requirements.
Verify: Which clients the vendor supports for SAML or OIDC and how Okta handles mobile sign-in should be confirmed in vendor documentation and Okta documentation.
A shop has a front door and a delivery door. Locking only one leaves the other.
29Retiring the Browser Plugin and SWA Tiles
The last step of each migration is removing the old path.
- Remove the SWA tile and the old integration from users once the federated one is live.
- Delete the stored credentials held for that application.
- Remove the application from plugin deployment lists if the plugin is no longer needed.
- When no SWA applications remain, retire the plugin itself from devices.
- Update help pages and training.
- Record the retirement date in the register.
| Item to retire | Why |
|---|---|
| Old tile | Avoid confusion |
| Stored credentials | Reduce the stock of secrets |
| Shared password | No longer needed; change the application password |
| Plugin deployment | Fewer moving parts on devices |
Retirement is the step teams skip. Without it, the old password still exists and the old path still works.
After a new bridge opens, someone must close the old crossing, or people keep using it.
30Legacy Applications Behind a Gateway
Some applications cannot speak SAML or OIDC at all. A gateway can stand in front of them.
A gateway, or reverse proxy, sits between the person and the application. The person signs in to Okta. The gateway checks the result and then passes the person to the application, sometimes by adding identity details to the request, and sometimes by filling the application’s own login in a controlled way.
| Approach | How it works | Watch for |
|---|---|---|
| Header-based sign-in | Gateway adds identity headers the app trusts | The app must accept headers only from the gateway |
| Form replay by the gateway | Gateway signs in to the app with a managed credential | Credential management and rotation |
| Network-level controls | Only the gateway can reach the app | Bypass routes must be closed |
- Place the application on a network where only the gateway can reach it.
- Protect the gateway as a high-value system.
- Plan for availability: if the gateway fails, so does access.
- Record the gateway as a temporary measure with an end date where possible.
Verify: Which Okta products or partner tools provide gateway capability, and whether they are available in your edition, should be confirmed in current official documentation.
An interpreter at the door lets a visitor who speaks only one language talk to a host who speaks another. The host still needs to be safe.
31Applications That Cannot Be Modernized Yet
Some applications are stuck, and honesty about them is better than pretending.
| Reason | Compensating controls |
|---|---|
| Vendor has no standards support and no gateway option | Restrict by network; MFA at tile; shorter credential life; monitor |
| Contract expires in two years | Plan replacement; reduce users |
| Used by a handful of people | Review access quarterly; consider retiring |
| Embedded in an old process | Document the dependency; plan project |
- Keep a list of stuck applications with owners and end dates.
- Apply extra controls: network limits, stronger tile policy, frequent access review, password rotation.
- Review the list quarterly; each vendor update may unlock support.
- Tell the business the risk and get an owner to accept it in writing.
Careful: A compensating control that nobody checks is a hope. Assign an owner and a test.
A very old bridge still carries traffic, but with a weight limit and an inspector.
32Working With Vendors and Timelines
Your timetable depends on someone else’s product.
- Send the standard questions early and chase politely.
- Ask for roadmaps where support is coming.
- Use renewals to negotiate SSO inclusion.
- Ask for test environments.
- Escalate through your account manager when support is slow.
- Keep a log of vendor commitments and dates.
| Vendor behaviour | Response |
|---|---|
| Support exists but costs more | Weigh licence cost against risk; escalate for approval |
| Support is planned | Agree date; plan wave accordingly |
| Support refused | Choose gateway, replace or compensate |
| Vendor unresponsive | Escalate; consider replacement |
A delivery date depends on the supplier. Keep the supplier’s number handy.
33Licence Costs and the Business Case
Some vendors charge extra for SSO. Weigh it against the risk and the savings.
| Cost | Notes |
|---|---|
| Vendor licence uplift for SSO | Varies widely; sometimes large |
| Okta licences for provisioning and gateways | Depends on edition |
| Project effort | Discovery, configuration, testing, communication |
| Training and support | Short bursts |
| Replacing or retiring apps | Larger projects |
| Benefit | How to measure |
|---|---|
| Fewer stored passwords | Count of SWA credentials removed |
| Fewer password resets for these apps | Help desk tickets |
| Faster leaver cut-off | Hours from leaving to full removal |
| Better audit results | Findings related to application access |
| Reduced risk of password theft | Incidents and phishing outcomes |
Illustrative arithmetic: suppose 40 of the 140 SWA applications need a licence uplift of 6,000 dollars a year each, or 240,000 dollars. If the programme removes 110 stored password sets, cuts password reset calls by 3,000 a year at 15 dollars each (45,000 dollars) and avoids one incident costing 400,000 dollars, the case is made on risk, not on direct savings. Use your own figures.
Paying for a better lock is easier to justify after you have counted the valuables.
34Raising the Security Bar With Per-Application Policies
Federation lets Okta apply strong rules for every application, which SWA could not do at the app itself.
| App tier | Policy |
|---|---|
| Critical | Phishing-resistant second step, managed device, known network |
| High | Second step, managed device |
| Medium | Second step on risk signals |
| Low | Standard sign-in with session limits |
- Set the policy per application or per group of applications.
- Test the policy before enforcement.
- Include exception rules for emergency accounts, alarmed.
- Apply stronger rules to administrative access in each application.
- Review policies when applications change tier.
Verify: Which policy conditions and authenticators your edition supports at application level should be confirmed in current documentation.
A building gives each room its own lock strength, not the same lock on the cupboard and the vault.
35Sessions, Logout and Token Lifetimes
Signing in is easy to design. Signing out is where surprises hide.
- Decide how long an application session should last, in line with its tier.
- Learn what single logout really does for each application; many do not support it fully.
- Make sure that closing the Okta session eventually ends application sessions.
- Plan for shared computers and clear sign-out messages.
- Check idle timeouts in the application itself.
| Setting | Typical range |
|---|---|
| Critical app session | Shorter, with re-authentication |
| Ordinary app session | A working day |
| Idle time | Fifteen to sixty minutes, by risk |
Verify: Each vendor’s support for single logout and session controls, and how Okta session lifetimes interact with them, should be confirmed during testing.
Closing the shop door does not make customers inside leave. You must also switch off the lights and ask them to go.
36Certificates and Keys: Keeping SAML Alive
A SAML connection is only as alive as its certificate.
SAML uses a certificate to sign statements. Certificates expire, often after a year or more. When one expires, sign-in to that application fails for everyone. OIDC uses keys that are often rotated automatically, but the application must be able to follow the rotation.
- Keep a register of every SAML certificate with its expiry date.
- Set reminders at 90, 30 and 10 days.
- Learn the vendor’s renewal steps: some need a manual upload on their side.
- Plan renewal windows outside busy periods.
- Test the new certificate with a test user before switching.
- Assign an owner for each renewal.
| Risk | Control |
|---|---|
| Silent certificate expiry | Register, reminders, alerts |
| Vendor needs manual update | Calendar with vendor contact |
| Renewal at peak time | Maintenance window |
| Single person knows how | Runbook and backup owner |
Verify: How Okta rotates signing keys for each application type, and how long certificates last, should be confirmed in current documentation.
A passport expires on a printed date. Travellers who ignore it are stopped at the airport.
37Monitoring After Cutover
Cutover is the beginning of watching, not the end of the project.
| Signal | Why it matters |
|---|---|
| Sign-in failure rate by application | Early sign of mismatch or certificate trouble |
| Number of users still using SWA | Progress and stragglers |
| Local password sign-in attempts at the app | Attackers or unfinished enforcement |
| New accounts created at the app outside provisioning | Bypass routes |
| Provisioning errors | Broken lifecycle |
| Policy denials | Rules too strict or correct |
| Help desk calls by application | Pain points |
- Watch each application closely for two weeks after cutover.
- Create alerts for sudden drops in sign-ins.
- Compare Okta logs with the application’s own logs where possible.
- Review a weekly report during waves.
Verify: Which System Log events and reports your edition provides for application sign-in and provisioning, and how to stream them, should be confirmed in current documentation.
After a new bus route opens, an inspector rides it for the first fortnight.
38Preparing the Help Desk
The first people to hear about a problem are the support staff. Give them what they need before cutover day.
| Question from users | Prepared answer |
|---|---|
| Where did my tile go? | The new tile is in the same place, named the same. The old one is gone. |
| It asks for a second step now. Why? | The company now protects this app with the same sign-in as your other apps. |
| I get an error saying no account found | Check the identifier match; open a ticket with the application owner. |
| I used to use a shared login | Each person now has their own sign-in; request access through your manager. |
| The mobile app will not sign in | Follow the mobile steps; here is the guide. |
- Hold a briefing a week before each wave.
- Give agents a one-page guide per application.
- Set up a fast escalation route to the migration team.
- Track calls by application and feed them back.
- Staff extra capacity in the first week of each wave.
A shop opening a new till trains the cashiers before the doors open.
39Communicating With Users
People accept change when they know what, when and why.
Four weeks ahead
Announce the programme and the first wave, with the benefits.
Two weeks ahead
Tell affected users the date, what will look different and what to do.
One week ahead
Reminder, with a link to a short guide.
Cutover day
Message: it is live, here is where to get help.
One week after
Thank, ask for feedback, announce the end of the old tile.
- Write in plain language; avoid acronyms.
- Say what stays the same and what changes.
- Explain why: safer, no password to remember.
- Include screenshots.
- Warn people about look-alike phishing: the real message will only link to the company portal.
Careful: Attackers copy migration announcements. Send from known addresses, link only to the company sign-in page, and never ask for passwords in a migration message.
A bus company puts up notices about a route change before it happens, not after.
40Training Users and Application Owners
A short, practical session removes most fear.
- Offer a five-minute video per wave.
- Hold drop-in sessions for the first day of each wave.
- Train application owners in access requests, roles and what to do when someone cannot sign in.
- Train administrators in emergency procedures.
- Keep a frequently asked questions page up to date.
| Audience | Content |
|---|---|
| Users | What changes, how to sign in, who to call |
| Application owners | Roles, groups, reviews, incidents |
| Help desk | Common errors and fixes |
| Administrators | Emergency access, certificates, monitoring |
A driving instructor shows the new car’s controls before the first lesson on the road.
41Rollback Plans
Every cutover needs a way back.
- Keep the SWA tile and credentials available, hidden or disabled, until the migration is stable.
- Define rollback triggers in advance: error rate above a number, key users blocked.
- Decide who can call a rollback and how fast.
- Know the steps: re-enable the old tile, turn off enforcement, tell users.
- Test rollback in preview.
- After rollback, explain and plan the corrected cutover.
| Trigger | Action |
|---|---|
| Over 5 percent of users cannot sign in after cutover | Roll back, investigate |
| Critical user group blocked | Roll back or provide manual route |
| Certificate error across all users | Fix certificate; roll back if not fixed within an hour |
Careful: Do not roll back by re-enabling shared passwords that were changed for security reasons. Prepare a safe fallback before the day.
A mountaineer sets a turn-back time before the climb, not during the storm.
42Failure Scenarios and Recovery
Migrations fail in predictable ways. Plan for them.
flowchart TD
A["Problem after cutover"] --> B{"What kind?"}
B -->|"Nobody can sign in"| C["Check certificate, redirect address, clock; roll back if needed"]
B -->|"Some users get blank or wrong accounts"| D["Check identifier matching; fix mapping or data"]
B -->|"Roles wrong"| E["Check group to role mapping"]
B -->|"Provisioning failing"| F["Check credentials and connector; fall back to manual"]
B -->|"Old password still works"| G["Complete enforcement; close local login"]
C --> H["Fix, retest, record lessons"]
D --> H
E --> H
F --> H
G --> H
| Failure | Effect | Recovery |
|---|---|---|
| Certificate expired | Everyone locked out | Renew, upload, test; roll back if needed |
| Wrong redirect address | Sign-in error | Correct in both places |
| Clock drift between systems | Statement rejected as expired | Fix time synchronisation |
| Mismatched identifier | Duplicate accounts | Merge, fix mapping |
| Provisioning credential expired | Accounts not created or removed | Renew; reconcile lists |
| Enforcement skipped | Back door remains | Complete and test |
After every incident, ask why it happened and why it was not noticed sooner. The second answer is often a missing alert.
A hospital reviews every mistake without blame and updates the checklist.
43Performance, Scale and Limits
A hundred and forty migrations create load on people, systems and vendors.
- Know the limits on integrations, groups and rules in your Okta edition.
- Plan rate limits for provisioning and bulk changes.
- Do not move many large applications on the same day.
- Check vendor limits on provisioning calls.
- Measure sign-in latency before and after.
- Plan team capacity: how many migrations can your people handle at once?
| Resource | Constraint | Plan |
|---|---|---|
| Team | Two engineers | Four applications a month per wave |
| Vendors | Support queues | Start questions early |
| Help desk | Peak call volume | Space waves apart |
| Okta | Rate limits | Batch bulk changes |
Verify: Okta limits on applications, groups, rules and API rates depend on your plan. Confirm numbers in current documentation.
A kitchen can cook ten dishes at once, not a hundred. Planning the order is part of cooking.
44Privacy and Data Handling in Migration
Migration touches personal data: names, emails, account lists, passwords.
General orientation only. This chapter is not legal advice. Privacy and data protection laws differ by country and sector. Ask your privacy and legal teams.
- Treat exports of user lists as sensitive; store them securely and delete after use.
- Never put passwords in spreadsheets or tickets.
- Send only the attributes the application needs.
- Check where the vendor stores data and what contract terms apply.
- Delete stored SWA credentials after retirement.
- Keep logs only as long as needed.
| Data | Handling |
|---|---|
| User list exports | Encrypted storage, restricted access, deletion date |
| Old SWA credentials | Deleted after retirement |
| Shared passwords | Changed and removed from documents |
| Logs | Retention per policy |
Packing boxes for a move should be sealed and labelled, and the empty ones thrown away.
45Advantages, Disadvantages and Trade-offs
No approach is perfect. Say plainly what you gain and what you pay.
Advantages
- Passwords removed from the sign-in path
- Strong, consistent policies at every app
- Automatic leaver cut-off with provisioning
- Individual accountability in logs
- No dependency on browser plugins
- Fewer password resets
Disadvantages
- Takes effort and vendor cooperation
- Some vendors charge extra
- Certificates to manage
- Not every app can move
- Short-term risk during cutover
- Needs communication and training
| Trade-off | Choose X when | Choose Y when |
|---|---|---|
| Migrate now vs wait for vendor | Risk is high | Support is promised soon and risk is low |
| Gateway vs replacement | App is needed long term | App is near end of life |
| Big waves vs small waves | Team is large and apps simple | Apps are complex or risky |
State the downsides when you propose the programme. Leaders trust plans that name their own risks.
A new engine costs money and downtime. It saves fuel and breakdowns afterwards.
46Design Patterns and Anti-Patterns
Patterns are habits worth repeating. Anti-patterns are traps others have already fallen into.
What it looks like
Every SWA application is recorded with owner, risk, vendor support and decision before any migration starts.
Why it works
Priorities rest on facts, and nothing is forgotten.
What it looks like
Each application goes through the same four stages and does not count as done until the local password path is closed and the old tile is retired.
Why it works
The password actually disappears, not just the tile.
What it looks like
Shared accounts are replaced by individual identities through SSO and provisioning.
Why it works
Accountability returns, and leavers lose access automatically.
What it looks like
The application accepts both Okta sign-in and its own passwords.
Why it hurts
Attackers use the password path and skip Okta’s protections.
What it looks like
Migrating dozens of applications at once.
Why it hurts
Failures overwhelm the help desk and hide the cause.
What it looks like
Letting the application link accounts using an email the user can change.
Why it hurts
An attacker can claim another person’s account.
What it looks like
No register or reminders for SAML certificate expiry.
Why it hurts
One expiry causes a sudden total outage.
47Common Myths About Moving From SWA to SAML or OIDC
Some ideas sound sensible but lead teams astray.
| Myth | Reality |
|---|---|
| SWA is already single sign-on, so we are fine | It hides the password but keeps it. Federation removes it. |
| Turning on SAML finishes the job | Local passwords, shared accounts and old tiles must still go. |
| Every app can be modernized | Some need gateways, replacement or compensating controls. |
| Vendors charge nothing for SSO | Some do, and it can be large. |
| Migration is only a technical task | Communication, training and ownership matter equally. |
| We can migrate everything in a weekend | Waves spread risk and effort. |
| Users will complain about the new sign-in | Most prefer it once they see no password is needed. |
| Provisioning is optional | Without it, leavers’ accounts linger. |
| Certificates renew themselves | SAML certificates need owners and reminders. |
| Once migrated, no more work | Monitoring, reviews and renewals continue. |
Old sailors’ tales about the weather can be charming and wrong. Checking the barometer takes a minute.
48Best Practices Checklist
A short list to read before every wave and every quarterly review.
- Every SWA app is recorded with owner, risk, vendor support, decision and date.
- Shared accounts are listed, prioritised and replaced.
- Vendors have answered the standard questions in writing.
- Targets are chosen per app: SAML, OIDC, gateway, replace, retire or compensate.
- Users are matched by a stable, organisation-controlled identifier.
- Roles are mapped from Okta groups, not user-editable fields.
- Provisioning is enabled where supported; manual processes are documented where not.
- Pilot first, then parallel run with an end date.
- Local password sign-in is disabled; emergency accounts are controlled and alarmed.
- Stored SWA credentials and shared passwords are deleted or rotated at retirement.
- Certificates are in a register with owners and reminders.
- Help desk, users and owners are briefed before each wave.
- Rollback is planned and tested.
- Monitoring is in place after cutover.
- Stuck apps have compensating controls, owners and end dates.
A pilot reads a checklist before every flight, however many hours she has flown. The list is short because it matters.
49Modernization and Zero Trust
Zero trust says never rely on a password alone and always check the context. SWA applications are the opposite.
| Zero trust idea | What federation adds |
|---|---|
| Verify explicitly | Okta checks identity and context for every sign-in |
| Least privilege | Roles and groups define what each person may do |
| Assume breach | No stored passwords to leak; short-lived statements |
| Continuous evaluation | Policies can change without touching the app |
Every SWA application moved to federation is a small step toward a world where a stolen password is not enough. A leader asked why the company is doing this can answer simply: because passwords are the weakest link and we are removing them.
A modern building uses badges that can be cancelled at once. Metal keys can be copied without anyone knowing.
50Ownership and Governance of the Programme
A migration of this size needs clear owners.
| Role | Duty |
|---|---|
| Programme owner | Plan, budget, progress, decisions |
| Application owners | Test, accept, communicate with their users |
| Identity engineers | Integrations, groups, policies, certificates |
| Security | Risk tiers, policies, exceptions |
| Help desk lead | Readiness and feedback |
| Procurement and vendor manager | Contracts, licence changes |
| Executive sponsor | Backing and escalation |
- Hold a weekly stand-up during waves and a monthly review after.
- Record decisions and exceptions in the register.
- Require sign-off from the application owner before enforcement.
- Give each application a named backup owner.
A ship with no captain drifts. One with ten captains argues about the course.
51Evidence of Migration for Auditors
Show not only that apps were moved, but that the old paths are closed.
| Evidence | What it shows |
|---|---|
| Application register with dates and decisions | Scope and progress |
| Integration configuration export | How the app trusts Okta |
| Setting showing local password sign-in disabled | Back door closed |
| Test results | Controls work |
| Provisioning records | Lifecycle works |
| Exception register | Honest list of stuck apps |
| Deleted credential records | Stock of secrets reduced |
- Collect evidence as you go, not at the end.
- Keep it by application and date.
- Include before and after counts of SWA apps.
- Mask personal data in screenshots.
General orientation only. What evidence your auditors accept depends on your frameworks. Confirm with your compliance team.
A builder keeps photos of the work before the walls were closed.
52Documentation That Survives Staff Changes
People move on. The programme must keep working without them.
- The application register: owner, tier, vendor, decision, dates.
- Per-application runbook: configuration, matching, roles, certificate details, vendor contacts.
- Certificate register: expiry dates and renewal steps.
- Emergency access procedure: who, how, how it is alarmed.
- Rollback plans and cutover checklists.
- Lessons log from each wave.
Test the documents. Give a runbook to a new colleague and watch. Where they stumble, the document needs repair.
A lighthouse keeper leaves a logbook for the next keeper. The light stays on because knowledge is handed over with the keys.
53Keeping Up With Okta and Vendor Changes
Okta and application vendors change often. A migration done well can still drift.
- Read Okta release notes on a schedule.
- Watch vendor release notes for changes to SSO settings.
- Keep a list of assumptions, such as how an app matches users, and retest when a change touches one.
- Re-check enforcement after major vendor upgrades; some reset settings.
- Watch for renamed features and edition changes.
- Plan time each quarter for small fixes.
Write down which settings each application depends on. When a change is announced, you will know within minutes whether it matters.
A ship’s navigator checks the chart against the sea every watch. The coast looks the same, but sandbanks move.
54A Design Exercise: Brightwater’s Programme From Start to Finish
Let us solve the problem from the start of this guide, step by step.
Count
140 SWA apps found; 31 with shared logins; 18 internet-facing; 22 unused in 12 months.
Retire the unused
22 apps retired with owner confirmation; credentials deleted.
Classify and ask vendors
Standard questions sent to 118 vendors; replies show 74 support SAML or OIDC, 21 need a licence uplift, 17 offer no support, 6 are unresponsive.
Choose targets
74 federate; 21 decide on cost basis; 11 gateway candidates; 6 replace; 6 retire; remaining stuck with controls.
Build waves
Wave 0 pilot of 3; Wave 1 the 31 shared-login apps with vendor support; later waves by risk.
Fix identifiers
Matching reports for each app; duplicates merged; names normalised.
Cut over
Parallel run of two weeks; end date announced; enforcement; local passwords disabled; emergency accounts alarmed.
Retire and record
Old tiles removed, credentials deleted, shared passwords changed, evidence stored.
Watch and improve
Weekly dashboard; certificate register; quarterly review of stuck apps.
flowchart LR
R["Register of 140 SWA apps"] --> V["Vendor answers"]
V --> T["Target per app"]
T --> W["Waves 0 to 4"]
W --> C["Cutover: federate, match, enforce"]
C --> X["Retire tile and credentials"]
X --> M["Monitor and review"]
M --> R
T --> S["Stuck apps with compensating controls"]
S --> M
A year later, 96 of the original 140 applications use SAML or OIDC with local passwords disabled, 22 are retired, 11 sit behind a gateway, and 11 remain on SWA with documented controls and end dates. The shared-login applications are all gone.
Moving house takes planning, boxes and a calendar. The first night in the new place makes it worth it.
55Real-World Scenarios and Worked Numbers
Numbers make the stakes visible. All figures are illustrative and meant to show the thinking, not to predict your results.
Scenario 1: Stock of Secrets
140 SWA apps with an average of 85 active users each hold roughly 11,900 stored credentials, plus 31 shared passwords known by perhaps 15 people each. Migrating 96 applications and retiring 22 removes about 10,000 stored credentials. The count of places where a password can be stolen falls by more than four-fifths.
Scenario 2: Leaver Exposure
Before, an SWA leaver lost the tile on the last day but kept a working application account for an average of 47 days. With provisioning and enforced SSO the exposure drops to under a day for federated apps. With 900 leavers a year across SWA apps, that is roughly 42,000 days of unneeded access reduced to a few hundred.
Scenario 3: Certificate Day
A SAML certificate for the payroll app expires on a Monday at 9:00 with 8,000 users. A register and 30-day reminder would have prompted renewal weeks earlier. The cost of an hour’s outage at 8,000 users at 40 dollars an hour is about 320,000 dollars. The register costs an afternoon to build.
A farmer counts the harvest and the seed. The ratios show whether the farm is healthy.
56A Maturity Path and a 90-Day Plan
You do not need to solve everything at once. Small steps beat grand promises.
| Level | What it looks like |
|---|---|
| 1. Hidden | SWA apps unknown; shared logins everywhere |
| 2. Known | Register complete; owners named; tiers set |
| 3. Moving | Waves under way; shared logins replaced; vendors engaged |
| 4. Closed | Local passwords disabled; tiles and credentials retired; provisioning live |
| 5. Governed | Certificates tracked; stuck apps controlled; reviews, metrics and lessons |
The first 90 days
Days 1 to 20: Discover
Count SWA apps. Find shared logins. Identify owners. Send vendor questions.
Days 21 to 45: Plan
Classify, choose targets, build waves, prepare communications.
Days 46 to 70: Pilot
Migrate three willing apps end to end, including retirement.
Days 71 to 90: Wave 1
Start the highest-risk apps. Open the dashboard. Hold the first monthly review.
Learning to swim starts in the shallow end with a teacher close by. Nobody begins in the deep pool.
57A Troubleshooting Playbook
When someone says “I cannot get into the application since the change,” follow the same steps each time.
| Symptom | Likely cause | First check |
|---|---|---|
| Everyone gets an error at sign-in | Certificate or redirect address | Certificate expiry; addresses in both systems |
| Some users get a blank account | Identifier mismatch | Identifier in the statement versus the app account |
| Wrong role | Group to role mapping | Group membership and role mapping |
| Statement rejected as expired | Clock difference | Time synchronisation on both sides |
| User can still use old password | Enforcement not complete | Vendor setting and test |
| New joiner has no account | Provisioning failure or missing group | Provisioning logs; group membership |
| Mobile app fails | Client not set for SSO | Vendor mobile guidance |
| Old tile still visible | Retirement not completed | Assignments on the old integration |
- State the exact problem: which app, which user, which time.
- Look at Okta’s log for that attempt and the app’s log if available.
- Compare with a working test user.
- Fix the case, then the cause, then check for others with the same pattern.
A mechanic listens, checks fuel, then spark, then air. A fixed routine finds the fault with less luck.
58A Quick Decision Guide: What Should Happen to This SWA App?
Before choosing a target for any app, answer the same short questions.
flowchart TD
A["SWA application"] --> B{"Used in the last 12 months?"}
B -->|"No"| C["Retire: confirm with owner, delete credentials"]
B -->|"Yes"| D{"Does the vendor support SAML or OIDC?"}
D -->|"Yes"| E["Federate, match, enforce, retire tile"]
D -->|"No"| F{"Can a gateway or header integration protect it?"}
F -->|"Yes"| G["Gateway with network lock-down"]
F -->|"No"| H{"Is the app near end of life or low value?"}
H -->|"Yes"| I["Replace or retire on a dated plan"]
H -->|"No"| J["Keep SWA with compensating controls and owner"]
- If you cannot name the owner, find one before deciding.
- If the app has a shared login, move it up the queue whatever the target.
- If the decision is to keep SWA, write the end date.
Before repairing a car, ask whether it is worth repairing, and whether anyone still drives it.
59Small Details That Decide Success
Most migrations stumble on small details nobody wrote down.
Case sensitivity
Emails matched with different capitals fail in some apps.
Time zones and clocks
Keep systems synchronised.
Redirect addresses
Exact spelling on both sides.
Display names
Apps may overwrite names from the statement.
Alias addresses
Some people sign in with an alias.
Test accounts
Mark them so they are not counted or removed by mistake.
Admin accounts
Plan emergency access first.
Scheduled jobs
Scripts signing in with passwords may break at enforcement.
Bookmarks
Users keep old links; redirects help.
A hotel is judged by clean towels, a working key card and a quiet corridor. Little things are what guests remember.
60Common Mistakes in the First Year
Teams repeat the same early errors. Knowing them is a cheap kind of experience.
| Mistake | What it causes | Cure |
|---|---|---|
| Skipping discovery | Surprises mid-programme | Count first |
| Leaving local passwords on | Back door open | Enforce SSO |
| Ignoring shared logins | Accountability gaps | Replace them first |
| No certificate register | Sudden outages | Register and reminders |
| Weak communication | Help desk floods | Plan messages and training |
| No rollback | Prolonged outages | Plan and test |
| Forgetting scripts and mobile | Hidden breaks | Inventory all clients |
| Declaring victory at cutover | Old paths remain | Retire tiles and credentials |
| No owner for stuck apps | Permanent exceptions | Owners and end dates |
New drivers repeat the same few errors: following too close, forgetting mirrors. Hearing about them shortens the learning.
61Getting Colleagues on Board: Change Management
A strong design that people work around protects nothing. Colleagues must see the point and find the new way workable.
- Start with a story. The stolen laptop and the four-year-old shared password make the point.
- Show the benefit to users. No password to remember or reset.
- Involve application owners early. They own the roles and the acceptance.
- Respect busy periods. Keep finance away from month-end and HR from payroll weeks.
- Make the first wave a success. Pick willing teams and support them closely.
- Share progress. Show the falling count of SWA apps.
- Close old paths. People keep using what still works.
When a town opens a new bridge, it also puts up signs and closes the old crossing. A road no one knows about stays empty.
62A Week in the Life of the Programme
A concrete picture shows how the pieces behave together.
Monday
The dashboard shows Wave 2 at 60 percent. The register shows three vendor replies outstanding.
Tuesday
A cutover for the procurement application: pilot group confirmed, parallel run starts, end date announced.
Wednesday
The certificate register shows two renewals due in 30 days. Owners book them.
Thursday
A help desk call reveals an identifier mismatch for people with alias addresses. The mapping is adjusted and a note is added to the runbook.
Friday
Enforcement completes for the reporting tool. The old tile and stored credentials are removed.
Nothing dramatic happens. That is the sign of a healthy programme: small items found early, old paths closed one by one and users who barely notice.
A well-run kitchen sounds calm during service because the shouting happened in rehearsal.
63Contractors and Non-Employees
Not everyone who signs in to your applications is on the payroll. Contractors, auditors, partners and temporary staff often use the same applications, and they are easy to forget during a migration.
With SWA, a contractor often received a stored password and kept it long after the contract ended, because nobody told the application owner. With federation, access follows an Okta account, so the question becomes: does every contractor have one, and who ends it?
- Give each contractor a named account in Okta with a clear end date set when the account is created.
- Assign a sponsor, a real employee who answers for the account and confirms it each quarter.
- Use groups for contractor access, kept separate from employee groups so roles can be reviewed on their own.
- Check the vendor’s licence terms, since some applications count external users differently.
- Never let contractors share a login because a team of three does not need one password.
Include contractors in the discovery step. Ask each application owner who outside the company signs in, and compare the answer with the application’s own user list. Differences are the first findings of the programme.
A building keeps a visitor book and gives each guest a badge with a date on it. Without badges, nobody can tell who is still inside.
64Service Accounts and Automated Access
Not every sign-in is a person at a keyboard. Scripts, scheduled jobs and other systems often sign in to applications using a stored username and password.
When local passwords are disabled at cutover, these quiet users are the first to break, usually at night when nobody is watching. The fix is to find them before enforcement, not after the first failed job.
- Search the application’s logs for accounts that sign in at odd hours or at perfectly regular intervals.
- Ask the owner which jobs, reports or integrations use a sign-in.
- Check whether the vendor offers tokens or keys for automated access, which are better than passwords.
- Give each automated account an owner, a purpose and a review date.
- Keep a short list of exempt accounts if the vendor allows local sign-in only for them, and protect those with long random secrets, network limits and alarms.
Record these accounts in the register. An automated account with no owner is a shared password with a robot’s face.
A hotel has night staff whose names the day staff never learn. When the locks change, someone must remember to give them new keys.
65Reporting Progress to Leaders
Leaders do not want a list of integrations. They want to know whether the company is safer than last quarter and what remains.
- Number of SWA applications, falling over time, with the target.
- Number of shared logins remaining, ideally heading to zero.
- Applications with local passwords disabled as a share of those federated.
- Applications with provisioning and removal tested.
- Certificates expiring in 30 days and whether each has an owner.
- Stuck applications with owners and end dates.
- Help desk calls related to the migration, per wave.
Show one small chart, one page of text and the decisions you need. Say plainly what is late. A report that shows only green loses trust the first time something fails.
A pilot reports speed, fuel and weather. Passengers do not need every dial, but they do need honesty about the turbulence.
66Acquired Companies and Inherited Applications
Mergers bring new people and new applications overnight, and many arrive with their own SWA setups and shared passwords.
- Run the same discovery on the acquired estate before connecting anything.
- Do not import shared logins just to make a deadline.
- Decide which identity source is the master for the merged people, and match on a stable identifier.
- Expect clashes: two employees with the same email name, different formats of employee numbers.
- Prioritise internet-facing applications of the new company first.
- Agree an end date for the old directory so the merge does not leave two worlds permanently.
Treat the acquired applications as a new wave with its own register, owners and vendor questions. The method is the same; only the starting count differs.
When two families share a house, they agree on which keys open which doors before the first night, not after the first lock-out.
67Freeze Calendars and Peak Periods
Every business has weeks when change is unwelcome. Month-end for finance, enrolment for schools, harvest for farms, holiday season for retail.
- Collect the calendar from each application owner at the start.
- Avoid cutover in peak weeks, and avoid the day before holidays.
- Schedule cutover early in the week so help is available.
- Keep one spare window in each wave for problems.
- Do not stack certificate renewals and cutovers in the same week.
If a critical application has only one safe window a year, plan for that window and rehearse beforehand in a test setup. The rehearsal is cheap compared with missing the window.
A bakery does not repaint the shop on the morning before a holiday. It picks a quiet Tuesday.
68Learning From Each Wave
The first wave teaches more than the plan did. Capture the lessons while they are fresh.
- Hold a short review within a week of each wave.
- Ask three questions: what surprised us, what took longer than expected, what would we change?
- Update the runbook template and the vendor questions with each answer.
- Share the lessons with the next wave’s owners, in writing.
- Keep a count of problems by type, such as identifiers, roles, certificates and communication, to see which cause most trouble.
- Thank the people who found the problems.
After three or four waves, the lessons log becomes the most valuable document in the programme, because it holds what no vendor guide will tell you about your own company.
A sailor who writes in the logbook after every trip becomes a captain. One who forgets repeats each storm.
69Glossary of Terms
Quick plain-language meanings for the words used in this guide.
| Term | Meaning |
|---|---|
| Assertion | A signed statement from Okta about who someone is |
| Certificate | A file used to sign SAML statements; it expires |
| Claim | One fact inside a statement |
| Enforcing SSO | Turning off the application’s own password login |
| Federation | Trusting another system to prove identity |
| Gateway | A component that sits in front of an app that cannot use standards |
| Identity provider | The system that proves identity; here, Okta |
| Just-in-time creation | Making an account at first sign-in |
| OIDC | OpenID Connect, a token-based sign-in standard |
| Provisioning | Creating, updating and removing accounts automatically |
| SAML | An XML-based sign-in standard |
| SCIM | A standard for automatic account management |
| Service provider | The application that trusts Okta |
| SSO | Single sign-on |
| SWA | Secure Web Authentication: stored password filled into a login form |
| Wave | A group of apps migrated together |
A traveller’s phrasebook does not make you fluent but stops misunderstandings at the market.
70Frequently Asked Questions
Short answers to questions that come up in almost every project.
A good help desk answers the same ten questions every day with the same calm sentences. Writing them down keeps a team consistent.
71Summary and Key Takeaways
SWA hides passwords. Federation removes them. Moving between the two is a programme, not a switch.
Key Takeaways
- Count first. Build a register of every SWA application with owner, risk, vendor support and decision.
- Fix the worst first. Shared logins and internet-facing apps go to the front of the queue.
- Ask the vendor. Support for SAML or OIDC often exists; licences, gateways, replacement or compensating controls cover the rest.
- Match carefully. Use a stable, organisation-controlled identifier and map roles from Okta groups.
- Close the back door. Disable local passwords, protect emergency accounts, and delete old credentials and tiles.
- Move in waves. Pilot, run in parallel with an end date, communicate, train, watch and be ready to roll back.
- Keep it alive. Track certificates, review stuck apps, monitor logs and re-check settings after vendor changes.