Microsoft Is Retiring SMS and Voice MFA in Entra ID: Your Migration Playbook (and How to Buy More Time)

On July 13, 2026, Microsoft announced one of the biggest changes to authentication in Microsoft Entra ID in years: Microsoft-provided SMS and voice call authentication is being retired, and passkeys become the default authentication experience for everyone. If you still have users approving MFA with a text message or a phone call, this change lands in your tenant automatically – starting September 1, 2026, and finishing with a hard cutoff on February 1, 2027.

I have spent the last two weeks walking customers through what this actually means for them, and the same questions come up every time: What exactly happens to my tenant, and when? How do I find out who is affected? How do I get my users onto passkeys without melting the help desk? And – the question behind the question – what if I am not ready? Can I buy more time, and can I stop Microsoft from prompting my users to register new methods while I work out my plan?

This post is the playbook I wish I could just hand to every IT admin right now. We will cover:

  • The full retirement timeline and what changes automatically in your tenant
  • How to find every user who still relies on SMS or voice
  • How to move them to passkeys (or the Authenticator app) in a controlled way
  • How to extend the period if you need more time – the temporary opt-out and the customer-managed telecom provider option
  • How to suppress the registration prompts so your users are not nudged before you are ready
  • Lessons learned from real migrations, so you can skip the mistakes I have already made for you

Everything below is based on Microsoft’s official announcement and documentation as of late July 2026, plus hands-on testing in my own tenant. Where Microsoft has said “details coming later” I will say so explicitly, because a few important pieces (the opt-out API and the Security Store telecom catalog) are not published yet at the time of writing.

Why Microsoft is doing this

The short version: SMS and voice are the weakest links in the MFA chain, and attackers know it. Phone-based factors are vulnerable to SIM swapping, SS7 interception, social engineering of telecom support desks, and – increasingly – AI-assisted phishing that walks a user through approving a fraudulent prompt in real time. Microsoft’s own numbers have long shown that SMS is roughly 40% less effective at preventing compromise than the Authenticator app, and neither of them holds up against a well-built adversary-in-the-middle (AiTM) phishing kit. Passkeys do, because the credential is cryptographically bound to the site it was registered for – there is nothing for the user to type or approve on a fake page.

Microsoft has been signaling this direction for years: system-preferred MFA, the passkey registration campaign feature, mandatory MFA for Azure management, and the Secure Future Initiative. The July announcement is the point where the signaling stops and enforcement begins. SMS and voice are no longer positioned as secure authentication methods in Entra ID, and Microsoft will simply stop delivering them natively.

It is worth being clear about the scope: only Microsoft-provided SMS and voice delivery is being retired. Microsoft Authenticator (push and TOTP), hardware OATH tokens, FIDO2 security keys, Windows Hello for Business, certificate-based authentication, and external/third-party MFA methods are all unaffected. And SMS/voice as a concept does not disappear entirely – organizations with a genuine regulatory or operational need can keep it by bringing their own telecom provider through the Microsoft Security Store (more on that below).

The timeline – dates you need in your calendar

Here is the full sequence of events. I recommend literally putting these in your team calendar today.

Date What happens
August 1, 2026 API support and documentation for the temporary opt-out becomes available. This lets you delay the September changes while you finish your migration (details below).
September 1, 2026 Users enabled for SMS or voice in the Authentication Methods Policy (or legacy per-user MFA settings) are automatically enabled for passkeys. Your registration campaign is set to Microsoft managed, targeting passkeys, and these users are pulled into scope. On their next MFA sign-in they are nudged to register a passkey (skippable, with unlimited snoozes by default).
September 7, 2026 (Related change) Self-service password reset only accepts authentication methods the user has actually registered.
September 18, 2026 Microsoft publishes the telecom provider options, terms, and pricing information in the Microsoft Security Store.
October 30, 2026 You can select and configure a customer-managed telecom provider through the Security Store if you need to keep SMS or voice.
February 1, 2027 Microsoft-provided SMS and voice delivery is retired. Users whose only MFA method is SMS or voice get a blocking passkey registration prompt at sign-in – no more skipping. There is no opt-out from this milestone. It applies to all tenants in the public cloud.

Two things stand out. First, the September 1 changes are automatic – if you do nothing, Microsoft changes your authentication methods policy and your registration campaign settings for you. Second, February 1, 2027 is a hard wall. The temporary opt-out only postpones the nudging, not the retirement itself. Every plan you make should work backwards from February 1.

Note that this timeline applies to the public cloud. Sovereign and government cloud environments follow a later schedule that Microsoft will communicate separately.

What actually changes in your tenant on September 1

This is the part most summaries gloss over, so let us be precise. If you have users enabled for SMS or voice on September 1, 2026, Microsoft will:

  1. Auto-enable passkeys (FIDO2) in your Authentication Methods Policy for those users, placed in a passkey profile that allows all passkey types – synced passkeys (iCloud Keychain, Google Password Manager) as well as device-bound passkeys (Microsoft Authenticator, Entra passkey on Windows, hardware security keys).
  2. Set your registration campaign to “Microsoft managed”, targeting passkeys. Under Microsoft managed, the snooze duration becomes one day, snoozes are unlimited, and targeting expands to MFA-capable users. In practice: every time an affected user completes MFA (at most once per day), they see a “set up a passkey” interrupt they can skip.
  3. Nudge users at their next MFA sign-in. The nudge is evaluated per device-and-browser combination – a user with Windows Hello for Business will not be nudged on their Windows PC in Chrome or Edge, but the same user may be nudged when signing in from a Mac or a phone, because that credential does not travel with them.

If that is exactly what you want – great, you can lean back and let Microsoft drive registration for you. But in most organizations you will want to control the pacing, the communication, and the target method yourself. Everything below shows you how.

Step 1: Find out who is actually affected

Before you plan anything, get the numbers. “We use the Authenticator app” is what every IT manager tells me; the registration report almost always tells a different story – old accounts that registered a phone number in 2019, frontline workers, service-adjacent accounts, board members, external consultants.

Entra admin center Authentication methods Policies blade showing SMS and Voice call enabled for All users
Entra ID > Authentication methods > Policies – SMS and Voice call still enabled for All users.

Option A: Microsoft’s official analyzer script

Microsoft published a dedicated PowerShell script for exactly this purpose: the Entra SMS and Voice Usage Analyzer on GitHub. Run it with Global Reader, Security Reader, or Authentication Policy Administrator, and it reports which users are enabled for and actively using SMS or voice. Any non-zero result means your tenant is in scope for this whole exercise.

Option B: The user registration details report

In the portal: Entra ID > Authentication methods > User registration details. Filter on the registered methods column for Phone / Alternate phone / Office phone, and pay special attention to users whose default MFA method is a phone-based one. Note that this report requires a Microsoft Entra ID P1 license – in an unlicensed tenant the blade returns a 401, so fall back to the analyzer script or Graph below.

Option C: Microsoft Graph PowerShell, if you want it scriptable

Connect-MgGraph -Scopes "AuditLog.Read.All","UserAuthenticationMethod.Read.All"

# Pull registration details for all users
$details = Get-MgReportAuthenticationMethodUserRegistrationDetail -All

# Users with any phone-based method registered
$phoneUsers = $details | Where-Object {
    $_.MethodsRegistered -match 'mobilePhone|alternateMobilePhone|officePhone'
}

# The high-risk subset: phone is their DEFAULT (or only) MFA method
$phoneDefault = $phoneUsers | Where-Object {
    $_.DefaultMfaMethod -in @('mobilePhone','voiceMobile','voiceAlternateMobile','voiceOffice','sms')
}

$phoneOnly = $phoneUsers | Where-Object {
    -not ($_.MethodsRegistered -match 'microsoftAuthenticator|passKey|windowsHelloForBusiness|fido2|softwareOneTimePasscode|hardwareOneTimePasscode')
}

$phoneUsers    | Export-Csv .\phone-users-all.csv -NoTypeInformation
$phoneOnly     | Export-Csv .\phone-users-ONLY-phone.csv -NoTypeInformation

"Any phone method: {0}  |  Phone as default: {1}  |  Phone as ONLY method: {2}" -f `
    $phoneUsers.Count, $phoneDefault.Count, $phoneOnly.Count

The three buckets matter because they need different treatment:

  • Phone registered, but stronger methods too: lowest risk. These users just need their default flipped (system-preferred MFA usually handles this already) and eventually a passkey.
  • Phone as default: will notice the change. Needs communication.
  • Phone as the ONLY method: these are the users who hit the blocking registration prompt on February 1, 2027. This list is your migration backlog, sorted by priority.

While you are here, create a security group (for example SG-MFA-PhoneOnly-Migration) and fill it with the affected users. You will reuse it for the registration campaign scoping, for Conditional Access pilots, and for targeted communication.

Step 2: Decide where each user segment lands

Do not try to move everyone to the same method. In every migration I have run, the population splits into three or four segments:

  1. Knowledge workers with a Windows PC or Mac: passkeys, full stop. Windows Hello for Business already covers the primary device for many; add a synced or Authenticator-based passkey for the phone and browser scenarios. No license cost, phishing-resistant, and it satisfies the February 2027 requirement.
  2. Mobile-first users who already have Authenticator: passkey in Microsoft Authenticator. The app they already have becomes a device-bound passkey store. This is usually the smoothest single upgrade in the whole project.
  3. Frontline and shared-device users: this is where you slow down and think. FIDO2 hardware keys work brilliantly for shared-PC scenarios. For users with no corporate phone and no personal-phone policy, hardware OATH tokens remain supported (they are not part of this retirement) – just remember they are not phishing-resistant, so treat them as transitional.
  4. The genuinely stuck: regulated out-of-band SMS requirements, alarm and dispatch numbers, environments where smartphones are banned. This small segment is what the customer-managed telecom provider option exists for. Document the requirement (which regulation, which scenario) – you will want that paper trail anyway.

Synced versus device-bound passkeys deserves a sentence: synced passkeys (iCloud Keychain, Google Password Manager) are the most user-friendly and survive device loss, but the private key follows a consumer cloud account. Device-bound passkeys (Authenticator, security keys, Entra passkey on Windows) keep the credential on hardware you can reason about. Microsoft’s September auto-enablement allows all types; if your security team wants device-bound only, configure that in the passkey (FIDO2) policy yourself – and note that a restricted passkey profile changes the nudge behavior (see the suppression section below).

Step 3: Enable and configure passkeys properly

If you let the September 1 auto-enablement do this for you, passkeys arrive with an open, allow-everything profile. Doing it yourself first means you choose the settings – and you take the change out of Microsoft’s hands.

In the Entra admin center: Entra ID > Authentication methods > Policies > Passkey (FIDO2).

Passkey FIDO2 settings blade with Enable toggle, All users target and the default passkey profile
Passkey (FIDO2) settings – Enable and target with the default passkey profile.

The settings that matter:

  • Enable the method, targeting either all users or your migration group to start with.
  • Allow self-service set up: must be Yes, both for users to register from My Security Info and for the registration campaign nudge to work at all.
  • Enforce attestation: only if you have a real requirement – attestation-enforced profiles suppress the registration nudge, which may be exactly what you do not want during a migration.
  • Key restrictions / AAGUIDs: same caveat. If you restrict to specific security key models, the Microsoft managed campaign will not switch to passkey targeting automatically, and nudge behavior changes. Restrict deliberately, not by inherited habit.

For the enterprise-grade rollout, follow Microsoft’s phishing-resistant passwordless deployment guide – it covers the persona-based approach in far more depth than I can here.

Step 4: Run the registration campaign on your terms

The registration campaign (“nudge”) is the engine Microsoft will use in September – but you can start it earlier, scope it tighter, and pace it yourself. A campaign you run in August against a pilot group beats a Microsoft managed campaign that hits everyone in September.

In the portal: Entra ID > Authentication methods > Registration campaign.

Registration campaign blade set to Microsoft managed targeting Passkey FIDO2 with 1 day snooze and unlimited snoozes
Registration campaign – this tenant is already on Microsoft managed, targeting Passkey (FIDO2) with a 1-day snooze and unlimited snoozes.

Configuration that has worked well for me:

  • State: Enabled (not Microsoft managed – Enabled gives you control of every knob).
  • Target method: Passkey (FIDO2). Note you can only run one campaign at a time – passkeys or Authenticator, not both.
  • Include targets: your pilot group first, then the SG-MFA-PhoneOnly-Migration group in waves. Do not start with All users.
  • Days allowed to snooze: 3 or 7 during the soft phase. This is tenant-wide, not per group.
  • Limited number of snoozes: Disabled (unlimited) during the pilot; switch to Enabled (three skips, then required) when you move to enforcement mode. The snooze counter is tracked per user and survives configuration changes.

The same policy via Graph, if you prefer infrastructure-as-code (permissions: Policy.ReadWrite.AuthenticationMethod):

PATCH https://graph.microsoft.com/v1.0/policies/authenticationMethodsPolicy

{
  "registrationEnforcement": {
    "authenticationMethodsRegistrationCampaign": {
      "state": "enabled",
      "snoozeDurationInDays": 3,
      "enforceRegistrationAfterAllowedSnoozes": false,
      "excludeTargets": [],
      "includeTargets": [
        {
          "id": "<objectId of SG-MFA-PhoneOnly-Migration>",
          "targetType": "group",
          "targetedAuthenticationMethod": "fido2"
        }
      ]
    }
  }
}

A few behaviors worth knowing before your help desk finds out for you:

  • The nudge only appears after a successful interactive MFA – users inside an existing SSO session are not interrupted.
  • Conditional Access policies scoped to Register security information are evaluated first. If you restrict security info registration to compliant devices or trusted networks (and since July 6, 2026 these policies are enforced during Windows Hello for Business and macOS Platform SSO enrollment too), users outside those conditions silently do not get nudged. Plan for how those users will ever register.
  • Closing the browser counts as a snooze.
  • The passkey nudge checks whether the user has a local passkey for the current device-and-browser combination. Expect users to report “it keeps asking me even though I already did it” when they switch between PC, Mac, and phone. That is by design; put it in your FAQ.

Step 5: Communicate like the sign-in experience depends on it (it does)

Coordinated communication is the single biggest predictor of a smooth rollout – Microsoft says the same thing in their deployment guidance, and my experience agrees. The pattern that works:

  1. Awareness (now to August): “SMS and phone-call MFA is being retired by Microsoft. Here is why, and here is what will replace it.” Scope it to the affected group – blasting the whole company about a change that only touches 15% of users creates noise and ticket volume for nothing.
  2. Action (September onwards): step-by-step registration guides per device type – Windows Hello, iPhone/iCloud, Android/Google, Authenticator. Microsoft has ready-made end-user templates at aka.ms/mfatemplates that you can rebrand.
  3. Reminder (November-January): targeted mails to the shrinking list of users who still have no phishing-resistant method, with a hard date. Pull the list from the same Graph report you used in step 1 and watch it trend toward zero.

Give the help desk a one-pager: what the nudge screen looks like, how to register each passkey type, what “Skip for now” does, and – critically – what changes on February 1, 2027, when skipping stops being an option.

Need more time? Your two extension options

Now for the part many of you scrolled here for. There are two legitimate ways to buy time, and they solve different problems. Neither of them moves the February 1, 2027 wall.

Option 1: The temporary opt-out (September 2026 to February 2027)

Microsoft is providing a temporary, tenant-level opt-out from the September 1 changes – the passkey auto-enablement and the automatic registration campaign switch. This is aimed at organizations that have a different plan (for example, migrating to a customer-managed telecom provider, rolling out hardware keys on their own schedule, or moving users to another method) and do not want Microsoft touching their authentication methods policy in the meantime.

What we know as of late July 2026:

  • The opt-out is exercised via API, and Microsoft publishes the API details and documentation on August 1, 2026. Keep an eye on the official retirement page – that is where it will land.
  • It delays the September 1 auto-enablement and nudging while you complete your transition activities.
  • It is temporary by design: it covers the September 1, 2026 through February 1, 2027 window. On February 1, enforcement applies to all tenants, opted out or not. Users whose only method is SMS or voice will face the blocking passkey registration prompt unless you have configured a telecom provider.

My advice: even if you plan to opt out, do it as a scheduling decision, not an avoidance decision. Opting out without a dated migration plan just moves your crunch from September to January.

Option 2: Keep SMS/voice with a customer-managed telecom provider

If you have a genuine regulatory or operational requirement for a telephony factor – out-of-band SMS mandated by a compliance regime, users in environments where nothing else works – you can continue using SMS and voice past February 2027 by contracting with a telecom provider through the Microsoft Security Store:

  • September 18, 2026: Microsoft publishes the provider catalog, terms, and pricing in the Security Store. Evaluate providers against your regional and compliance requirements.
  • October 30, 2026: configuration opens. You select a provider, stand up the contract through the marketplace flow, and wire it into your tenant.
  • Costs: this is the part to socialize with management early. Unlike today, where SMS delivery is bundled into your licensing, the customer-managed model is your contract with the carrier – typically per-message pricing that varies by provider, volume, and geography. Migrating users to passkeys costs nothing; keeping SMS becomes a line item.

Treat this as a scoped exception, not a tenant-wide strategy: identify the specific user segments with the documented need, put them on the customer-managed channel, and default everyone else to passkeys. Between the carrier cost, the audit questions, and the fact that SMS remains phishable, the economics push the same direction as the security argument.

One more planning note: test the provider flow with a pilot group well before February. You do not want to discover carrier delivery quirks in specific countries during the enforcement week.

Suppressing the registration prompts while you work out your plan

Maybe you are mid-negotiation with a telecom provider. Maybe your change advisory board meets quarterly. Maybe you simply do not want users seeing Microsoft-branded prompts before your communication has landed. Whatever the reason, here is how you keep the nudges away from your users – deliberately and reversibly.

The clean way: take your users out of scope before September 1

The September auto-enablement only targets users enabled for SMS or voice in the Authentication Methods Policy or legacy per-user MFA settings. If you migrate users to other methods and disable SMS/voice for them before September 1, there is nothing for Microsoft to auto-enable and nobody gets pulled into the Microsoft managed campaign. This is the option Microsoft itself points to, and it has the advantage of actually solving the problem rather than postponing it.

SMS settings blade with Enable toggle, target scoping and Use for sign-in option
SMS settings – Enable and Target with group scoping and the Use for sign-in option.

The control way: set the registration campaign yourself

The registration campaign is a tenant setting, and your configuration is the control surface. To stop nudging entirely:

Portal: Entra ID > Authentication methods > Registration campaign > set State to Disabled > Save.

Graph:

PATCH https://graph.microsoft.com/v1.0/policies/authenticationMethodsPolicy

{
  "registrationEnforcement": {
    "authenticationMethodsRegistrationCampaign": {
      "state": "disabled",
      "snoozeDurationInDays": 1,
      "enforceRegistrationAfterAllowedSnoozes": true,
      "excludeTargets": [],
      "includeTargets": []
    }
  }
}

If you want the campaign running but need to shield specific populations – VIPs mid-quarter-close, a factory site with no phones, a business unit in the middle of a divestiture – use exclude targets instead of disabling the whole thing:

{
  "registrationEnforcement": {
    "authenticationMethodsRegistrationCampaign": {
      "state": "enabled",
      "snoozeDurationInDays": 7,
      "enforceRegistrationAfterAllowedSnoozes": false,
      "excludeTargets": [
        { "id": "<objectId of SG-MFA-Nudge-Excluded>", "targetType": "group" }
      ],
      "includeTargets": [
        { "id": "all_users", "targetType": "group",
          "targetedAuthenticationMethod": "fido2" }
      ]
    }
  }
}

Exclusion wins over inclusion – a user in both lists is excluded. And remember the softer levers before you reach for Disabled: a long snooze duration (up to 14 days) with unlimited snoozes is a much gentler campaign than the Microsoft managed default of daily prompts.

Registration campaign State dropdown open showing Enabled, Disabled and Microsoft managed options
The State dropdown is your control surface: Enabled, Disabled, or Microsoft managed.

What suppression does NOT do

Three honest caveats, because I have seen all three misunderstood already:

  1. Disabling the campaign today does not prevent the September 1 change. Microsoft sets the campaign to Microsoft managed as part of the rollout. Expect to re-assert your configuration after September 1, or use the official opt-out API from August 1 – that is the supported mechanism for exactly this scenario.
  2. Other setup prompts still exist. Security defaults, SSPR combined registration enforcement, and Conditional Access policies requiring MFA registration are separate mechanisms. The registration campaign switch only controls the passkey/Authenticator nudge.
  3. Nothing suppresses February 1, 2027. The blocking prompt for SMS/voice-only users is enforced for all tenants. Microsoft has been unusually explicit: there is no opt-out from that milestone. Suppression buys you communication time; it does not buy your users a future with SMS codes.

Lock in the gains with authentication strengths

Once a user segment has registered passkeys, close the door behind them. A Conditional Access authentication strength policy requiring Phishing-resistant MFA for your most sensitive applications (or for privileged roles) ensures that a registered passkey is not just an option sitting next to a weaker method – it becomes the method that actually gets used. The built-in strengths cover the common cases:

  • Phishing-resistant MFA: passkeys (FIDO2), Windows Hello for Business, certificate-based authentication. This is the end state.
  • Passwordless MFA: the above plus Authenticator passwordless sign-in. A good intermediate target.
  • MFA: the classic list, including SMS and voice – which is exactly why you want to move off it.

Sequence matters here: roll out authentication strengths after registration in each wave, not before. If you require phishing-resistant MFA from users who have not registered a passkey yet, and they cannot satisfy the security info registration CA policy either, you have built a deadlock the service desk gets to untangle with Temporary Access Passes, one ticket at a time. Pilot group, registration wave, comms, then the strength policy – in that order, per wave.

This is also the answer to a question I get a lot: “if SMS stops working in February, does that not just mean attackers move to phishing our Authenticator prompts?” Yes – retiring SMS is necessary, not sufficient. Authentication strengths are how you convert the passkey rollout from a registration statistic into an actual reduction of attack surface.

Quick answers to the questions everyone asks

Does this affect Microsoft 365 personal or family accounts? No – this timeline is about Microsoft Entra ID (work and school accounts) in the public cloud. Consumer accounts and sovereign clouds run on their own schedules.

Are Authenticator push notifications and TOTP codes going away too? No. Only Microsoft-provided SMS and voice delivery is retired. Authenticator, TOTP, hardware OATH tokens, FIDO2 keys, Windows Hello for Business, and certificate-based authentication all continue.

Will my users get locked out on February 1, 2027? Not locked out – blocked-until-registered. A user whose only method is SMS or voice will be required to register a passkey during sign-in before they can continue. That is a support-heavy morning if it hits hundreds of users at once, which is the entire argument for doing this on your own schedule.

We use a third-party MFA provider through external authentication methods – are we affected? External MFA methods are not being retired. But if some of your users are also enabled for Entra SMS or voice, those users are in scope for the September auto-enablement, so clean up the policy targeting.

Can I keep using SMS for SSPR only? Only through a customer-managed telecom provider. The retirement covers SSPR as well as MFA.

Do not forget SSPR

The retirement applies across Entra, including self-service password reset. If your SSPR policy leans on phone-based verification, those methods stop working on the same February 2027 date unless a customer-managed provider is in place. Combine that with the September 7, 2026 change (SSPR only accepts methods the user has registered) and the message is clear: your SSPR method policy needs the same review as your MFA policy. Microsoft has said that password change support for passwordless users is coming, but if passwords are still part of your world, make sure every user has at least two non-phone methods registered – Authenticator plus email, or Authenticator plus security questions – before you switch off phone options.

Lessons learned from the field

These are the things the documentation will not tell you, collected from migrations I have run or rescued:

1. The registration report always contains surprises. Every tenant I have analyzed had phone-only users nobody expected: meeting room accounts someone MFA-enabled in a panic, a CFO whose Authenticator broke in 2023 and “temporarily” fell back to SMS, external bookkeepers, that one integration account a vendor set up with a real mobile number. Run the report before you estimate the project, not after.

2. Check your break-glass accounts first, not last. If your emergency access accounts use voice call as a factor (it was a common recommendation a decade ago), fix that this week. FIDO2 hardware keys stored in physically separate locations is the pattern. You do not want to discover this dependency during an incident in March 2027.

3. Per-user MFA settings are still lurking in older tenants. Users enabled through the legacy per-user MFA portal are in scope for the September auto-enablement too. If you never finished the migration to the Authentication Methods Policy, this is the forcing function – converged authentication methods migration first, then the passkey rollout. Doing them simultaneously multiplies the confusion.

4. The nudge’s per-device evaluation generates tickets. Users who registered a passkey on their PC get nudged again on their phone and conclude “it didn’t work”. Pre-empt it in your comms: one passkey per platform is normal, and Windows Hello for Business does not follow you to your iPhone.

5. Conditional Access and the nudge interact silently. A CA policy that locks security info registration to compliant devices will quietly prevent nudges for users on unmanaged devices – which, in a BYOD-heavy organization, can be most of the affected population. Decide on a registration path for those users (Temporary Access Pass issued by the service desk works well) before you turn on enforcement.

6. Watch out for shared phone numbers. Shops, wards, and warehouses where one number backs ten accounts break in interesting ways when those accounts each need an individual passkey. FIDO2 keys on a lanyard have solved this everywhere I have tried them.

7. Guests are in scope, and passkey support for B2B is not fully there yet. Microsoft says passkey support for B2B and internal guests lands by end of 2026 – which is cutting it close to February 2027. Inventory your guest users with phone-based MFA now, and consider whether external MFA trust settings (accepting the home tenant’s MFA claim) can take them out of the equation entirely.

8. Do not let “temporary” become permanent. Every extension mechanism in this post – the opt-out, the telecom provider, long snoozes, exclusion groups – is a bridge. Put an expiry date and an owner on each one the day you create it. The tenants that struggle in January 2027 will be the ones that treated September’s opt-out as a solution.

9. Sell the upside, not just the deadline. Passkeys are genuinely faster – no more typing codes, no more “open the app on your other phone”. Users who experience a passkey sign-in once rarely want to go back. Frame the change as an upgrade with a deadline, not a compliance chore, and your registration numbers will show the difference.

My recommended plan, condensed

  1. Now: run the analyzer script and the registration report. Build the affected-users group. Check break-glass accounts.
  2. August: decide per segment: passkey, Authenticator bridge, hardware key, or (rarely) telecom provider. If the September auto-changes conflict with your plan, grab the opt-out API details on August 1 and file the change request. Configure the passkey policy yourself before Microsoft does it for you.
  3. September-October: pilot the registration campaign against IT, then wave by wave. Send awareness and action comms. Evaluate the Security Store catalog (from September 18) if you have a telephony requirement, and configure the provider from October 30.
  4. November-December: flip the campaign to limited snoozes for the stragglers. Chase the phone-only list down toward zero. Fix SSPR methods.
  5. January 2027: buffer month. Nothing new – just verification, reporting, and the final targeted reminders before the February 1 enforcement.

References and further reading

Wrapping up

Microsoft retiring SMS and voice MFA is not a surprise direction – it is the industry direction with a date on it. The organizations that will sail through this are the ones that treat September 1, 2026 as their deadline for having a plan, not February 1, 2027 as their deadline for panicking. Run the report today, segment your users, take control of the registration campaign before Microsoft’s defaults do it for you, and use the extension mechanisms for what they are: bridges with an expiry date.

If you want help assessing your tenant – from a quick phone-method inventory to a full passkey rollout – you know where to find me.

PIM Tray: Activate Microsoft Entra ID PIM Roles From the Windows Tray

Entra ID PIM activation - PIM Tray Windows tray app

Entra ID PIM activation is a daily ritual for anyone who operates Microsoft Entra ID. If you operate Microsoft Entra ID for a living, you know the dance. Open the portal. Sign in. PIM. My roles. Activate. Type a reason. Pick a duration. Confirm. Repeat for every role, every shift, every customer.

Honestly, I do this on most days. So does every other IT pro I know.

This week, however, I finally decided I was done with it – so I built PIM Tray, a tiny Windows tray app that activates one or more Entra ID PIM roles in a single dialog. It is free, open source under MIT, code-signed, and on GitHub at github.com/ThomasMarcussen/PIMTray.

Entra ID PIM Activation in 30 Seconds: What PIM Tray Does

  • Sits in the Windows system tray as a shield icon.
  • Left-click opens a small window listing every role you are eligible for. Right-click shows the same list as a context menu, plus sign-in / sign-out / about.
  • Tick one or more roles, hit Activate, type a reason, pick a duration, done.
  • A single Windows toast tells you which roles activated, which are pending approval, and which failed – so partial success is obvious instead of buried.

That is essentially the whole pitch. In short: no browser, no tab switching, no clicking through six blades to find the same form you used twenty minutes ago.

Why I Built an Entra ID PIM Activation Tool

First, I tried the obvious alternatives.

  • The Entra portal is the canonical UX. It is fine for one role, painful for three, exhausting for ten.
  • Microsoft.Graph PowerShell with a snippet works, but I do not want to keep a terminal open for a 3 second action, and reason prompts in a shell are friction.
  • Microsoft Authenticator and WAM do not do PIM activation.
  • A couple of community tools exist, but none were code-signed, none batched, and one of them shipped its own browser.

In the end, what I actually wanted was a tool that lived where my other always-on tools live – the notification area – and respected the fact that admins activate roles in clusters, not one at a time.

Therefore I built PIM Tray, a small tool that turns Entra ID PIM activation into a one-click workflow that lives in the Windows tray.

How Entra ID PIM Activation Works in PIM Tray

In particular, there are three moving parts: authentication, discovery, and activation.

Authentication: MSAL Interactive Sign-In

PIM Tray uses MSAL (Microsoft.Identity.Client) as a public client. The default system browser pops, you complete MFA and Conditional Access the proper way, and the token is cached encrypted to disk at %LOCALAPPDATA%\PIMTray\msal_cache.bin via DPAPI. As a result, subsequent launches go silent until the refresh token expires.

Importantly, no password is ever typed into the app, and there is no embedded browser or token-stealing surface area.

Role Discovery: One Microsoft Graph Call

After sign-in, PIM Tray queries Microsoft Graph for every PIM role you are eligible for, with the scope expanded:

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleEligibilitySchedules
    ?$filter=principalId eq '&lt;your object id>'
    &amp;$expand=roleDefinition

As a result, every eligible role shows up in the list automatically, with its display name and scope (Directory or a resource path). There is no config file of role IDs to maintain.

Activation: One POST Per Checked Role

Then, for each role you tick, PIM Tray posts a self-activation request:

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleRequests
Content-Type: application/json

{
  "action": "selfActivate",
  "principalId": "&lt;user object id>",
  "roleDefinitionId": "&lt;role id>",
  "directoryScopeId": "/",
  "justification": "Friday change window, ticket INC0001234",
  "scheduleInfo": {
    "startDateTime": "2026-05-12T07:30:00Z",
    "expiration": { "type": "AfterDuration", "duration": "PT4H" }
  }
}

Notably, errors surface verbatim from Graph. If your role policy requires approval, the request is created in pending state and the tray balloon says so. If the policy requires ticket info that the form does not capture, the call fails clearly. No magic, no silent retries, no surprises.

Under the hood, the whole app is .NET 9 WinForms. In total, the signed exe is about 1.3 MB, while the MSI installer is under 500 KB.

Entra ID PIM Activation: The Permissions Question

PIM Tray needs three delegated Microsoft Graph scopes:

  • RoleEligibilitySchedule.Read.Directory
  • RoleAssignmentSchedule.ReadWrite.Directory
  • User.Read

Specifically, there are two practical ways to satisfy them:

  1. Use the bundled default ClientId – the public Microsoft Graph PowerShell first-party app. The first sign-in shows the standard consent prompt. A Global Administrator can pre-consent at tenant level so end users never see the prompt again. Zero setup, but tenant-wide consent to a Microsoft-published app is heavier than some security teams want.
  2. Register your own Entra ID app. New registration, mobile and desktop platform, redirect URI http://localhost, the three delegated scopes above, admin consent granted once. Paste the resulting TenantId and ClientId into appsettings.json (auto-created at %APPDATA%\PIMTray\ on first run). Cleaner long-term, especially if you ship the tool to other admins in your tenant.

In addition, both paths are documented in the README. For personal use, option 1 is two clicks away.

Install

PIMTray.msi  ->  C:\Program Files\PIM Tray\PIMTray.exe

To get started, download the signed MSI from the v1.0.0 release. The MSI is signed with our EV certificate (DigiCert, with RFC 3161 timestamp) so SmartScreen and Microsoft Defender treat it normally and Add/Remove Programs shows a real publisher instead of Unknown.

Requirements:

  • Windows 10 or 11 (x64)
  • .NET 9 Windows Desktop Runtime on the target machine
  • At least one eligible PIM role on your signed-in account

Alternatively, to build from source, clone the repo and run dotnet publish -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true. The exe lands in bin\Release\net9.0-windows\win-x64\publish\.

Frequently Asked Questions

Does PIM Tray support PIM for Groups?

Not in v1.0.0. The current release covers Entra ID directory roles via roleManagement/directory. Group-membership activations (identityGovernance/privilegedAccess/group/) are on the roadmap.

Does PIM Tray support Azure resource PIM (subscriptions, resource groups)?

Not yet. Azure RBAC PIM goes through roleManagement/rbacApplications and needs a different scope ID model. Tracking it as a roadmap item.

Does PIM Tray work with Conditional Access policies that require MFA on PIM?

Yes. In fact, authentication is interactive through MSAL using the system browser, which inherits all your Conditional Access policies, MFA prompts, and even Windows Hello / passkey flows. If your policy requires reauth for PIM, you get the standard Microsoft challenge.

Where is the token stored?

%LOCALAPPDATA%\PIMTray\msal_cache.bin, encrypted with DPAPI scoped to the current Windows user. The token never leaves your machine.

Is PIM Tray code-signed?

Yes. Both PIMTray.exe and PIMTray.msi are signed with an EV code-signing certificate from DigiCert and timestamped via RFC 3161, so the signature stays valid past certificate expiry.

Is PIM Tray open source?

Yes, MIT licensed. Source, issues and pull requests at github.com/ThomasMarcussen/PIMTray.

What is Next

The roadmap on the repo is short and honest:

  • PIM for Groups (group-membership activations)
  • Azure Resource PIM (subscription / resource group scopes)
  • Approval-pending polling so you do not have to refresh manually
  • Start at logon toggle in the About dialog
  • Optional dark mode

Finally, if you use PIM Tray and it shaves five minutes off your week, that is a win for both of us. Issues and PRs welcome.

Try It

If PIM Tray fits your Entra ID PIM activation routine and you build something on top of it, ping me. I would like to hear what other patterns admins want to automate next.


Thomas Marcussen is a Microsoft MVP and Technology Architect. More notes and tools at thomasmarcussen.com.

Synced Passkeys in Microsoft Entra ID – Now Generally Available

If you’ve been following the passwordless journey in Microsoft Entra ID, you already know passkeys have been around for a while. But until now, FIDO2 in Entra essentially meant hardware security keys – practical for your admins, not so much for 5,000 end-users who lose USB dongles faster than you can ship them.

With the March 2026 update, that changes. Synced passkeys are now GA.

Synced vs. Device-Bound – What’s the Difference?

Type Stored On Survives Device Loss Use Case
Device-bound passkey Single device or security key No Privileged accounts, high-security roles
Synced passkey Cloud-synced provider (iCloud Keychain, Google Password Manager, 1Password, etc.) Yes Broad workforce rollout

Synced passkeys are still FIDO2-based and still phishing-resistant. The difference is they follow the user across devices. Lost your laptop? Your passkey is already on your phone.

What Shipped Alongside It

This wasn’t a standalone release. Microsoft also GA’d passkey profiles, which let you define multiple FIDO2 policies targeting different user groups. That means you can enforce device-bound passkeys for Global Admins while allowing synced passkeys for standard users – same authentication methods policy, different profiles.

On top of that, the Conditional Access Optimization Agent (public preview) now supports automated passkey adoption campaigns. It assesses readiness, generates rollout plans, and creates policies in report-only mode before enforcement. And no – it doesn’t flip switches without your approval.

Getting Started

  1. Navigate to Entra admin center > Authentication methods > Passkeys (FIDO2)
  2. Create a passkey profile for your target group
  3. Allow synced passkey providers (iCloud Keychain, Google, third-party)
  4. Assign the profile to a security group
  5. Monitor adoption through the authentication methods activity report

For bulk FIDO2 provisioning, check out MichaelGrafnetter/webauthn-interop – a .NET library with a PowerShell module for registering passkeys on behalf of users via Graph API.

Further Reading

Wrap Up

Synced passkeys remove the hardware logistics barrier that kept phishing-resistant MFA out of reach for most organizations. Combined with passkey profiles and the new CA optimization agent, you now have the tooling to roll this out at scale – without shipping a single USB key. If you’ve been waiting for the right moment to push passwordless beyond your admin accounts, this is it.

Microsoft Intune Connector for Active Directory – Updated and Improved

The Intune Connector for Active Directory, also referred to as the Offline Domain Join (ODJ) Connector, is responsible for joining computers to an on-premises domain during the Windows Autopilot process.

This Intune Connector for Active Directory will create computer objects in a specified Organizational Unit (OU) in Active Directory during the domain join process. Unfortunately for Microsoft, it appears as though there have been some issues with setting up the connector with build 6.2501.2000.5.

Common Issues with the Intune Connector for AD version 6.2501.2000.5

According to the feedback that Microsoft received, here are some of the more common challenges that customers run into.

IssueDetails
Error “MSA account <accountName> is not valid” when signing in.This happens when the connector successfully creates the MSA but fails to retrieve the data from the domain controller. Several things could cause this, including replication delays between domain controllers in a single domain, or when the user account exists in a different domain to the connector machine. Fortunately, this issue is resolved in build 6.2504.2001.8.
Error “Failed to create a managed service account – Element not found.” 
Error “Cannot start service ODJConnectorSvc on computer ‘.’. —> System.ComponentModel.Win32Exception: The service did not start due to a logon failure” after the MSA is created.This has been observed when the service can’t run as the MSA. Several issues can cause the service to not be able to run as the MSA, including group or local policy restricting Log on as a service privileges.
Error “System.DirectoryServices.DirectoryServicesCOMException (0x8007202F): A constraint violation occurred.” 

New and Improved Build

In light of everything, Microsoft released an update and build that intends to address the recent challenges. This update specifically resolves come of the client feedback and it also improves overall functionality. Users can download this new build 6.2504.2001.8 from Microsoft Intune. From this improved version, you can expect:

  • A new sign in page in the wizard that now uses WebView2, lives on Microsoft Edge, instead of the previously used WebBrowser.
  • There is resolution to the error “MSA account <accountName> is not valid” that some clients were seeing.
  • The error “Cannot start service ODJConnectorSvc on computer” is available for mitigation.
  • The error “System.DirectoryServices.DirectoryServicesCOMException (0x8007202F): A constraint violation occurred” is also available for troubleshooting and mitigation.

Updated Intune Connector

Windows Autopilot continues to use the Intune Connector for Active Directory to deploy hybrid joined Microsoft Entra devices. Going forward, Intune is looking to enhance security. It does so by updating the connector to use a Managed Service Account (MSA) instead of a SYSTEM account.

Customers will find the updated Connector available for download from within Intune. And although the legacy connector may still be available for download, it will no longer have support in late June 2025. So, before that happens, you need to plan to update the connector because this won’t happen automatically.

Updated Troubleshooting Guide

ProblemSolution
Why is the Intune Connector for Active Directory not logging in Event Viewer even though logging is enabled?The connector originally logged in the Event Viewer directly under Applications and Services Logs in a log called ODJ Connector Service. But, going forward, logging for the connector has been moved to the path Applications and Services Logs > Microsoft > Intune > ODJConnectorService. This means that users who find the ODJ Connector Service log at the original location empty or not updating should check the new path location.
Why does uninstalling the Intune Connector for Active Directory through the Settings app not fully remove the application?Uninstalling the connector requires you to use both the Settings app and the Intune Connector for Active Directory installed executable ODJConnectorBoostrapper.exe. To uninstall the connector, run ODJConnectorBoostrapper.exe and select the Uninstall option. Make sure that the ODJConnectorBoostrapper.exe installer version matches the version of the connector you’re uninstalling.
Why is the error “The MSA account couldn’t be granted permission to create computer objects in the following OUs” occurring when installing the Intune Connector for Active Directory?Different types of failures can cause this error including: The admin installing and configuring the connector not having the required permissions. The OU specified in the Intune Connector for Active Directory ODJConnectorEnrollmentWiazard.exe.config XML configuration file doesn’t exist.   To view more information on the error and what caused it, see the ODJConnectorUI.log normally located in the following folder:   C:\Program Files\Microsoft Intune\ODJConnector\ODJConnectorEnrollmentWizard
Why is the error “Cannot start service ODJConnectorSvc on computer ‘.'” occurring when setting up the Intune Connector for Active Directory?A few reasons could cause this error including the following: The domain has more than one domain controller with a replication latency policy. The MSA was created in one of the domain controllers but the search happened against another domain controller. Wait until replication completes in accordance with your policy or manually sync. Once the replication is complete, then open the connector and choose Configure MSA.A group policy is configured that doesn’t allow services to start as a non-privileged account. Check that the MSA account has Log on as a service privileges granted.
Why is the error “Microsoft Edge can’t read and write to its data directory” occurring?This error shows that the user needs read/write permissions to the listed directory.
Why did enrollments start failing when using the Intune Connector for Active Directory?Verify that the Intune Connector for Active Directory is updated to version 6.2501.2000.5 or later and that the legacy version isn’t still being used.
Why are the errors “Navigation to the webpage was canceled” or “Can’t connect securely to this page” occurring while setting up the Intune Connector for Active Directory?Different types of issues can cause this error including: The server where the admin has chosen to install and configure the Intune Connector for Active Directory lacks the required internet access or required Intune URLs aren’t allowed. The server is sending network requests via TLS 1.0 or 1.1 because PKCS Cryptography is disabled. You can fix this on the server hosting the Intune Connector for Active Directory by deleting the registry key value specified in the following command by running the command from an elevated command prompt:   reg.exe delete “HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS” /v Enabled /f

Pre-installation Requirements for Intune Connector

Before carrying out the installation, you need to verify that you meet all the requirements for the Intune Connector for Active Directory:

  • The connector will work best when installed on a computer running Windows Server 2016 or later with .NET Framework version 4.7.2 or later.
  • The server hosting the Intune Connector for Active Directory must have access to the Internet and Active Directory.
  • Multiple connectors can install in a domain, as this will increase scale and availability. Each connector must be able to create computer objects in the domain that it supports.
  • The administrator carrying out the installation must be a local administrator on the server where the Intune Connector for Active Directory is installing.
  • For the updated Connector, installation will require an account with the following domain rights:
  • Required – Create msDs-ManagedServiceAccount objects in the Managed Service Accounts container
  • Optional – Modify permissions in OUs in Active Directory – if the administrator installing the updated Intune Connector for Active Directory doesn’t have this right, additional configuration steps by an administrator who has these rights may be essential.

Installation Process

Internet Explorer Enhanced Security Configuration

The change to using WebView2 that comes with build 6.2504.2001.8 means that turning off the Internet Explorer Enhanced Security Configuration setting in Windows Server is no longer necessary. So, as long as you have version 6.2504.2001.8 or later of the connector installed, you should not run into problems with the Internet Explorer Enhanced Security Configuration setting.

DOWNLOADING THE CONNECTOR

To install the new connector in your environment, you can download it from the Intune admin center as follows:

  • Sign into the Intune admin center on the server where you want to install the connector.
  • Select Devices in the Home screen.
  • Select Windows in the Devices | Overview screen, under By platform.
  • Select Enrollment in the Windows | Windows devices screen, under Device onboarding.
  • Select Intune Connector for Active Directory in the Windows | Windows enrollment screen, under Windows Autopilot.
  • Select Add in the Intune Connector for Active Directory screen.
  • In the Add connector window that opens, under Configuring the Intune Connector for Active Directory, select Download the on-premises Intune Connector for Active Directory. The link downloads a file called “ODJConnectorBootstrapper.exe.”

INSTALLING THE CONNECTOR ON THE SERVER

  • Sign into the the server where you want to install the connector using an account that has local administrator rights.
  • Before you can install the updated Intune Connector for Active Directory, you need to first uninstall the legacy connector.
  • Open the downloaded “ODJConnectorBootstrapper.exe.” file to launch the Intune Connector for Active Directory Setup install.
  • Go through the Intune Connector for Active Directory Setup install.
  • When installation is complete, tick the checkbox Launch Intune Connector for Active Directory.

SIGNING IN With Intune Connector

  •  Select Sign In in the Intune Connector for Active Directory window, under the Enrollment tab.
  •  Sign in with the Microsoft Entra ID credentials of an Intune admin role under the Sign In tab. Also note that the user account needs to have an assigned Intune license.
  •  With the sign in process done:
  • A “The Intune Connector for Active Directory successfully enrolled” confirmation window appears. Click OK to close the window.
  •  An “A Managed Service Account with name “<MSA_name>” was successfully set up” confirmation window appears. The name of the MSA has the format “msaODJ#####” with the ##### representing 5 random characters. Notate the name of the MSA created, and then click OK to close the window.
  •  The Enrollment tab shows Intune Connector for Active Directory as officially “enrolled.” The Sign In button will also be gray and Configure Managed Service Account will show as enabled.
  •  Close the Intune Connector for Active Directory window.

VERIFICATION

Once authentication finishes, the Intune Connector for Active Directory will finish installation. After the completion of installation, you can verify that the connector is active by following the steps below:

  •  Head over to the Microsoft Intune admin center if it’s still open. From there, close the Add connector window if it’s still there. Alternatively, if the Microsoft Intune admin center isn’t still open:
  • Sign into the Intune admin center.
  • Select Devices in the Home screen.
  • Select Windows in the Devices | Overview screen, under By platform.
  • Select Enrollment in the Windows | Windows devices screen, under Device onboarding.
  • Select Intune Connector for Active Directory in the Windows | Windows enrollment screen, under Windows Autopilot.
  • In the Intune Connector for Active Directory page:
  • Confirm that the server displays under Connector name and shows as Active under Status.
  • Don’t forget to verify that the version is greater than or equal to 6.2501.2000.5 for the updated Connector.

If you don’t see the server displayed, select Refresh or head away from the page before going back to the Intune Connector for Active Directory page. Once the connector installs, it will start logging in the Event Viewer under the path Applications and Services Logs > Microsoft > Intune > ODJConnectorService.

Wrap Up

The previous version of the Microsoft Intune Connector for Active Directory presented several issues for many customers. And as one would expect, these issues reduced the efficiency of the connector and negatively impacted functionality.

Fortunately, with build 6.2504.2001.8, Microsoft is taking heed of the feedback from its clients to make the necessary adjustments. Going forward, clients can look forward to leveraging a connector with better functionality and significantly less issues. And if you do run into any problems, Microsoft provides updates the troubleshooting guide.

Intune Connector for Active Directory – What To Know About The Latest Security Update

Microsoft is offering clients an updated Intune Connector for Active Directory and this connector is what Intune will be using starting from Intune 2501. This connector uses Windows Autopilot to deploy devices that are Microsoft Entra hybrid joined.

The updated version of the connector aims to enhance security and will be using a Managed Service Account (MSA) instead of a SYSTEM account. Customers currently using the old version of the Intune Connector for Active Directory (that uses the local SYSTEM account) should know that this connector will no longer have support, starting in late June 2025.

Therefore, it’s important to start planning for the update because once support ends, enrollments from the old connector build will no longer be acceptable.

Key Features of the Intune Connector

The main role of the Intune Connector for Active Directory is to join computers to an on-premises domain and add them to an organizational unit (OU) allowing for central management and policies.

The Intune Connector also places joined computers within a specific OU, something that helps establish granular control over device configurations and settings. Furthermore, customers will also benefit from hybrid enrollment of devices which offers the convenience of device management by both on-premises AD and Intune.

The Intune Connector plays a key role in leveraging Windows Autopilot to set up and deploy devices. And for all those already using Autopilot, they will know that this feature will have a huge impact in making life easier for customers by simplifying deployment processes.

In addition to all the above, the Intune Connector ensures that the policies defined in both AD and Intune continue to enforce, thus offering compliance and consistency.

Why Switch to Managed Service Accounts?

As the new version of the Intune Connector for Active Directory makes the change to using Managed Service Accounts, it’s important to understand why they are important. The use of MSAs will enable the new connector to follow least privilege principles and thereby strengthen security.

With MSAs, clients enjoy managed domain accounts that have automatic password management. They are also generally permissible with privileges to perform their duties. With such measures in place, there is a reduction in the risk of compromise, intentional or otherwise.

You can only use standalone MSAs on one domain-joined machine and can thus only access resources within that domain. MSAs can easily and securely run services on a computer while simultaneously maintaining the capability to connect to network resources as a specific user principal. When taking all of this into account, it’s not difficult to see why Microsoft views the use of MSAs as better for the Intune Connector moving forward.

Securing The Future

The security update to the Intune Connector for Active Directory fits in seamlessly with Microsoft’s Secure Future Initiative. Microsoft is uniquely ideal within the tech industry to play a key role in safeguarding the future for all its clients.

As such, the tech giant is taking a comprehensive approach to cybersecurity with a key focus on certain areas that are critical to enhancing security across the board. There continues to be substantial progress in these areas:

identity and secret protection

Updates to Entra ID and Microsoft Account (MSA) are live for both public and U.S government clouds to generate, store, and automatically rotate access token signing keys using the Azure Managed Hardware Security Module (HSM) service.

Microsoft has continued to drive broad adoption of its standard identity SDKs, which provide consistent validation of security tokens. As a result, we now see this standardized validation covering more than 73% of tokens issued by Microsoft Entra ID for Microsoft owned applications.

Tenant Protection and Isolation of Production Systems

A full iteration of app lifecycle management for all production and productivity tenants has been performed. This has resulted in the elimination of 730,000 unused apps. Additionally, because of the elimination of 5.75 million inactive tenants, the potential cyberattack surface has become significantly smaller.

Not only that, but a new system to streamline the creation of testing and experimentation tenants with secure defaults is available. It also enforces a strict lifetime management.

Protect networks

More than 99% of physical assets on the production network record in a central inventory system. This enriches asset inventory with ownership and firmware compliance tracking. Virtual networks with backend connectivity are isolated from the Microsoft corporate network, as well. They are additionally subject to complete security reviews to reduce lateral movement.

With the expansion of platform capabilities such as Admin Rules to ease the network isolation of platform as a service (PaaS) resources such as Azure Storage, SQL, Cosmos DB, and Key Vault, Microsoft has made it easier for customers to secure their own deployments.

Protection of engineering systems

We are now experiencing more consistent, efficient, and trustworthy deployments because 85% of production build pipelines for the commercial cloud are now using centrally governed pipeline templates.

Other notable changes include shortening the lifespan of Personal Access Tokens to seven days, disabling Secure Shell (SSH) protocol access for all Microsoft internal engineering repos, and massively reducing the number of elevated roles with access to engineering systems.

Moreover, proof of presence checks for critical chokepoints in software development code flow are now available.

THREAT DETECTION AND MONITORING

A lot of progress continues toward the goal of pushing all Microsoft production infrastructure and services to adopt standard libraries for security audit logs. Additional efforts include those to emit relevant telemetry and to retain logs for a minimum of two years.

A good example is the establishment of central management and a two-year retention period for identity infrastructure security audit logs, including all security audit events throughout the lifecycle of current signing keys. Add to this the fact, that no less than 99% of network devices now have enablement with centralized security log collection and retention.

Accelerate response and remediation

We can now observe improved time to mitigate for critical cloud vulnerabilities because of the recent process updates across Microsoft. Customers will also appreciate the greater transparency provided by the publishing of critical cloud vulnerabilities as common vulnerability and exposures (CVEs). This is especially helpful even when there are no direct customer action requirements.

In addition to this, the establishment of the Customer Security Management Office (CSMO) will go a long way to improve public messaging and customer engagement for security incidents. 

Required Permissions

As we look at the new version of the Intune Connector for Active Directory, one of the key areas that can help us distinguish this new connector from its previous version is doing a comparison of account permissions:

 Old ConnectorNew Connector
Logged On AccountSYSTEMDomain/MSA
Password ManagementSet by user, subject to domain rulesManaged by domain only – automatically reset
Privilege Set SizeMAX5 Privileges:   SeMachineAccountPrivilege – Disabled default SeChangeNotifyPrivilege – Enabled Default SeImpersonatePrivilege  –  Enabled Default SeCreateGlobalPrivilege –   Enabled Default SeIncreaseWorkingSetPrivilege – Disabled default
Registry Access RightsFull, implicitRead write, explicit
Enrollment Certificate RightsFull, implicitFull, explicit
Create Computer Object Rights (required for hybrid Autopilot scenario)Unlimited if connector is on the same machine as domain controller. Delegation is required if connector is not on the domain controller.Explicit delegation required

Pre-requisites

As with any product or application, there are certain requirements that all customers intending to use the Intune Connector for Active Directory will need to meet. So, before proceeding with the set up of the new Intune Connector, you need to verify that you can meet all the pre-requisites. These requirements include:

  • The computer you’re installing Intune Connector for Active Directory to must be running Windows Server 2016 or later.
  •  You should also verify that you have .NET Framework version 4.7.2 or later installed.
  • To facilitate communication with Microsoft’s Intune service, the server hosting the Intune Connector should have internet access.
  • The Intune Connector will need standard domain client access to domain controllers.
  • Customers must verify that they have a Microsoft Entra account with Intune Service Administrator permissions, as this is a requirement to download and manage the connector.
  • Also needed will be a domain account with local administrator privileges and the ability to create msDS-ManagedServiceAccount objects.
  • Verify that the Windows Server configuration aligns with the Desktop Experience and, for versions 2019 or earlier, install the Microsoft Edge browser manually before connector setup.
  • The Microsoft Entra account should have an Intune license assigned to it.
  • For those that will be using Hybrid Azure AD Join, they should check that it’s configured via Azure AD Connect tool.
  • Lastly, the Intune Connector machine must have the appropriate delegated permissions to create computer objects in the target OU.

Setting Up The Connector

To setup the new Intune Connector for Active Directory, you need to start by uninstalling the existing connector. You can do this by uninstalling from the Settings app on Windows and then, uninstalling using the ODJConnectorBootstrapper.exe (select Uninstall). With that done, you can download the connector build from Intune and then perform the installation (as described in detail in my previous blog).

Configuring organizational units (OUs) for domain join

Customers should be aware that by default MSAs won’t have access to create computer objects in any Organizational Unit (OU). Thus, if you intend to use a custom OU for domain join, you’ll need to update the ODJConnectorEnrollmentWiazard.exe.config file. Fortunately, this is something you can do before or after connector enrollment:

  • Update ODJConnectorEnrollmentWizard.exe.config:
  • Default location is “C:\Program Files\Microsoft Intune\ODJConnector\ODJConnectorEnrollmentWizard
  • Add all the OUs required in OrganizationalUnitsUsedForOfflineDomainJoin
  • OU name should be the distinguished name.
  • You need to be aware that the MSA is only granted access to the OUs configured in this file (and the default Computer’s container). This means that if any OUs are removed from this list, completing the rest of the steps will revoke access.
  • Open ODJConnectorEnrollmentWizard (or restart it if it was open) and select the “Configure Managed Service Account button.
  •  If successful, a pop up will appear showing success.

Using the Intune Connector with multiple domains

For those who are already using the connector with more than one domain, they will be able to use the new connector by setting up a separate server per domain and installing a separate connector build for each domain.

Configuring the connector

  • Customers should install the Intune Connector for Active Directory on each of the domains that they want to use for domain join. In case a second account redundancy is required, customers must install the connector on a different server (in the same domain).
  • Go through the connector configuration steps meticulously and verify that everything has been done correctly. Also check that the MSA has the appropriate permissions on the desired OUs.
  • Verify that all connectors are present in the in the Microsoft Intune admin center (Devices > Enrollment > Windows > under Windows Autopilot, select Intune Connector for Active Directory) and that the version is greater than 6.2501.2000.5.

Configure Domain Join profile

Follow the steps given below.

  • Start by creating a domain join profile for each domain that you want to use for hybrid joining devices during Autopilot.
  • Target the domain join profile to the appropriate device groups.

Wrap Up

The Intune Connector for Active Directory provides an essential tool for managing hybrid devices in an Intune environment. With its many available features, customers will get centralized management capabilities for their environments thus allowing businesses to operate more efficiently.

But, with security having been a big concern for many, Microsoft has made the switch to using a Managed Service Account instead of a SYSTEM account. This action has effectively tightened security in customers’ environments. Going forward, the previous version of the Intune Connector will no longer be supported. Therefore, if you are yet to download and set up the new Intune Connector for Active Directory, the sooner you do the better.

The Go-To Guide for Setting Up SFTP Access with Azure Blob Storage and Microsoft Entra ID

Introduction

In today’s business environment, securely exchanging data with external partners is essential. Azure Blob Storage with native SFTP support offers a scalable, secure solution, while Microsoft Entra ID provides robust identity management. Together, these tools help organizations share data with external users while ensuring security and compliance.

This go-to guide will walk you through configuring Azure Blob Storage for SFTP, managing user access with Entra ID, and showcase three real-world use cases—payment reconciliation, logistics data sharing, and healthcare data exchange.

Why Use Azure Blob Storage with SFTP and Entra ID?

Azure Blob Storage with native SFTP support simplifies secure file transfers without the need for third-party SFTP servers. Integrating Microsoft Entra ID enhances security by enforcing multi-factor authentication (MFA), conditional access, and role-based access control (RBAC).

Benefits at a Glance

  • Scalable and Cost-Effective: Pay only for the storage you use.
  • Secure File Transfer: Use the SFTP protocol for encrypted data transfer.
  • Centralized Access Management: Use Entra ID to control and monitor external access.
  • Automation and Integration: Seamless integration with tools like Azure Logic Apps and Power Automate.

Step 1: Setting Up Azure Blob Storage with SFTP Support

Follow these steps to set up Azure Blob Storage for SFTP access.

1.1 Create an Azure Storage Account

  1. Sign in to the Azure Portal.
  2. Go to Create a Resource and select Storage Account.
  3. Configure the storage account:
    • Subscription and Resource Group: Choose your existing or create new ones.
    • Storage Account Name: Must be globally unique.
    • Region: Select the region closest to your users.
    • Performance: Choose Standard for general use or Premium for high-performance workloads.
    • Replication: Choose Locally Redundant Storage (LRS) or Geo-Redundant Storage (GRS) based on your redundancy needs.
  4. Under the Advanced tab, enable SFTP Support (Preview).
  5. Click Review + Create, then Create the storage account.

Step 2: Configuring SFTP Access for External Partners

  1. Navigate to your newly created storage account.
  2. Under Data Transfer, select SFTP Settings.
  3. Click Add Local User to create an SFTP user:
    • Username: Use a descriptive name like partner1.
    • Authentication: Choose SSH Key-based authentication for enhanced security.
    • Home Directory: Assign a specific container (e.g., /transactions).
    • Permissions: Grant appropriate permissions (Read, Write, List).
  4. Generate an SSH Key if you don’t have one:
    • Use ssh-keygen (Linux/Mac) or PuTTYgen (Windows).
  5. Save the configuration and take note of the SFTP endpoint.

Step 3: Integrating Microsoft Entra ID for Access Control

To ensure only authorized users access your SFTP service, use Microsoft Entra ID to manage identity and access.

3.1 Conditional Access Policies

  1. Go to the Azure AD Portal.
  2. Create a new Conditional Access Policy to enforce MFA and restrict access based on location.

3.2 Role-Based Access Control (RBAC)

Assign roles to external users to limit their access to only the relevant Azure Blob containers.

Step 4: Real-World Use Cases

Case 1: Payment Reconciliation – Mastercard Data Exchange

A retail company needs to securely exchange Mastercard transaction data with an external payment processor for daily reconciliation.

Workflow:

  1. The payment processor uploads transaction data to the SFTP endpoint.
  2. Azure Blob Storage receives and stores the files.
  3. Business Central or an ERP system processes the data for reporting and reconciliation.

Security Measures:

  • Use MFA and Conditional Access for external user authentication.
  • Configure audit logging to monitor access and activity.

Case 2: Logistics Data Sharing – Real-Time Inventory Updates

A manufacturing company needs to share real-time inventory data with its logistics partner.

Workflow:

  1. The logistics partner downloads inventory files and uploads shipping updates to the SFTP server.
  2. An Azure Function processes these updates and integrates them into the company’s ERP.

Security Measures:

  • RBAC ensures the logistics partner only accesses relevant files.
  • Data encryption protects information in transit and at rest.

Case 3: Healthcare Data Exchange – Secure File Transfers with External ClinicsA hospital exchanges patient data with external clinics, ensuring compliance with GDPR and HIPAA regulations.

Workflow:

  1. Clinics upload test results and patient data to the hospital’s SFTP endpoint.
  2. An Azure Logic App validates and integrates the data into the hospital’s EMR system.
  3. Doctors receive automatic notifications for new updates.

Security Measures:

  • Conditional Access restricts access by IP and enforces MFA.
  • Data masking during processing protects sensitive information.

Step 5: Automating Data Processing

Azure Logic Apps

Automate file processing with Logic Apps to trigger workflows when a file is uploaded.

Azure Functions

Run custom code to process files and integrate them with external systems.

Power Automate

Create simple automation workflows for notifications and approvals.

Step 6: Security Best Practices

  1. Enforce Multi-Factor Authentication for all external users.
  2. Use Conditional Access Policies to limit access by device and location.
  3. Encrypt Data at Rest and in Transit.
  4. Rotate SSH Keys Regularly.
  5. Audit and Monitor Access Logs for unusual activity.

Conclusion

Azure Blob Storage with SFTP support and Microsoft Entra ID provides a powerful and secure platform for exchanging data with external partners. Whether you are exchanging financial data, inventory files, or healthcare records, this setup ensures security, compliance, and scalability.

By following this step-by-step guide and using the real-world use cases as inspiration, you can create a secure, reliable solution for your organization’s external data exchange needs.

Further Reading: