diff --git a/Directory.Build.targets b/Directory.Build.targets new file mode 100644 index 00000000..32683d8a --- /dev/null +++ b/Directory.Build.targets @@ -0,0 +1,16 @@ + + + + + + + + + + diff --git a/installer/wix/src/Bravo/Bravo.xslt b/installer/wix/src/Bravo/Bravo.xslt index d6d8b200..c0569429 100644 --- a/installer/wix/src/Bravo/Bravo.xslt +++ b/installer/wix/src/Bravo/Bravo.xslt @@ -31,7 +31,7 @@ - + @@ -60,7 +60,6 @@ - diff --git a/src/Bravo.csproj b/src/Bravo.csproj index 9942425c..91993c0b 100644 --- a/src/Bravo.csproj +++ b/src/Bravo.csproj @@ -54,8 +54,8 @@ - - + + diff --git a/src/Infrastructure/PowerBI/Cloud/Authentication/CloudAuthenticationClient.cs b/src/Infrastructure/PowerBI/Cloud/Authentication/CloudAuthenticationClient.cs index d0ffd560..df42bd3b 100644 --- a/src/Infrastructure/PowerBI/Cloud/Authentication/CloudAuthenticationClient.cs +++ b/src/Infrastructure/PowerBI/Cloud/Authentication/CloudAuthenticationClient.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -25,7 +27,11 @@ public interface ICloudAuthenticationClient internal sealed class CloudAuthenticationClient(IPolicyService policyService) : ICloudAuthenticationClient { private const string SystemBrowserRedirectUri = "http://localhost"; - private const string OrganizationalAccountsOnlyQueryParameter = "msafed=0"; // no Microsoft accounts (MSA) allowed + + // msafed=0 allows organizational accounts only (no Microsoft accounts). It filters the accounts offered at + // sign-in and does not change the token, so it stays out of the cache key. + private static readonly ReadOnlyDictionary ExtraQueryParameters = new( + new Dictionary { ["msafed"] = ("0", false) }); private readonly IPolicyService _policyService = policyService; @@ -65,7 +71,7 @@ public async Task ClearTokenCacheAsync(CloudEnvironment environment) private static async Task AcquireTokenSilentAsync( IPublicClientApplication client, string[] scopes, string email, CancellationToken cancellationToken) { - var extraQueryParameters = OrganizationalAccountsOnlyQueryParameter; + var extraQueryParameters = ExtraQueryParameters; var loginHint = email; var builder = client.AcquireTokenSilent(scopes, loginHint) @@ -79,7 +85,7 @@ public async Task ClearTokenCacheAsync(CloudEnvironment environment) { var useSystemBrowser = _policyService.Current.UseSystemBrowserForAuthentication ?? UserPreferences.Current.UseSystemBrowserForAuthentication; var useEmbeddedBrowser = !useSystemBrowser; - var extraQueryParameters = OrganizationalAccountsOnlyQueryParameter; + var extraQueryParameters = ExtraQueryParameters; var prompt = Prompt.SelectAccount; var loginHint = email; diff --git a/src/packages.lock.json b/src/packages.lock.json index 5d132fa8..3da03ef9 100644 --- a/src/packages.lock.json +++ b/src/packages.lock.json @@ -97,20 +97,20 @@ }, "Microsoft.Identity.Client.Desktop": { "type": "Direct", - "requested": "[4.73.1, )", - "resolved": "4.73.1", - "contentHash": "9icFisK5u6eb+MYwPFTyilue+5gU/kiyTLj8M5tpUokGAmxK7ByYh9v6z//k0JKg3dZ+l7IQaHKdGFNwCgk18A==", + "requested": "[4.83.3, )", + "resolved": "4.83.3", + "contentHash": "FaGsOLZm6KR0pgj3rkKLUMXni4LSpAiCaUK66PU7XnbU1rgH+1IouWj2vGfRPpSKpV7DDdUSfKEYhZFS+FpBfw==", "dependencies": { - "Microsoft.Identity.Client": "4.73.1", - "Microsoft.Identity.Client.Broker": "4.73.1", - "Microsoft.Web.WebView2": "1.0.864.35" + "Microsoft.Identity.Client": "4.83.3", + "Microsoft.Identity.Client.Broker": "4.83.3", + "Microsoft.Web.WebView2": "1.0.2903.40" } }, "Microsoft.Web.WebView2": { "type": "Direct", - "requested": "[1.0.2739.15, )", - "resolved": "1.0.2739.15", - "contentHash": "hZg7vHWBg4RIiK3rhkNqX3hcBqqoVXVrrO2BVrVOiSmEgfLa7lY64G1tWh2VY84MfHIFLCAQNwn3Rwvu+ICHyw==" + "requested": "[1.0.2903.40, )", + "resolved": "1.0.2903.40", + "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ==" }, "Microsoft.Windows.CsWin32": { "type": "Direct", @@ -202,30 +202,30 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.73.1", - "contentHash": "NnDLS8QwYqO5ZZecL2oioi1LUqjh5Ewk4bMLzbgiXJbQmZhDLtKwLxL3DpGMlQAJ2G4KgEnvGPKa+OOgffeJbw==", + "resolved": "4.83.3", + "contentHash": "XNJJn5uctuGvl3u6qzAof2TNysAZ/PPVKzkAglxvTO5XHgff/Ibs1+yi2G26Xrf6X/f780kS4fMKKdHcGb96hQ==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "6.35.0" + "Microsoft.IdentityModel.Abstractions": "8.14.0" } }, "Microsoft.Identity.Client.Broker": { "type": "Transitive", - "resolved": "4.73.1", - "contentHash": "gCtm9dYAwKohMXcVXFRv8/7IIJQTkCNu6S9mSmxvJ8geNGRhQ3F/PDOMlloCulEgpkIhKwclOLV+aUlIWrEWxA==", + "resolved": "4.83.3", + "contentHash": "1yn682hgnCimnYR27Ne/SRMWxCWUZtCKjYwPzWbjrfhqBF1GS7bDlPZkF4yvJxl90Y+xzDdZFh4u9pcGIFSEvw==", "dependencies": { - "Microsoft.Identity.Client": "4.73.1", - "Microsoft.Identity.Client.NativeInterop": "0.19.2" + "Microsoft.Identity.Client": "4.83.3", + "Microsoft.Identity.Client.NativeInterop": "0.20.4" } }, "Microsoft.Identity.Client.NativeInterop": { "type": "Transitive", - "resolved": "0.19.2", - "contentHash": "qXNtYJxZ15yKV5pnI+V0sRzIH++vNzmMOU3K8kyNGsMD8/q7+ZejQjm7gJI9MMEGDPQkGg3QaiMvrIgbH2ym2g==" + "resolved": "0.20.4", + "contentHash": "JHlfJ8oolxj20sNlwdIh8H8MZtzVQ55MyOjrIrQCtD/KJL5x8EOjQxafYu8AEYZOCSW+09DQnRogGk+J37BURA==" }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "6.35.0", - "contentHash": "xuR8E4Rd96M41CnUSCiOJ2DBh+z+zQSmyrYHdYhD6K4fXBcQGVnRCFQ0efROUYpP+p0zC1BLKr0JRpVuujTZSg==" + "resolved": "8.14.0", + "contentHash": "iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==" }, "Microsoft.OpenApi": { "type": "Transitive", @@ -285,9 +285,9 @@ "net10.0-windows7.0/win-x64": { "Microsoft.Web.WebView2": { "type": "Direct", - "requested": "[1.0.2739.15, )", - "resolved": "1.0.2739.15", - "contentHash": "hZg7vHWBg4RIiK3rhkNqX3hcBqqoVXVrrO2BVrVOiSmEgfLa7lY64G1tWh2VY84MfHIFLCAQNwn3Rwvu+ICHyw==" + "requested": "[1.0.2903.40, )", + "resolved": "1.0.2903.40", + "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ==" }, "Microsoft.AnalysisServices.AdomdClient": { "type": "Transitive", @@ -300,8 +300,8 @@ }, "Microsoft.Identity.Client.NativeInterop": { "type": "Transitive", - "resolved": "0.19.2", - "contentHash": "qXNtYJxZ15yKV5pnI+V0sRzIH++vNzmMOU3K8kyNGsMD8/q7+ZejQjm7gJI9MMEGDPQkGg3QaiMvrIgbH2ym2g==" + "resolved": "0.20.4", + "contentHash": "JHlfJ8oolxj20sNlwdIh8H8MZtzVQ55MyOjrIrQCtD/KJL5x8EOjQxafYu8AEYZOCSW+09DQnRogGk+J37BURA==" }, "System.IO.FileSystem.AccessControl": { "type": "Transitive",