diff --git a/Duende.Bff.sln b/Duende.Bff.sln
index 9afb7decc..96ab8e04c 100644
--- a/Duende.Bff.sln
+++ b/Duende.Bff.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# 17
+# Visual Studio Version 17
VisualStudioVersion = 17.9.34414.90
MinimumVisualStudioVersion = 15.0.26124.0
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Duende.Bff", "src\Duende.Bff\Duende.Bff.csproj", "{63FD9C99-C538-44BF-9AD4-D892775E336B}"
@@ -63,6 +63,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Duende.Bff.Blazor.Client.Un
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Duende.Bff.Blazor.UnitTests", "test\Duende.Bff.Blazor.UnitTests\Duende.Bff.Blazor.UnitTests.csproj", "{2A04808A-A06C-4F10-87B9-2D12E065F729}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Duende.Bff.Shared", "src\Duende.Bff.Shared\Duende.Bff.Shared.csproj", "{EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -337,6 +339,18 @@ Global
{2A04808A-A06C-4F10-87B9-2D12E065F729}.Release|x64.Build.0 = Release|Any CPU
{2A04808A-A06C-4F10-87B9-2D12E065F729}.Release|x86.ActiveCfg = Release|Any CPU
{2A04808A-A06C-4F10-87B9-2D12E065F729}.Release|x86.Build.0 = Release|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Debug|x64.Build.0 = Debug|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Debug|x86.Build.0 = Debug|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Release|x64.ActiveCfg = Release|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Release|x64.Build.0 = Release|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Release|x86.ActiveCfg = Release|Any CPU
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -368,6 +382,7 @@ Global
{40EDC041-C262-414C-B374-631BF2D1BD97} = {8A0FCD30-A6D9-4622-B4D5-90010DE0795E}
{001840D4-8B83-4A8C-AF2C-5429D4F9A370} = {B2A776DB-385B-4AD4-96A5-61746FD909C3}
{2A04808A-A06C-4F10-87B9-2D12E065F729} = {B2A776DB-385B-4AD4-96A5-61746FD909C3}
+ {EDC31C09-611B-4B4A-870B-FE1BD9EF82AB} = {3C549079-A502-4B40-B051-5278915AE91B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3DAD5980-4688-4794-9CF0-6F3CB67194E7}
diff --git a/src/Duende.Bff.Blazor.Client/Duende.Bff.Blazor.Client.csproj b/src/Duende.Bff.Blazor.Client/Duende.Bff.Blazor.Client.csproj
index a3da2a6a3..806be8b2b 100644
--- a/src/Duende.Bff.Blazor.Client/Duende.Bff.Blazor.Client.csproj
+++ b/src/Duende.Bff.Blazor.Client/Duende.Bff.Blazor.Client.csproj
@@ -6,12 +6,6 @@
enable
-
-
-
-
-
-
@@ -24,5 +18,5 @@
-
+
diff --git a/src/Duende.Bff/Shared/ClaimLite.cs b/src/Duende.Bff.Shared/ClaimLite.cs
similarity index 95%
rename from src/Duende.Bff/Shared/ClaimLite.cs
rename to src/Duende.Bff.Shared/ClaimLite.cs
index 6a1189c45..6d9a989a0 100644
--- a/src/Duende.Bff/Shared/ClaimLite.cs
+++ b/src/Duende.Bff.Shared/ClaimLite.cs
@@ -6,7 +6,7 @@ namespace Duende.Bff;
///
/// Serialization friendly claim
///
-internal class ClaimLite
+public class ClaimLite
{
///
/// The type
diff --git a/src/Duende.Bff/Shared/ClaimsLiteExtensions.cs b/src/Duende.Bff.Shared/ClaimsLiteExtensions.cs
similarity index 95%
rename from src/Duende.Bff/Shared/ClaimsLiteExtensions.cs
rename to src/Duende.Bff.Shared/ClaimsLiteExtensions.cs
index da7073af4..ba44f60dc 100644
--- a/src/Duende.Bff/Shared/ClaimsLiteExtensions.cs
+++ b/src/Duende.Bff.Shared/ClaimsLiteExtensions.cs
@@ -1,12 +1,11 @@
// Copyright (c) Duende Software. All rights reserved.
// See LICENSE in the project root for license information.
-using System.Linq;
using System.Security.Claims;
namespace Duende.Bff;
-internal static class ClaimsLiteExtensions
+public static class ClaimsLiteExtensions
{
///
/// Converts a ClaimsPrincipalLite to ClaimsPrincipal
diff --git a/src/Duende.Bff/Shared/ClaimsPrincipalLite.cs b/src/Duende.Bff.Shared/ClaimsPrincipalLite.cs
similarity index 95%
rename from src/Duende.Bff/Shared/ClaimsPrincipalLite.cs
rename to src/Duende.Bff.Shared/ClaimsPrincipalLite.cs
index cfe2f9c2e..455f8116b 100644
--- a/src/Duende.Bff/Shared/ClaimsPrincipalLite.cs
+++ b/src/Duende.Bff.Shared/ClaimsPrincipalLite.cs
@@ -6,7 +6,7 @@ namespace Duende.Bff;
///
/// Serialization friendly ClaimsPrincipal
///
-internal class ClaimsPrincipalLite
+public class ClaimsPrincipalLite
{
///
/// The authentication type
diff --git a/src/Duende.Bff.Shared/Duende.Bff.Shared.csproj b/src/Duende.Bff.Shared/Duende.Bff.Shared.csproj
new file mode 100644
index 000000000..d76ee03e4
--- /dev/null
+++ b/src/Duende.Bff.Shared/Duende.Bff.Shared.csproj
@@ -0,0 +1,10 @@
+
+
+
+ net8.0
+ enable
+ enable
+ Duende.Bff
+
+
+
diff --git a/src/Duende.Bff.Shared/README.md b/src/Duende.Bff.Shared/README.md
new file mode 100644
index 000000000..fe7857913
--- /dev/null
+++ b/src/Duende.Bff.Shared/README.md
@@ -0,0 +1,9 @@
+This project contains code that needs to be shared across Duende.Bff and
+Duende.Bff.Blazor.Client. We can't depend on Duende.Bff in
+Duende.Bff.Blazor.Client because the Duende.Bff has a framework reference to
+aspnetcore and Duende.Bff.Blazor.Client is intended to be consumed in blazor
+wasm applications.
+
+We can't depend on the Duende.Bff.Blazor.Client from Duende.Bff, because that
+would bring all the blazor client work into the main package - we want that to
+be opt in.
\ No newline at end of file
diff --git a/src/Duende.Bff/Duende.Bff.csproj b/src/Duende.Bff/Duende.Bff.csproj
index 04586b069..248163066 100644
--- a/src/Duende.Bff/Duende.Bff.csproj
+++ b/src/Duende.Bff/Duende.Bff.csproj
@@ -12,10 +12,9 @@
+
-
-
-
+
\ No newline at end of file
diff --git a/src/Duende.Bff/Extensions/AuthenticationTicketExtensions.cs b/src/Duende.Bff/Extensions/AuthenticationTicketExtensions.cs
index d8b514466..bc6be35e6 100644
--- a/src/Duende.Bff/Extensions/AuthenticationTicketExtensions.cs
+++ b/src/Duende.Bff/Extensions/AuthenticationTicketExtensions.cs
@@ -140,7 +140,7 @@ public static string Serialize(this AuthenticationTicket ticket, IDataProtector
///
/// Serialization friendly AuthenticationTicket
///
- internal class AuthenticationTicketLite
+ public class AuthenticationTicketLite
{
///
/// The scheme