SecurityIdentity

Your Entra-to-Salesforce provisioning breaks on December 1. One permission fixes it

Entra ID signs in to Salesforce through SOAP API login() to create and disable your users. From December 1, 2026, Salesforce turns that sign-in away unless the account has Use Any API Auth. The fix takes minutes, but more dates follow it, and you'll want to test before joiners and leavers stop syncing.

Cohash Security Practice November 2026 12 min read 9 chapters 3-question check
part 10 of 10 · Identity security, from the ground up
01 Entraprovisioning 02 SOAP login() from 1 Dec 2026 03 Rejected 04 Grant thepermission

the ideaNo Use Any API Auth, no sign-in, no joiners or leavers

after reading, you can
  • Spot whether Entra ID provisions your Salesforce orgs, and find the account it signs in as
  • Grant Use Any API Auth on the integration profile, then prove it works with Test Connection
  • Plan for idle sandboxes and token resets now, and for the SOAP login() retirement in Summer '27

Entra ID creates and switches off Salesforce users by signing in as one Salesforce account, with a password, through an old Salesforce API. From December 1 that sign-in fails unless the account holds one more permission. It takes minutes to add. Do it this month, test it, and then start thinking about Summer '27, when Salesforce retires that API.

in plain wordsDeadline: 1 December 2026

Your Salesforce joiners and leavers run through one account, and it's about to get locked out

Plenty of companies let Microsoft Entra ID, their company directory, look after Salesforce accounts. A new hire gets a Salesforce login the same day, and when someone leaves, the account gets switched off. Behind that sits one Salesforce account, usually an admin, signing in with a username, a password and a security token. From December 1, 2026, Salesforce only lets that kind of sign-in through if the account holds a permission called Use Any API Auth. People can still use the account in a browser, but Entra gets turned away. New starters don't show up in Salesforce, and leavers keep their accounts until someone notices.

think of it like this

It's like the building's night porter who lets new staff in and takes keys back from people who've left. The landlord now wants porters to carry a specific pass. Your porter still has the uniform and the keys, but the gate won't open without the pass, and nobody's handing back keys in the meantime.

who should care
  • Teams provisioning Salesforce from Entra ID
  • Salesforce admins who own integration users
  • Anyone with Salesforce sandboxes wired to Entra
  • IT providers who set up Entra for a client
chapter 01

Why it matters to you

1 Dec 2026Salesforce rejects SOAP login() without Use Any API Auth, in every org and sandbox
15 Dec 2026Sandboxes: token rule for broad IP ranges and the six-month idle check start
31 Jan 2027Production: the same token rule and idle check start
Summer '27Salesforce retires SOAP login() in API versions 31.0 to 64.0

The error is easy to fix. The trouble is everything that quietly stops while it's there. Entra's provisioning job is what switches off a leaver's Salesforce account, and once its sign-in fails, nobody's account gets switched off. Someone who can still log in to Salesforce directly with a password keeps your customer data at their fingertips. Even when they can't, the licence is still assigned to them and the account turns up as active in the next access review.

It also fails quietly. Microsoft's own tutorial warns that Salesforce Login History can show successful sign-ins for the integration account while Entra's Test Connection still fails. So the Salesforce admin looks, sees green, and closes the ticket. Behind Entra's "credentials are invalid" message, the underlying error is INSUFFICIENT_ACCESS.

Entra doesn't keep trying forever, either. When credentials stop working, the provisioning service puts the app in quarantinedefinitionWhat Entra does with a provisioning job that keeps failing. It runs less and less often, and after four weeks it's switched off., cuts its runs back to once a day, and disables the job altogether after about four weeks. A failure on December 1 that nobody spots turns into a switched-off provisioning job around the end of December or early January, and switching it back on with Restart provisioning means a full initial cycle.

what changesIf nobody touches it, here's what December 1 does to provisioningPeople signing in through the browser won't notice a thing. Entra's sign-in fails, the job slows to once a day, and four weeks later it stops.
  1. 01 Entra signs in to Salesforce

    Each cycle, the provisioning service calls SOAP API login() as the Admin Username account, with its password and security token.

  2. 02 Salesforce checks the permission

    From December 1, login() only works for users who hold Use Any API Auth. The integration account doesn't have it.

  3. 03 Sign-in is rejected

    Entra tells you your Salesforce.com credentials are invalid, which sends people off to reset a password that was fine. Salesforce's real answer is INSUFFICIENT_ACCESS.

  4. 04 The app goes into quarantine

    Runs drop to once a day. Nobody new gets a Salesforce account, and nobody who's left loses one.

  5. 05 Four weeks later, the job stops

    If nobody fixes the credentials, Entra disables the provisioning job. Unless someone set a notification address, nobody gets told.

  6. 06 Grant the permission first

    Add Use Any API Auth to the integration account's profile before December 1 and run Test Connection. The job carries on and nobody downstream notices.

For engineers: the Entra gallery connector for Salesforce and Salesforce Sandbox authenticates through SOAP API logindefinitionAn old Salesforce sign-in call that takes a username and a password (often with a security token) and hands back a session. Salesforce is retiring it.() with the Admin Username, Admin Password and Secret Token fields. Salesforce says login() doesn't exist from API 65.0 on, and the older versions lose it in Summer '27. So whichever version the connector calls, its way in has an end date. That's why this post has two deadlines, one urgent and one coming later.

chapter 02

What changed, and what's coming after it

What Salesforce changed about SOAP login(), and where Entra gets caught

changedNo Use Any API Auth, no SOAP login() (1 Dec 2026)

Salesforce enforces it in all orgs and environments, sandboxes included. A user without it gets rejected. Entra's integration account is exactly that kind of user.

changedNewer orgs start with login() off, so Entra can't connect (Winter '26)

Orgs created in Winter '26 or later start with login() disabled. An admin has to switch it on in Setup under User Interface, and that page won't let you switch it back off.

newSecurity token required from broad IP ranges

Sandboxes from 15 December 2026, production from 31 January 2027. Logins from a trusted range wider than /8 for IPv4 or /29 for IPv6 need a token or mTLS. Entra already sends the token.

changedSOAP login() switched off in idle orgs

The dates match the token rule. In a one-time check, Salesforce turns login() off in any org with no SOAP login() call in the previous six months. One call keeps it on, so busy orgs won't feel it.

removedSOAP login() goes away in Summer '27

Salesforce says login() doesn't exist from API 65.0, and the older versions lose it in the Summer '27 release. It wants integrations on External Client Apps and OAuth. For Entra's connector that's Microsoft's job, and its tutorial doesn't say how yet.

changedMicrosoft updated its Salesforce setup steps

Both the Salesforce and Salesforce Sandbox tutorials now list Use Any API Auth and SOAP login() as things you need before you start. They also cover INSUFFICIENT_ACCESS under common issues, and that's the error you'll actually see.

Only the first item has to be done this month, and for most tenants it's a few minutes in Salesforce Setup. The second matters if your Salesforce org is newer, or if someone has already switched login() off to get ahead of the retirement. In either case, Entra's connection fails today, December or no December.

The idle check is the one people tend to miss. Production provisioning runs all day, so it keeps login() alive. A sandbox that's wired to Entra but hasn't synced since spring is a different story. If nothing in that sandbox has called login() in six months, Salesforce turns it off on December 15, and the next time someone tests a provisioning change there, it fails for reasons that have nothing to do with their change.

tableEach rule and its start date. The last column is what you'll actually see in Entra
RuleStartsApplies toEffect on Entra provisioning
Use Any API Auth required for login()1 Dec 2026All orgs, including sandboxesSign-in fails unless the Admin Username account has the permission
SOAP login() disabled by defaultWinter '26 orgs onwardOrgs created in Winter '26 or laterFails until an admin enables SOAP API login() under User Interface
Token or mTLS from broad IP ranges15 Dec 2026 / 31 Jan 2027Sandboxes / productionEntra sends the security token, so it should pass. Keep the token current
Idle orgs lose login()15 Dec 2026 / 31 Jan 2027Sandboxes / production with no login() calls in six monthsIdle sandboxes stop accepting Entra's sign-in
SOAP login() retiredSummer '27API versions 31.0 to 64.0Microsoft hasn't said in its tutorial what the connector will use instead

The dates for Salesforce provisioning from Entra

  1. Winter '26
    New orgs start with login() off

    Orgs created from this release on start with SOAP API login() off. Someone has to switch it on before Entra can connect at all.

  2. 30 Oct 2026
    Microsoft updates its tutorials

    Microsoft adds Use Any API Auth to the prerequisites in both tutorials, which also list SOAP login(). Runbooks copied from older versions of the tutorial may not mention either.

  3. 1 Dec 2026
    Use Any API Auth enforced

    It applies in every org and sandbox. An account without it can't sign in through SOAP login() any more.

  4. 15 Dec 2026
    Sandbox token rule and idle check

    Broad IP ranges need a token, and idle sandboxes lose login().

  5. 31 Jan 2027
    Production token rule and idle check

    The same two rules reach production orgs.

  6. Summer '27
    SOAP login() retired

    API versions 31.0 to 64.0 lose login(). Watch for Microsoft's plan for the connector before then.

chapter 03

Your options, side by side

There are really only two choices for December, and one of them is a trap. The third choice, getting off SOAP login() altogether, isn't yours to make for the gallery connector. Salesforce says to move custom code to External Client Apps with OAuth, using the JWT bearer or client credentials flow for server-to-server work. For a vendor's connector, its advice is to ask the vendor for a version that supports that.

side by sideGranting the permission takes minutes. Leaving it means finding out from a leaver who still has access
Leave it and react in December
  • Provisioning sign-in fails on 1 December
  • Salesforce Login History may still look fine, so whoever checks it closes the ticket
  • New joiners wait for Salesforce access while someone works out why
  • Leavers keep active Salesforce accounts, and nobody takes their licences back
  • Four weeks in quarantine and Entra turns the job off. Someone then has to restart it by hand
Grant Use Any API Auth now
  • A profile change on one integration account
  • Test Connection tells you it works while there's still time to fix it
  • Joiners and leavers keep syncing through December
  • You'll turn up old sandboxes and stale tokens while they're still cheap to deal with
  • That leaves months before Summer '27, so the bigger move doesn't have to be rushed

Microsoft's tutorial asks for an account with Manage Users, and Manage Users switches on a long list of other admin permissions. The account was already powerful. Use Any API Auth doesn't change that much. What it does do is make this account visible again, because you're touching it, and that's a good moment to check who knows its password and where the token is kept.

chapter 04

Find every login() caller before Salesforce does

Entra may not be the only thing still signing in this way. Data loaders, older middleware and scheduled scripts can do it too, and they all hit the same wall on December 1. Salesforce points at two places to look, and you won't need new tools for either.

Inventory the SOAP login() users in each org

  1. 01
    Find the Entra account first

    In the Entra admin center, open Enterprise apps, then your Salesforce app, then Provisioning. Note the Admin Username. Do it for every Salesforce and Salesforce Sandbox app, since each one can use a different account.

  2. 02
    Read Login History

    In Salesforce, filter Login History for login type Other Apex API or Partner Product, with login subtype SOAP API. The API type shows as SOAP Enterprise, SOAP Partner or SOAP Tooling. Each user there needs the permission or a new way in.

  3. 03
    Pull the API Total Usage event log

    If you have event log files, the API Total Usage log shows SOAP calls by user. Check how far back your logs go before you rely on them, because a job that runs once a year can hide outside that window.

  4. 04
    Match users to owners

    Write down who owns each integration user and which system uses it. Anything nobody claims is a candidate to switch off, in a change window, after you check what calls it.

  5. 05
    Grant the permission

    Add Use Any API Auth to each account that still needs SOAP login(). For the Entra account, follow Microsoft's tutorial and set it on the profile itself.

  6. 06
    Test from Entra

    Go back to the Provisioning page and run Test Connection. Then provision one test user on demand and read what the provisioning log says about it.

chapter 05

What to do now, by role

Who does what before 1 December

Business owner or CISOthis week
  • Ask your IT lead whether Entra ID creates and switches off your Salesforce accounts. If it does, find out who owns that setup.
  • Get it in writing that the integration account has Use Any API Auth and that Test Connection passed afterwards. A screenshot will do.
  • If an IT provider runs it, put both questions to them in writing with a date.
Salesforce adminthis week
  • Filter Login History on SOAP API logins. Every user that turns up there is an integration someone depends on.
  • Add Use Any API Auth to the Entra integration account's profile, in production and every sandbox.
  • Newer org? Look in User Interface settings and switch on SOAP API login(). Orgs from Winter '26 on start with it off.
Identity teamthis week
  • Run Test Connection on every Salesforce and Salesforce Sandbox provisioning app. Each one can sign in as a different account.
  • Put a shared inbox in each app's notification email. Otherwise a quarantine alert goes to nobody.
  • Provision one test user on demand and read its log entry. If that user lands in Salesforce with the right profile, the whole path works.
Security and auditthis quarter
  • Put the integration account in your access reviews. If nobody owns it, that's the first finding.
  • Ask what happens in Summer '27, when Salesforce retires SOAP login(). Someone should own that answer now.
  • Check Entra audit logs for quarantine events on Salesforce apps after 1 December.
chapter 06

Make the next Salesforce change boring

This change is small, but it points at a weak spot. A powerful Salesforce account signs in with a password and a token that only change when someone remembers. When the password is reset, Salesforce issues a new token, and provisioning breaks until someone pastes it into Entra. The fixes below make that account easier to see and harder to lose track of.

before

Today: one admin account nobody watches

A setup we'd worry about. Entra signs in as a System Administrator with a token last set at go-live, and quarantine emails go nowhere.

Today: one admin account nobody watches A setup we'd worry about. Entra signs in as a System Administrator with a token last set at go-live, and quarantine emails go nowhere. 01 · MICROSOFT ENTRA ID 02 · SALESFORCE 03 · AROUND IT sign in as typed in once rarely Provisioning job Salesforce gallery app Notification email not set Admin Username System Administrator SOAP login() password plus token Password and token in someone's notes Old sandbox apps idle since spring © Cohash · cohash.com
01 · MICROSOFT ENTRA ID02 · SALESFORCE03 · AROUND IT Provisioning job: Salesforce gallery app Provisioningjob Salesforce galleryapp Notification email: not set Notificationemail not set Admin Username: System Administrator Admin Username SystemAdministrator SOAP login(): password plus token SOAP login() password plustoken Password and token: in someone's notes Password andtoken in someone's notes Old sandbox apps: idle since spring Old sandboxapps idle since spring sign in typed in once rarely © Cohash · cohash.com
after

After: an owned integration account

Same connector, own account. The token sits in a vault with a date on it, and when the job fails, a team hears about it.

After: an owned integration account Same connector, own account. The token sits in a vault with a date on it, and when the job fails, a team hears about it. 01 · MICROSOFT ENTRA ID 02 · SALESFORCE 03 · AROUND IT sign in as rotated by owner quarantine alert reviewed Provisioning job tested on demand Notification email shared identity inbox Integration user Use Any API Auth on profile SOAP login() until Summer '27 Password vault owner and rotation date Access review account listed with owner © Cohash · cohash.com
01 · MICROSOFT ENTRA ID02 · SALESFORCE03 · AROUND IT Provisioning job: tested on demand Provisioningjob tested on demand Notification email: shared identity inbox Notificationemail shared identityinbox Integration user: Use Any API Auth on profile Integrationuser Use Any API Authon profile SOAP login(): until Summer '27 SOAP login() until Summer '27 Password vault: owner and rotation date Password vault owner and rotationdate Access review: account listed with owner Access review account listedwith owner sign in rotated by owner reviewed © Cohash · cohash.com

Durable fixes, each tied to this change

  1. 01
    Use one dedicated integration account

    Give Entra its own Salesforce user, not a person's admin login. When that person leaves, provisioning shouldn't leave with them.

  2. 02
    Keep the password and token in a vault

    Keep both in a vault with an owner and a rotation date. Resetting the password gets you a new token, so treat the reset and the Entra update as one change.

  3. 03
    Point quarantine alerts at a team

    Point the notification email at a shared inbox someone actually reads. Entra sends one email when an app goes into quarantine and another if the reason changes, and that's all you get.

  4. 04
    Retire sandbox apps you don't use

    An idle sandbox connection breaks on 15 December anyway. Delete the ones nobody needs, and run the rest at least once a quarter.

  5. 05
    Track the Summer '27 retirement

    Put a review date in your calendar for Microsoft's Salesforce tutorial and Salesforce's retirement article. If the connector changes, you want months of warning, not days.

chapter 07

If it goes wrong

If Salesforce users stop syncing, fix the sign-in first, then go back for the leavers

Usually it's one permission or one token. The bigger job is cleaning up what didn't sync while it was broken.

  1. 01Confirm the causefirst hour
    • Run Test Connection on the Entra Salesforce app. If it says the credentials are invalid, check for INSUFFICIENT_ACCESS in the error detail.
    • Don't close the ticket because Salesforce Login History looks clean. Microsoft says it can show success while the connection is still failing.
  2. 02Fix the sign-infirst hour
    • Add Use Any API Auth to the Admin Username account's profile, then run Test Connection again. If the error was INSUFFICIENT_ACCESS, that should be the whole fix.
    • Newer orgs, from Winter '26 on, start with SOAP API login() off. If yours is one, switch it on in User Interface settings and test again.
    • Was the password reset lately? Salesforce sends a new token when that happens, and Entra still has the old one in Secret Token.
  3. 03Get out of quarantinefirst day
    • Filter Entra's Audit Logs on the Quarantine activity. That shows when the job went into quarantine, which you'll need for the clean-up.
    • Once the connection works, the job leaves quarantine on its next good cycle. If you use Restart provisioning in the portal instead, expect a full initial cycle, which takes longer.
  4. 04Clean up the gapfirst day
    • Pull the list of people who left while it was down. Check each of their Salesforce accounts is actually disabled.
    • Check that people who joined in the same window now have Salesforce accounts with the right profile. Some of them have been waiting.
    • If a leaver's account was still live, look at what it did after they left. Usually it's nothing, but you want to know.
  5. 05Record and preventfirst week
    • Write down when it failed, when it was noticed and what slipped through. Auditors will ask.
    • Set the notification email and put the account in your access reviews. Next time it fails, someone hears about it the same day.
chapter 08

What this looks like in practice

The three companies below are made up. Each one is a setup you could easily find in a tenant that provisions Salesforce from Entra, so use them as a checklist for your own.

Three Salesforce setups you might recognise

01 Entra job 02 SOAP login() 03 Use Any APIAuth 04 Joiners andleavers
scenario 01High risk
A sales team on one Salesforce org
the setup
A mid-size distributor provisions Salesforce from Entra ID. The Admin Username is the Salesforce admin's own System Administrator login, set up three years ago.
what happens
On 1 December Test Connection fails and the job slips into quarantine. Two people leave that month and keep their Salesforce accounts. Nobody sees the quarantine email, because nobody ever set a notification address.
what to do
Move provisioning to a dedicated integration user with Use Any API Auth on its profile, set the notification email, and test before December.
01 Sandbox app 02 No calls in 6months 03 login()switched off 04 Delete or runit
scenario 02Medium risk
Production fixed, sandboxes forgotten
the setup
A software company has one production org and four sandboxes, each wired to its own Entra Salesforce Sandbox app. Two of the sandboxes haven't synced since spring.
what happens
Production gets the permission and keeps going. On 15 December the idle check turns off SOAP login() in the two quiet sandboxes. When someone later tests a new attribute mapping there, it fails for a reason that has nothing to do with the mapping.
what to do
Grant the permission in every sandbox, not only production. Delete the sandbox apps nobody uses and run the rest on a schedule.
01 New org 02 login()off 03 Enablelogin() 04 Grantpermission 05 First sync
scenario 03Medium risk
A newer org that never connected
the setup
A business unit stood up a new Salesforce org this year and wants Entra to provision it. The admin follows an older internal runbook.
what happens
Test Connection fails from day one. The org was created after Winter '26, so SOAP API login() is off, and the runbook doesn't mention Use Any API Auth.
what to do
Switch on SOAP API login() under User Interface and grant Use Any API Auth on the integration profile. Then fix the runbook so the next person follows Microsoft's current tutorial.
chapter 09

How Cohash helps

We go app by app through your Entra tenant and user by user through Login History, and make the permission and token changes with your Salesforce admins. Each integration account ends up in your access reviews with an owner, and you get a written plan for Summer '27. The Microsoft Entra ID page and Salesforce page cover the wider work. You can bring in identity engineers for the clean-up, or ask for an assessment if you'd rather someone looked first.

key takeaways

What to take from this

  1. 01

    From 1 December 2026, any user without Use Any API Auth gets turned away at SOAP API login(). Sandboxes are no exception.

  2. 02

    That's how Entra's Salesforce connector gets in. Give the Admin Username account the permission and run Test Connection while there's time.

  3. 03

    Don't rely on Salesforce Login History. Check the error on the Entra side.

  4. 04

    Set a quarantine notification email. Entra switches off a job that sits in quarantine for four weeks, and without the email nobody hears about it.

  5. 05

    With Summer '27, Salesforce removes SOAP login() from API 31.0 to 64.0. Ask Microsoft what the connector will use, well before then.

fact-checked November 2026 against vendor and official documentation · where to go next
  1. How Cohash delivers Microsoft Entra ID: scope, roles and architecture
  2. How Cohash delivers Salesforce: scope, roles and architecture
  3. Hire vetted Microsoft Entra ID engineers
  4. Identity governance and administration
  5. Book a 30-minute working session with a senior engineer
01Do I need to do anything if Entra ID provisions our Salesforce users?

Yes, one thing. Give the Salesforce account in Admin Username the Use Any API Auth permission before 1 December 2026, then run Test Connection. Entra signs in through SOAP API login(), and after that date Salesforce won't let an account without it in.

02What is Use Any API Auth in Salesforce?

It's a Salesforce user permission. From 1 December 2026, you need it to sign in through SOAP API login(). Salesforce says it can come from a profile or a permission set, but for the Entra account Microsoft's tutorial says to put it on the profile.

03Does this affect Salesforce single sign-on through Entra?

Not the way people sign in. SAML single sign-on is set up separately from provisioning. This change hits the provisioning job that creates and disables accounts, because that job signs in to Salesforce with a username, password and token.

04Does it apply to sandboxes?

Yes, sandboxes too. Salesforce checks for Use Any API Auth everywhere, and Microsoft's Sandbox tutorial says the same. Sandboxes also get the token and idle checks about seven weeks before production does, so start there.

05Our password and token are right, so why does Test Connection still fail?

After 1 December, it's usually a missing Use Any API Auth permission. Look for INSUFFICIENT_ACCESS in the error detail. If your org was created in Winter '26 or later, SOAP API login() might also be switched off under User Interface.

06Will Entra's Salesforce connector keep working once Salesforce retires SOAP login() in Summer '27?

Salesforce retires login() in API versions 31.0 to 64.0 with the Summer '27 release. Microsoft's tutorial doesn't yet say what the connector will use after that. Keep an eye on it, and ask Microsoft support if you need an answer for planning.

07Someone else set up Entra for us. What do we ask them?

Ask whether Entra provisions your Salesforce orgs, which account it uses, whether that account has Use Any API Auth, and whether Test Connection passed after the change. Ask where quarantine alerts go.

CHOSEN ON A SLIDE DECK Vendor logos on theproposal Quote beforediscovery Juniors swapped inlater Dependency with noexit CHOSEN ON EVIDENCE Named, certifiedstaff Fixed-scopediscovery first References you pick Exit written intocontract
Security · 11 minHow to choose an IAM implementation partner

Ask who will build it, then check they've built one like it before.

read next
next step

Tell us what you're running. We'll tell you what we'd do first.

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it