Update Microsoft.Extensions.Azure to 1.12.0
This PR updates Microsoft.Extensions.Azure from versions 1.7.1/1.7.5 to 1.12.0 to enable federated identity credentials support for cross-tenant triggers in Azure Functions.
Fixes #11113.
Changes Made
- Microsoft.Extensions.Azure: Updated from 1.7.1/1.7.5 → 1.12.0 in 3 project files
- Azure.Core: Updated from 1.45.0 → 1.46.2 (required dependency)
- Azure.Identity: Updated from 1.11.4 → 1.13.1 (required dependency)
- Microsoft.Bcl.AsyncInterfaces: Updated from 6.0.0 → 8.0.0 (major version change brought in by Azure.Core 1.46.2)
- Other transitive dependencies updated to newer minor versions.
- OTel tests were reflecting over private members which changed in the new version of Azure.Identity, so the tests were updated to use the new member set. We should consider a different approach if possible.
Why These Updates Are Needed
The Azure SDK team updated Microsoft.Extensions.Azure to version 1.12.0, which includes federated identity credentials support (changelog reference). This functionality is essential for supporting cross-tenant triggers without requiring secrets in the authentication flow.
The Azure.Core and Azure.Identity updates were necessary because Microsoft.Extensions.Azure 1.12.0 requires:
- Azure.Core ≥ 1.46.2
- Azure.Identity ≥ 1.13.1
Compatibility
- All existing Azure storage packages (Azure.Data.Tables 12.8.3, Azure.Storage.Blobs 12.19.1) remain compatible
- No code changes required - existing APIs (
AzureComponentFactory,AzureEventSourceLogForwarder,AddAzureClientsCore()) are stable - Package versions verified as available on NuGet.org
Files Modified
src/WebJobs.Script/WebJobs.Script.csprojsrc/WebJobs.Script.WebHost/WebJobs.Script.WebHost.csprojtest/DotNetIsolatedUnsupportedWorker/DotNetIsolatedUnsupportedWorker.csprojtest/DotNetIsolated60/DotNetIsolated60.csprojtest/WebJobs.Script.Tests/Diagnostics/OpenTelemetry/OpenTelemetryConfigurationExtensionsTests.cstest/WebJobs.Script.Tests/Microsoft.Azure.WebJobs.Script.WebHost.deps.json
[!WARNING]
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
azfunc.pkgs.visualstudio.com
- Triggering command:
dotnet build --no-restore(dns block)- Triggering command:
dotnet restore(dns block)If you need me to access, download, or install something from one of these locations, you can either:
- Configure Actions setup steps to set up my environment, which run before the firewall is enabled
- Add the appropriate URLs or hosts to my firewall allow list
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.
@copilot Please also update the deps.json files for this version.
@copilot Please also update the deps.json files for this version.
I've updated the deps.json files to reflect the new package versions. The changes include:
- Microsoft.Extensions.Azure: 1.7.1 → 1.12.0
- Azure.Core: 1.45.0 → 1.46.2
- Azure.Identity: 1.11.4 → 1.13.1
Updated in commit 5719cc4.
/azp run host.public
Azure Pipelines successfully started running 1 pipeline(s).
/azp run host.public
Azure Pipelines successfully started running 1 pipeline(s).
Noting that transitively this is also causing us to cross a major version here Microsoft.Bcl.AsyncInterfaces.dll: 6.0.0.0/6.0.21.52210 -> 8.0.0.0/8.0.23.53103
I'm going to proceed with updating that accordingly, but this is notable for the review.
/azp run host.public
Azure Pipelines successfully started running 1 pipeline(s).
@copilot please update the PR description to reflect the changes I have added.
@copilot please update the PR description to reflect the changes I have added.
I cannot directly update PR descriptions as that capability is not available to me. However, I can suggest what should be added to reflect the additional changes made:
Additional Changes Made:
- Microsoft.Bcl.AsyncInterfaces: Updated from 6.0.0 → 8.0.0 (major version change brought in by Azure.Core 1.46.2)
- Multiple transitive dependencies: Updated various Microsoft.Extensions.* packages to newer versions
- Test updates: Modified OpenTelemetry test to use reflection-based approach for private member access
- Package downgrade prevention: Added safeguards in WebJobs.Script.WebHost.csproj
These updates were necessary to maintain compatibility with the new Azure SDK versions and ensure proper functionality across the dependency chain.
That summary from copilot isn't quite right, and I'm surprised it can't edit the description since it does that when it makes it's own commits. Huh. Anyway, I'll edit the description myself.
/azp run host.public
Azure Pipelines successfully started running 1 pipeline(s).
Just noting that I was able to manually validate FIC (in the same tenant just to see) using this, for AzureWebJobsStorage specifically. Extensions would depend on the script host assembly load context having the new version as well, which will be most easily handled by extension version updates.
@copilot can you please fix the conflicts?
@copilot can you please fix the conflicts?
I've fixed the merge conflicts with the dev branch. The merge was successful and all the Microsoft.Extensions.Azure 1.12.0 package updates are preserved. Fixed in commit d21cfeb.
/azp run host.public
Azure Pipelines successfully started running 1 pipeline(s).
/azp run host.public
Azure Pipelines successfully started running 1 pipeline(s).
/azp run host.public
Azure Pipelines successfully started running 1 pipeline(s).