Add MSAL native broker support for Windows ARM64 and Linux RHEL#324803
Draft
TylerLeonhardt wants to merge 1 commit into
Draft
Add MSAL native broker support for Windows ARM64 and Linux RHEL#324803TylerLeonhardt wants to merge 1 commit into
TylerLeonhardt wants to merge 1 commit into
Conversation
Bump @azure/msal-node-runtime to 0.20.5, which ships Windows arm64 and
RHEL/Ubuntu Linux broker binaries (and fixes the arm64 macOS dylib that
0.20.4 shipped linked for the wrong architecture).
- esbuild.mts: enable Windows arm64; copy the specific target-arch
binaries for Windows/macOS, and use the package's own flattened Linux
binary (selected at install time by msal-node-runtime's copyBinaries.js
from /etc/os-release) rather than reimplementing distro detection.
- build/darwin: handle the renamed arch-suffixed macOS dylibs
(libmsalruntime_{x64,arm64}.dylib) in the universal-app merge
(cross-copy + x64ArchFiles) and Mach-O arch verification.
- test/sanity: exclude msalruntime_arm64.dll from the VersionInfo check.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Expands the microsoft-authentication extension’s MSAL native broker runtime packaging to support Windows ARM64 and Linux RHEL by updating the pinned MSAL runtime version and adjusting build/packaging scripts (including macOS universal-app handling for newly arch-suffixed dylibs).
Changes:
- Pin
@azure/msal-node-runtimeto 0.20.5 viaoverrides, and update the extension lockfile accordingly. - Update the extension build script to copy MSAL native binaries correctly for Windows ARM64 and distro-flattened Linux binaries.
- Update macOS universal packaging and Mach-O verification skip lists to account for
libmsalruntime_{x64,arm64}.dylib.
Show a summary per file
| File | Description |
|---|---|
| test/sanity/src/context.ts | Excludes the new msalruntime_arm64.dll from the Windows VersionInfo sanity check. |
| extensions/microsoft-authentication/package.json | Pins @azure/msal-node-runtime to 0.20.5 via overrides. |
| extensions/microsoft-authentication/package-lock.json | Updates the resolved @azure/msal-node-runtime version to 0.20.5. |
| extensions/microsoft-authentication/esbuild.mts | Copies per-arch MSAL binaries on Windows/macOS and flattened binaries on Linux. |
| build/darwin/verify-macho.ts | Skips the new arch-suffixed MSAL dylibs during universal Mach-O validation. |
| build/darwin/create-universal-app.ts | Cross-copies arch-suffixed MSAL dylibs to satisfy universal merger file-tree requirements. |
Review details
Files not reviewed (1)
- extensions/microsoft-authentication/package-lock.json: Generated file
- Files reviewed: 5/6 changed files
- Comments generated: 1
- Review effort level: Low
Comment on lines
+26
to
+27
| // MSAL runtime dylibs are arch-suffixed and intentionally shipped as single-arch files in the | ||
| // universal app (see create-universal-app.ts), so exclude them from the universal arch check. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Expands MSAL native broker support (
@azure/msal-node-extensions/@azure/msal-node-runtime) to Windows ARM64 and Linux RHEL, on top of the existing Windows x64/x86, macOS x64/arm64, and Linux (Ubuntu) x64.How
@azure/msal-node-runtimeto0.20.5(viaoverrides). This is the first version that ships Windows arm64 + RHEL/Ubuntu Linux binaries; it also fixes the arm64 macOS dylib that0.20.4shipped linked for the wrong architecture (82 KB instead of ~7 MB). The runtime's JS/ABI surface is unchanged from0.20.1, so@azure/msal-node/@azure/msal-node-extensionsare untouched.extensions/microsoft-authentication/esbuild.mts: enable Windows arm64. For Windows/macOS, copy the specific target-arch binaries out of the package'sdist/<platform>/<arch>/(the target arch can differ from the build host in cross-arch/universal builds). For Linux, use the package as-is — MSAL's owninstallscript (copyBinaries.js) already selects the correct distro binary from/etc/os-releaseand flattens it, so the extension just copies the flattened binaries.build/darwin:0.20.5renames the macOS dylibs to arch-suffixed names (libmsalruntime_{x64,arm64}.dylib). Handle that in the universal-app merge (cross-copy each dylib into both builds +x64ArchFiles) and in Mach-O arch verification, mirroring the existing copilot/ripgrep single-arch-binary pattern.test/sanity: excludemsalruntime_arm64.dllfrom the Windows ProductName VersionInfo check.Testing
dist/(msal-node-runtime.node+msalruntime_arm64.dll, PE machine type0xAA64), and the native broker loads and initializes in an arm64 process (NativeBrokerPlugin().isBrokerAvailable === true). Interactive Microsoft sign-in uses the native OS broker.darwin-universalpackaging +verify-machosteps should be exercised on a Mac before merge..rpmon a RHEL host — a build-infra follow-up, not covered here.Draft while the macOS universal build and Linux RHEL packaging are validated in CI.
🤖 Generated with Claude Code