SuccessFactors basic auth is going away: moving Entra HR provisioning to workload identity
Microsoft wants SuccessFactors provisioning off basic authentication before November 2026, and SAP now deletes basic auth for its APIs on 12 November 2027. Here's what stops if you miss it, how the new sign-in works, and the order we'd switch your apps in.
part 8 of 10 · Identity security, from the ground upthe ideaHR sync trades a password for a short-lived token
after reading, you can- Explain why HR provisioning stops quietly, and who notices first, once SAP switches basic auth off
- Spot every tool still sending a password to SuccessFactors using the OData audit log
- Switch each Entra SuccessFactors app to workload identity without losing sync state
If Microsoft Entra creates and removes accounts from SAP SuccessFactors, that feed still logs in to SuccessFactors with a stored username and password, and both vendors want it gone. Switch each SuccessFactors provisioning app to workload identity now, while you can still flip back if something breaks. This guide explains the two deadlines, what you need in place first, and the order we'd do the switch in.
Your HR system is how new hires get a login and leavers lose theirs. That link is changing
When HR enters a new hire in SuccessFactors, Microsoft Entra reads that record and builds the person's account in Active Directory or Entra ID. When someone leaves, the same feed switches the account off. To read those records, Entra signs in to SuccessFactors with a username and password that somebody typed into the setup years ago. SAP is deleting that kind of sign-in for its APIs. Microsoft has added a replacement where Entra proves who it is with a short-lived token instead, checked by SAP Cloud Identity Services. If nobody makes the switch, the feed stops once SAP turns the old sign-in off. Nothing crashes. New hires just don't get accounts, and leavers keep theirs.
Think of a courier who collects the staff list from HR every half hour using a door code. The building is retiring door codes. The courier gets a badge instead, issued fresh each trip and checked by the front desk. If nobody gets the courier a badge, the lists stop arriving and nobody downstairs notices for a while.
- Companies using SuccessFactors as HR
- Entra ID and Active Directory admins
- SAP SuccessFactors admins
- IAM teams running joiners and leavers
- Auditors who test leaver access
- Anyone with another tool reading SF APIs
Why it matters to you
There are two dates, and they don't agree. Microsoft's "What's new" page says customers on basic authentication must move to workload identity before November 2026 to keep the integrations running. SAP's release information now says basic auth for its APIs is deleted on 12 November 2027. SAP pushed that date back on 12 June 2026; until then it was 20 November 2026, which is the date Microsoft was planning around. Don't read the later date as a year of slack. SAP says basic auth goes off by default for every customer in the first half of 2027, with an opt-in to keep it during migration, and it doesn't give a day.
The business risk is a joiner and leaver process that quietly stops. Entra's provisioning service usually runs every 20 to 40 minutes, and each run has to sign in. If it can't, the job can end up in quarantinedefinitionWhat Entra does to a provisioning job that keeps failing, for example on bad credentials. Cycles gradually slow to once a day, and after four weeks the job is disabled.; Microsoft's own example of a cause is invalid admin credentials. From there the runs get gradually further apart until there's one a day, and after four weeks Entra disables the job. You get one email when quarantine starts, and another only if the reason changes. It goes to whatever notification address someone typed in at go-live.
So the first sign is often a new starter with no login on day one. The worse case is the one nobody reports: a leaver whose account is never disabled because the termination never reached the directory. That is exactly the gap an access audit looks for.
-
01 HR enters a hire or a leaver
Someone in HR creates the new hire in Employee Central or sets a termination date. As far as they can tell, the job is done.
-
02 Entra calls the OData API
Every 20 to 40 minutes the provisioning service calls the SuccessFactors API. It still sends the API user's stored name and password.
-
03 SuccessFactors refuses the password
Once basic auth is off for your instance, that call fails. With no other way to sign in, the job can't read a single change.
-
04 The job goes into quarantine
Entra gradually slows the job down to one attempt a day and sends a one-time email. If that address belongs to someone who left, nobody reads it.
-
05 Accounts drift from HR
New hires wait for accounts, movers keep old access, and leavers stay enabled. After four weeks in quarantine Entra disables the job.
For engineers: Microsoft's integration reference still describes the provisioning service calling Employee Central OData endpoints with basic authentication, and the inbound tutorial still asks for an admin username in the form username@companyID plus a password. That's the credential this change removes. Microsoft frames the new method around removing the stored password and using short-lived tokens that SAP's supported model accepts.
What changed, and what didn't
The change at a glance
Since May 2026 the provisioning service can sign in with a token from Entra, swapped through SAP Cloud Identity Services, so there's no password to store. Microsoft still calls it a public preview, so test it before you lean on it.
You change the authentication method on the existing provisioning app, without recreating the configuration. Microsoft says the switch doesn't trigger a full sync or restart the job, and pausing first keeps the sync state and watermarks.
Inbound to Active Directory, inbound to Entra ID, and writeback from Entra to SuccessFactors all have to move. Each app is switched on its own.
SAP stopped maintaining API basic auth back on 2 June 2023. Its KBA 3796078 says any integration calling SuccessFactors APIs with a username and password can be hit, so this isn't only Entra's problem.
SAP moved the deletion date from 20 November 2026 to 12 November 2027 on 12 June 2026. It also says future dates can change, so don't plan to cut over in the last month.
While SAP still supports basic auth, you can switch back from the same authentication method dropdown. That safety net goes away once SAP turns basic auth off.
Here's how the new sign-in works. Entra issues a short-lived token for your tenant, and its subject is a Microsoft service principal called the SyncFabric Workload Identity ISV Integration Client. SAP Cloud Identity Services checks that token against a trust rule you set up, then swaps it for its own access token scoped to the SuccessFactors API. The provisioning service uses that second token to call OData. Microsoft's how-to calls the two tokens AT1 and AT2, which helps when you read its troubleshooting table.
Two things catch people out. Entra's method doesn't use the SAML bearer or X.509 certificate options you'll see in SAP's list of alternatives; it uses OpenID Connect through SAP Cloud Identity Services. And SAP only supports that OIDC route on instances that already use SAP Cloud Identity Services for user sign-in. If your SuccessFactors still trusts a corporate identity provider directly, sort that out first. SAP has a separate deletion date for direct third-party IdP integration: 13 November 2026.
| What SAP is removing | Deletion date | Who usually notices |
|---|---|---|
| Login with employment username for basic auth | 15 May 2026 | Users signing in with an employment username |
| Basic auth and direct third-party IdP integration | 13 Nov 2026 | Teams whose SF still trusts a corporate IdP directly |
| Basic auth for Onboarding new hires | 14 May 2027 | Onboarding and HR operations |
| Basic auth for Document Management and OpenText | 21 May 2027 | Document management integrations |
| Basic auth for APIs | 12 Nov 2027 | Entra provisioning, IGA connectors, middleware |
| Basic auth for Employee Central integrations | 12 Nov 2027 | Integration teams |
| Basic auth for point-to-point Employee Central Payroll | 12 Nov 2027 | Payroll |
How the dates moved
- 14 Oct 2022SAP moves deletion to 20 Nov 2026
SAP had planned November 2023 and pushed it out. Microsoft later planned around this date too: its product manager cited 20 November 2026 on Microsoft Q&A in March 2023.
- 2 Jun 2023End of maintenance for API basic auth
It kept working, but SAP stopped maintaining it.
- 20 Jun 2025SAP adds OIDC for APIs
SuccessFactors starts accepting OIDC tokens for its APIs, but only on instances already using SAP Cloud Identity Services for sign-in. That's the route Entra uses.
- Apr 2026Microsoft plans the change
Microsoft tells SuccessFactors customers to move before November 2026. The replacement isn't out yet.
- May 2026Workload identity in public preview
All three SuccessFactors provisioning apps get the new sign-in option. You can try it on writeback first.
- 12 Jun 2026SAP pushes deletion to 12 Nov 2027
SAP also spells out the phases. Basic auth goes off by default in the first half of 2027 and is fully disabled in the second half, so the real cutoff may come before 12 November.
- 15 Sep 2026Microsoft implementation update
Apps created before this can't pick workload identities created after it. The other direction works.
- 13 Nov 2026Direct third-party IdP integration deleted
A separate SAP deletion, but it matters here: the OIDC route needs SAP Cloud Identity Services in front of SuccessFactors.
- 1H 2027Basic auth off by default
Customers can opt in to keep it while they migrate. SAP hasn't given a day.
- 12 Nov 2027Basic auth for APIs deleted
The latest date SAP gives. The opt-in ends when SAP fully disables basic auth in the second half of 2027, so it could end before this.
Switch now or wait for 2027?
The real decision is about timing, because the end state is the same for everyone on Entra. Microsoft hasn't said what, if anything, it switches off on its side in November, and the how-to it updated in October doesn't give a date. We'd still plan for now. The rollback only exists while SAP supports basic auth, and a quiet quarter is a better time to find a permissions gap than whatever week SAP picks in 2027.
| Option | Fits when | Effort | Risk |
|---|---|---|---|
| Switch now, app by app | SuccessFactors already signs users in through SAP Cloud Identity Services | Low: three admin consoles and a test per app | Low, with rollback to basic auth still available |
| Move to SAP Cloud Identity Services first, then switch | SuccessFactors still trusts your corporate IdP directly | Medium to high: a sign-in change for every employee | Medium, and SAP's IdP deadline lands on 13 Nov 2026 |
| Wait and opt in to basic auth in 2027 | A freeze or merger blocks change for months | Low now, higher later | High: no published day, and the opt-in ends when SAP fully disables basic auth in 2H 2027 |
| Do nothing | Never | None until it breaks | Joiner and leaver feed stops with little warning |
- The API user's password sits in the app's admin credentials, and someone has to keep it current
- If anyone changes that password, the feed stops
- SuccessFactors has to allow OData basic auth for that admin
- OData audit log shows authorization: Basic
- Goes away for APIs on 12 November 2027
- No password stored in Entra
- Nothing for anyone to lift from the app settings, and each token expires quickly
- Same API user and the same SuccessFactors permissions as before
- OData audit log shows authorization: Bearer
- Needs SAP Cloud Identity Services in front of SuccessFactors
- SuccessFactors signs users in through SAP Cloud Identity Services, not straight through your corporate IdP.
- You know which SuccessFactors apps you run in Entra: inbound to AD, inbound to Entra ID, writeback, or several of each.
- You know the API user each app signs in as, and its role-based permissions are written down somewhere other than the old admin's head.
- Someone has admin rights in all three consoles: Entra (at least Application Administrator), SAP Cloud Identity Services and SuccessFactors.
- The provisioning app's notification email goes to a team mailbox that someone actually reads.
- You've picked a test user and noted their personIdExternal. Provision on demand needs it to prove each switch worked.
- You've listed every other tool that calls SuccessFactors APIs with a password, because SAP's deletion hits those too.
Find every password before SAP does
Entra is rarely the only thing reading SuccessFactors with a password. SAP's KBA 3796078 says every basic-auth integration can be affected, and HR estates tend to collect them: an IGA connector, a middleware flow, a payroll link, a reporting extract someone built for finance. Start with SuccessFactors' OData API audit log. Microsoft's how-to uses it to confirm the switch, because each call's HTTP message shows either authorization: Basic or authorization: Bearer. Every API user still showing Basic is something to move.
Get ready in this order
- 01Check how SuccessFactors signs people in
Ask your SF admin whether the instance has been migrated to SAP Cloud Identity Services for user sign-in. If it hasn't, that's the real project, and it has its own SAP deadline on 13 November 2026.
- 02List the basic-auth API users
Read the OData API audit log for calls that show authorization: Basic. Write down each API user, what system uses it, and who owns that system.
- 03Map the Entra apps to API users
In each SuccessFactors provisioning app, note the admin username (username@companyID) and the tenant URL. You'll bind the new OIDC client to that same API user later, so the permissions don't change.
- 04Fix the notification email
Open each app's provisioning settings and point the notification email at a team mailbox. Quarantine sends a one-time email, so it needs to reach someone.
- 05Pick a test user per app
Choose a real record with a known personIdExternal, ideally a test employee or a friendly volunteer in IT, so provision on demand gives you a clean answer.
Switching each app, step by step
Before: a stored password on every call
Each SuccessFactors provisioning app keeps an API user's name and password and sends them with every OData call. When SAP turns basic auth off, every call fails.
After: Entra token, swapped at SAP Cloud Identity Services
Entra issues a short-lived token, SAP Cloud Identity Services checks it against a trust rule and returns its own token, and SuccessFactors maps that client to the same API user as before.
The order we'd do it in
- 01Start with writeback
Microsoft recommends this order when you have several apps: writeback first, then SuccessFactors to Entra ID, then SuccessFactors to on-premises AD, so write-back gets validated first. In our view it's also the gentlest start, because writeback only sends values back to HR and a problem there doesn't stop anyone getting an account.
- 02Pause, don't restart
In production, select Pause provisioning before you change anything. Pausing keeps the sync state and watermarks. Restart provisioning runs a full initial cycle and clears the watermarks, which is a much bigger event than you want today.
- 03Switch the method in Entra
In the provisioning app's connectivity settings, change the authentication method to workload identity and create a workload identity app, or reuse one. Entra shows the issuer, JWKS URI, subject and audience values you'll need next.
- 04Set up trust in SAP Cloud Identity Services
Create an OpenID Connect application in the SAP Cloud Identity Services admin console. Add an API dependency on your SuccessFactors instance and pick the sf_technical_access API. Then, under JSON Web Tokens, add a Trust By Issuer entry and paste in the four values Entra gave you. Get one wrong and the test fails later with invalid_client_assertion.
- 05Paste the SAP values back into Entra
Fill in the client identifier, the OAuth token endpoint on your accounts.ondemand.com tenant, the Application API URL and the App Dependency Name. The dependency name needs the urn:sap:identity:application:provider:name: prefix in front.
- 06Map the client to the same API user
In SuccessFactors, go to Admin Center, Security Center, Manage OIDC OAuth Client Application. Bind the SAP client ID to the API user the app used with basic auth, so its role-based permissions stay exactly the same.
- 07Test, activate, resume
Run Test connection, which goes through the whole token exchange and an OData call. Then select Save and activate, and Start provisioning to resume where the job paused.
- 08Prove it with a real user
Run provision on demand with your test user's personIdExternal. Then check the OData API audit log: calls from that API user should now show authorization: Bearer.
# example: workload identity fields Authentication method Workload identity Client identifier <SAP client ID> OAuth token endpoint https://<ias-server>.accounts.ondemand.com/oauth2/token Application API URL <SF API host> App Dependency Name <prefix + name> # OData API audit log, before and after authorization: Basic ********** authorization: Bearer **********
Other tools that read SuccessFactors
SAP's deletion isn't about Entra, so anything else calling SuccessFactors APIs with a password has the same 2027 problem. Each vendor has its own replacement, and they aren't the same method. Okta's SuccessFactors integration uses OAuth 2.0 with SAML, signed with an Okta certificate that you register in SuccessFactors, and Okta's page already quotes the 12 November 2027 date. Oracle Integration removed the basic-auth Custom Policy from its SuccessFactors adapter in Release 26.10. It points customers to SAML bearer, SAML with SAP Identity Authentication Service, or SAP OpenID Connect for OData-only integrations.
SailPoint's connector documentation lists the Manage OAuth2 Client Application permission among its prerequisites but doesn't spell out the auth types. On SailPoint's developer forum, a practitioner moving an Identity Security Cloud web services integration found the built-in OAuth grant types can't do the two-step token exchange through SAP Cloud Identity Services, and that the API user has to exist in both systems. If you run SailPoint, Saviynt or a homegrown script against SuccessFactors, confirm the method with that vendor before you plan dates around it.
What to do now, by role
Who does what, and when
- Ask IT whether HR provisioning from SuccessFactors still signs in with a password, and who owns the switch.
- Ask whether SuccessFactors already uses SAP Cloud Identity Services for sign-in. If not, that project needs a budget now.
- Ask who else reads SuccessFactors with a password, such as payroll or an IGA tool. Each one needs an owner, because SAP's deletion hits them too.
- Point each SuccessFactors app's notification email at a team mailbox today. Quarantine sends a one-time email.
- Switch writeback first, then SF to Entra ID, then SF to AD. Pause each job first, and never restart it.
- After each switch, run provision on demand for a known user and save the result. It's your evidence that the switch worked.
- Check the provisioning logs daily for a week after each switch.
- Pull the OData API audit log and list every API user still showing authorization: Basic.
- Create the OIDC OAuth client mapping for each Entra app, bound to the API user it already uses.
- Once all clients show Bearer, plan to stop allowing basic auth for those API users.
- Reconcile recent leavers in SuccessFactors against enabled accounts in AD and Entra ID, before and after the switch.
- Ask each IGA or middleware vendor in writing which SuccessFactors auth method they support and when.
- Add the API users to the non-human identity inventory with an owner and a review date. Otherwise nobody owns them once the project ends.
Harden the HR feed so the next change is boring
- 01Alert on quarantine, not just email
Microsoft's Graph API reports a quarantine reason, and EncounteredQuarantineException points to invalid credentials. Poll the provisioning job status and raise a ticket when it changes, so one missed email can't hide a stopped feed for weeks.
- 02Reconcile leavers every week
Compare SuccessFactors terminations from the last seven days with enabled accounts in AD and Entra ID. It's a short report, and it catches a broken feed whatever the cause.
- 03One API user per integration
If Entra, an IGA tool and a payroll link share one SuccessFactors API user, split them. Then the audit log tells you who called, and you can move each one on its own schedule.
- 04Keep API user permissions tight
The new client inherits the API user's role-based permissions. Review them while you're in there, because the switch won't narrow anything on its own.
- 05Write the runbook while it's fresh
Record the IAS application, the trust rule values, the dependency name and the SF client mapping for each app. The next admin will need them when something changes on SAP's side.
If it goes wrong
When the switch fails or the HR feed has stopped
Most failures here are configuration mistakes caught by Test connection. The one to fear is a feed that stopped weeks ago without anyone noticing, so the playbook covers both.
- 01Containfirst hour
- Pause the provisioning job so it doesn't keep failing and drift further into quarantine.
- Write down which app failed, at which step, and the exact error from Test connection or the provisioning logs.
- 02Restore servicesame day
- If you can't fix it quickly and SAP still supports basic auth, switch the app back from the authentication method dropdown.
- For invalid_client_assertion, recheck the subject and audience in the Trust By Issuer rule. For a 403, recheck the API user mapping.
- Run Test connection again, then Start provisioning. Don't use Restart, which clears the watermarks.
- 03Catch upfirst day
- List hires, movers and terminations in SuccessFactors since the last good cycle.
- Run provision on demand for urgent ones, starting with terminations.
- Disable leaver accounts by hand if the feed can't catch up today, and record what you did.
- 04Check for exposurethis week
- Read the sign-in logs of every leaver whose account stayed enabled, starting from their termination date. You're looking for anyone who kept using it.
- If any leaver signed in after leaving, treat it as a security incident and follow your incident process.
- 05Report and learnthis month
- Tell audit the dates the feed was down and how you reconciled it. That's easier than having them find it.
- Add the quarantine alert and the weekly leaver reconciliation so a stopped feed shows up in days.
What this looks like in practice
Three typical estates
- the setup
- A cloud-only company provisions Entra ID from SuccessFactors with one app. SuccessFactors already signs users in through SAP Cloud Identity Services, and nobody has touched the provisioning app since go-live.
- what happens
- Nothing yet. The app runs on a password set at go-live, and its notification email goes to a consultant's address that bounces.
- what to do
- Fix the notification email, pause the job, switch to workload identity, map the SAP client to the existing API user, test, activate and resume. Prove it with provision on demand.
- the setup
- An enterprise feeds on-premises AD and Entra ID from SuccessFactors and writes the email address back. Staff still sign in to SuccessFactors through the corporate IdP, which talks to SuccessFactors directly.
- what happens
- The team can't start the Entra switch. SAP only supports the OIDC route on instances that use SAP Cloud Identity Services for sign-in, and this one doesn't yet. On top of that, SAP deletes direct IdP integration on 13 November 2026.
- what to do
- Put SAP Cloud Identity Services in front of SuccessFactors first, as its own project. Then switch writeback, SF to Entra ID and SF to AD, in that order.
- the setup
- Entra provisions accounts, an IGA platform reads SuccessFactors for access reviews, and a middleware flow feeds payroll. All three sign in with basic auth, and two share one API user.
- what happens
- The Entra apps switch cleanly. The IGA connector's built-in OAuth options don't fit the IAS token exchange, and the shared API user makes the audit log hard to read.
- what to do
- Split the shared API user, switch the Entra apps now, and get each other vendor's supported method in writing. Track every API user still showing Basic until the list is empty.
How Cohash helps
We start from the OData audit log and your Entra provisioning apps, list every password still reading SuccessFactors, and agree an order with you. Then we do the switch app by app, with a leaver reconciliation before and after so audit has evidence. If SAP Cloud Identity Services isn't in front of SuccessFactors yet, we plan that first. Our Microsoft Entra ID page covers the wider identity work, and you can bring in Entra engineers for the cutover. If other tools read HR too, our SailPoint and Okta pages cover those platforms. If you'd like a second opinion first, ask for an assessment.
What to take from this
- 01
Aim to finish before November 2026, as Microsoft asks. SAP deletes API basic auth on 12 November 2027 and switches it off by default sometime in the first half of 2027.
- 02
The switch is in place, with no need to recreate the configuration, but it needs SAP Cloud Identity Services in front of SuccessFactors.
- 03
Pause the job, switch, test and resume. Restart clears the watermarks and runs a full cycle.
- 04
Do writeback first, then SuccessFactors to Entra ID, then SuccessFactors to AD, and prove each with provision on demand.
- 05
The OData audit log shows Basic or Bearer per call, so use it to find every other tool still sending a password.
01When does SuccessFactors basic authentication actually stop working?
SAP deletes basic auth for SuccessFactors APIs on 12 November 2027 at the latest. Don't wait for that day, though. In the first half of 2027 SAP switches it off by default, and you'd have to opt in to keep it while you migrate. That opt-in ends when SAP fully disables it in the second half of 2027. SAP also says its dates can change, so check the page again before you commit to a plan.
02Why does Microsoft say November 2026?
Microsoft's "What's new" entries were written when SAP's deletion date was 20 November 2026. SAP moved it to 12 November 2027 on 12 June 2026. Microsoft's entries still say before November 2026, and we haven't seen Microsoft say what it changes on its side in November, so we'd treat it as the date to aim for.
03Do I have to rebuild my SuccessFactors provisioning apps?
No. You change the authentication method on each existing app, without recreating the configuration. Microsoft says the switch doesn't trigger a full sync or restart the job. Pause the job first in production so the sync state and watermarks are kept, then start it again afterwards.
04What do I need before I can switch?
SuccessFactors has to use SAP Cloud Identity Services for user sign-in, because SAP only supports the OIDC route on those instances. You also need admin access in Entra, SAP Cloud Identity Services and SuccessFactors, and the API user the app signs in as today.
05Can I go back to basic auth if it breaks?
Yes, for now. While SAP supports basic auth you can switch back from the same authentication method dropdown. That option goes away once SAP turns basic auth off for your instance.
06We also use SailPoint or Okta with SuccessFactors. Are those affected?
SAP's KBA 3796078 says every integration calling SuccessFactors APIs with basic auth can be affected, so yes, if they use a password. Each vendor has its own replacement. Okta uses OAuth 2.0 with SAML, for example. Ask each vendor which method they support.
07How do I check that the switch worked?
Run provision on demand with a known user's personIdExternal. Then open the SuccessFactors OData API audit log: calls from that API user should show authorization: Bearer instead of authorization: Basic.
08What happens to the job if credentials fail?
Entra can put it in quarantine. It sends a one-time email to the notification address, and another only if the reason changes. The cycles gradually slow to once a day, and the job is disabled after four weeks in quarantine. That's why the notification address should be a team mailbox.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1You're about to switch a production SuccessFactors to AD app. What do you do with the job first?
show the answer
C. Pause it, switch the method, then start it again Pausing keeps the sync state and watermarks, and switching the method doesn't trigger a full sync. Restart runs a full initial cycle and clears the watermarks, which you don't want during a credential change.
-
Q2Test connection fails with invalid_client_assertion from SAP Cloud Identity Services. Where do you look?
show the answer
A. Go back to Trust By Issuer and recheck the subject and audience you pasted That error means the Entra token's subject or audience doesn't match the trust rule. A permissions problem shows up later as a 403 from the OData call instead.
-
Q3SAP's deletion date moved to 12 November 2027. Why switch the Entra apps now anyway?
show the answer
B. Basic auth goes off by default in the first half of 2027, and rollback only exists while SAP still supports it Basic auth goes off by default sometime in the first half of 2027, and SAP hasn't named the day. Rollback only works while basic auth is still supported. Switch now and you keep that safety net while you test.