Skip to content

[Identity] Add AzureAuthorityHosts.AzureBleuCloud for Bleu Cloud, the national partner cloud for France - #61022

Merged
Jonathan Cárdenas (JonathanCrd) merged 4 commits into
Azure:mainfrom
devi0042JD:identity/add-azure-bleu-authority-host
Jul 24, 2026
Merged

[Identity] Add AzureAuthorityHosts.AzureBleuCloud for Bleu Cloud, the national partner cloud for France#61022
Jonathan Cárdenas (JonathanCrd) merged 4 commits into
Azure:mainfrom
devi0042JD:identity/add-azure-bleu-authority-host

Conversation

@devi0042JD

@devi0042JD devi0042JD commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Description

Adds official support for Bleu Cloud, the national partner cloud for France:

  • New property AzureAuthorityHosts.AzureBleuCloud (https://login.sovcloud-identity.fr/) in Azure.Core (sdk/core/Azure.Core/src/Identity/AzureAuthorityHosts.cs), the type forwarded to Azure.Identity.
  • Added the Bleu Cloud Azure Resource Manager scope (https://management.sovcloud-api.fr//.default) to AzureAuthorityHosts.GetDefaultScope so interactive credentials' Authenticate methods work against Bleu Cloud without explicit scopes.
  • New field ArmEnvironment.AzureBleuCloud (https://management.sovcloud-api.fr) in Azure.ResourceManager; the audience carries a trailing slash so DefaultScope resolves to the double-slash form, matching AzurePublicCloud.
  • Regenerated the public API listings for Azure.Core and Azure.ResourceManager with eng/scripts/Export-API.ps1.
  • CHANGELOG entries under the unreleased sections of Azure.Core (1.61.0-beta.1) and Azure.ResourceManager (1.15.0-beta.1).
  • New tests in sdk/core/Azure.Core/tests/Identity/AzureAuthorityHostsTests.cs covering the well-known authority host values and their default ARM scopes, and a new assertion in ArmEnvironmentTests.DefaultScope.
  • Added bleu and sovcloud to the repository cspell dictionary.

Context

Bleu Cloud is a Microsoft national partner cloud operated in France by Bleu, a joint venture between Orange and Capgemini, designed to meet the French ANSSI SecNumCloud requirements. Its Entra authority host is login.sovcloud-identity.fr.

Twin PR of Azure/azure-sdk-for-python#48069.

Testing

  • dotnet test sdk/core/Azure.Core/tests/Azure.Core.Tests.csproj -f net10.0 filtered on AzureAuthorityHostsTests, TokenCredentialOptionsTests, DeviceCodeCredentialTests, InteractiveBrowserCredentialTests and UsernamePasswordCredentialTests — 1102 passed, 0 failed.
  • dotnet test sdk/resourcemanager/Azure.ResourceManager/tests/Azure.ResourceManager.Tests.csproj -f net10.0 filtered on ArmEnvironmentTests — 4 passed, 0 failed.

Contribution checklist:

  • The pull request does not introduce [breaking changes]
  • CHANGELOG is updated for new features, bug fixes or other significant changes.
  • I have read the contribution guidelines.

@github-actions github-actions Bot added Azure.Core Azure.Identity Community Contribution Community members are working on the issue customer-reported Issues that are reported by GitHub users external to the Azure organization. labels Jul 15, 2026
@github-actions

Copy link
Copy Markdown

Thank you for your contribution devi0042JD! We will review the pull request and get back to you soon.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
10 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

… national partner cloud for France

- Add AzureAuthorityHosts.AzureBleuCloud (https://login.sovcloud-identity.fr/)
  and its default Azure Resource Manager scope
  (https://management.sovcloud-api.fr//.default) used by interactive
  credentials' Authenticate methods.
- Regenerate the Azure.Core and Azure.Identity public API listings.
- Update CHANGELOGs, add AzureAuthorityHostsTests, and add sovcloud to the
  cspell dictionary.
@devi0042JD
devi0042JD force-pushed the identity/add-azure-bleu-authority-host branch from 7cfa337 to 0e0dab4 Compare July 15, 2026 14:39
@devi0042JD devi0042JD changed the title [Identity] Add AzureAuthorityHosts.AzureBleuCloud for the Bleu national partner cloud (France) [Identity] Add AzureAuthorityHosts.AzureBleuCloud for Bleu Cloud, the national partner cloud for France Jul 15, 2026
@devi0042JD

Copy link
Copy Markdown
Contributor Author

Note on the Build PRBatch ApiCompat failures

The CannotRemoveAttribute : Attribute 'Microsoft.Cci.DummyTypeReference' ... errors reported for Azure.Identity (net8.0 and net10.0, 56 errors) are pre-existing on main and are not introduced by this PR. Building the project on a clean main checkout reproduces exactly the same errors:

dotnet build sdk/identity/Azure.Identity/src/Azure.Identity.csproj -c Release -f net8.0

They surface on this PR because it touches both sdk/core and sdk/identity, so the batched PR pipeline builds Azure.Identity with ApiCompat enabled — the last identity-triggered CI run (#60292, June 26) predates the regression.

Details from a local repro:

  • ApiCompat compares the current build against the azure.identity/1.21.0 baseline, which is a type-forwarding assembly (since TypeForward Azure.Identity types to Azure.Core to enable per-library AddFooClient extensions #57200); the contract's forwards are resolved against the freshly built Azure.Core via --contract-depends.
  • All 56 errors are Microsoft.Cci.DummyTypeReference artifacts on public async methods (GetTokenAsync, AuthenticateAsync, SerializeAsync, DeserializeAsync, …).
  • T:Microsoft.Cci.DummyTypeReference is already present in eng/ApiListing.exclude-attributes.txt (added by [EngSys] Exclude compiler attribute from API Compat #58105 for exactly this type-forwarding scenario), and the generated apicompat.rsp confirms --exclude-attributes is passed — but the exclusion no longer takes effect for these members.

Happy to fold a fix into this PR if the engineering system team has a preferred approach (e.g. baseline entries under eng/apicompatbaselines/Azure.Identity.txt), or to rebase once it is addressed separately.

Comment thread sdk/core/Azure.Core/src/Identity/AzureAuthorityHosts.cs

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution!

The changes under core/Azure.Core look good to me, just please address m-nash's feedback.

Also, please revert all the changes inside identity/Azure.Identity, since these are redundant. I left a comment explaining why.

Comment thread sdk/identity/Azure.Identity/api/Azure.Identity.net10.0.cs Outdated
Comment thread sdk/identity/Azure.Identity/CHANGELOG.md Outdated
@github-project-automation github-project-automation Bot moved this from Untriaged to In Progress in Azure Identity SDK Improvements Jul 15, 2026
All Identity types live in Azure.Core since 1.53.0; the Azure.Identity
package does not need to change for this feature.
The audience carries a trailing slash so DefaultScope resolves to the
double-slash form used by Bleu Cloud, matching AzurePublicCloud.
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
10 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds first-class support for Bleu Cloud (France national partner cloud) across Azure.Core identity authority hosts and Azure.ResourceManager environments, including default ARM scopes so interactive authentication flows work without explicitly provided scopes.

Changes:

  • Added AzureAuthorityHosts.AzureBleuCloud and mapped it in AzureAuthorityHosts.GetDefaultScope to the Bleu Cloud ARM scope.
  • Added ArmEnvironment.AzureBleuCloud and validated its DefaultScope behavior.
  • Updated changelogs, public API listings, and repository spelling dictionary; added focused unit tests.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated no comments.

Show a summary per file
File Description
sdk/resourcemanager/Azure.ResourceManager/tests/Unit/ArmEnvironmentTests.cs Adds an assertion validating Bleu Cloud’s computed DefaultScope.
sdk/resourcemanager/Azure.ResourceManager/src/ArmEnvironment.cs Introduces ArmEnvironment.AzureBleuCloud with the Bleu Cloud ARM endpoint/audience.
sdk/resourcemanager/Azure.ResourceManager/CHANGELOG.md Documents the new ArmEnvironment.AzureBleuCloud feature under “Features Added”.
sdk/resourcemanager/Azure.ResourceManager/api/Azure.ResourceManager.netstandard2.0.cs Regenerated public API to include the new AzureBleuCloud environment field.
sdk/resourcemanager/Azure.ResourceManager/api/Azure.ResourceManager.net8.0.cs Regenerated public API to include the new AzureBleuCloud environment field.
sdk/resourcemanager/Azure.ResourceManager/api/Azure.ResourceManager.net10.0.cs Regenerated public API to include the new AzureBleuCloud environment field.
sdk/core/Azure.Core/tests/Identity/AzureAuthorityHostsTests.cs Adds unit tests for the Bleu Cloud authority host value and its default ARM scope mapping.
sdk/core/Azure.Core/src/Identity/AzureAuthorityHosts.cs Adds AzureAuthorityHosts.AzureBleuCloud and maps it to the Bleu Cloud ARM default scope.
sdk/core/Azure.Core/CHANGELOG.md Documents the new AzureAuthorityHosts.AzureBleuCloud support and default-scope resolution behavior.
sdk/core/Azure.Core/api/Azure.Core.netstandard2.0.cs Regenerated public API to include AzureAuthorityHosts.AzureBleuCloud.
sdk/core/Azure.Core/api/Azure.Core.net8.0.cs Regenerated public API to include AzureAuthorityHosts.AzureBleuCloud.
sdk/core/Azure.Core/api/Azure.Core.net472.cs Regenerated public API to include AzureAuthorityHosts.AzureBleuCloud.
sdk/core/Azure.Core/api/Azure.Core.net462.cs Regenerated public API to include AzureAuthorityHosts.AzureBleuCloud.
sdk/core/Azure.Core/api/Azure.Core.net10.0.cs Regenerated public API to include AzureAuthorityHosts.AzureBleuCloud.
.vscode/cspell.json Adds “bleu” and “sovcloud” to the cspell dictionary to prevent false positives.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing the feedback.

@JonathanCrd
Jonathan Cárdenas (JonathanCrd) merged commit 3436b2d into Azure:main Jul 24, 2026
80 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in Azure Identity SDK Improvements Jul 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Azure.Core Azure.Identity Community Contribution Community members are working on the issue customer-reported Issues that are reported by GitHub users external to the Azure organization.

Projects

Development

Successfully merging this pull request may close these issues.

5 participants