diff --git a/.gitignore b/.gitignore
index 0b62f8f..ef8bb0c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -197,7 +197,6 @@ ClientBin/
*.dbmdl
*.dbproj.schemaview
*.jfm
-*.pfx
*.publishsettings
orleans.codegen.cs
diff --git a/DuendeIdentityServer/DuendeDynamicProviders/DuendeDynamicProviders.csproj b/DuendeIdentityServer/DuendeDynamicProviders/DuendeDynamicProviders.csproj
index b8969e8..14dd7af 100644
--- a/DuendeIdentityServer/DuendeDynamicProviders/DuendeDynamicProviders.csproj
+++ b/DuendeIdentityServer/DuendeDynamicProviders/DuendeDynamicProviders.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/DuendeIdentityServer/DuendeDynamicProviders/Pages/Account/Logout/Index.cshtml.cs b/DuendeIdentityServer/DuendeDynamicProviders/Pages/Account/Logout/Index.cshtml.cs
index d4e1f8e..aa4d82f 100644
--- a/DuendeIdentityServer/DuendeDynamicProviders/Pages/Account/Logout/Index.cshtml.cs
+++ b/DuendeIdentityServer/DuendeDynamicProviders/Pages/Account/Logout/Index.cshtml.cs
@@ -1,7 +1,7 @@
+using Duende.IdentityModel;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Extensions;
using Duende.IdentityServer.Services;
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/DuendeIdentityServer/DuendeDynamicProviders/Pages/Consent/Index.cshtml.cs b/DuendeIdentityServer/DuendeDynamicProviders/Pages/Consent/Index.cshtml.cs
index 953955e..f1f1bb4 100644
--- a/DuendeIdentityServer/DuendeDynamicProviders/Pages/Consent/Index.cshtml.cs
+++ b/DuendeIdentityServer/DuendeDynamicProviders/Pages/Consent/Index.cshtml.cs
@@ -1,9 +1,9 @@
+using Duende.IdentityModel;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Extensions;
using Duende.IdentityServer.Models;
using Duende.IdentityServer.Services;
using Duende.IdentityServer.Validation;
-using IdentityModel;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
diff --git a/DuendeIdentityServer/DuendeDynamicProviders/Pages/Diagnostics/ViewModel.cs b/DuendeIdentityServer/DuendeDynamicProviders/Pages/Diagnostics/ViewModel.cs
index 1f5a7eb..5eb2ae5 100644
--- a/DuendeIdentityServer/DuendeDynamicProviders/Pages/Diagnostics/ViewModel.cs
+++ b/DuendeIdentityServer/DuendeDynamicProviders/Pages/Diagnostics/ViewModel.cs
@@ -1,11 +1,9 @@
// Copyright (c) Duende Software. All rights reserved.
// See LICENSE in the project root for license information.
-
-
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using System.Text;
using System.Text.Json;
+using Duende.IdentityModel;
namespace DuendeDynamicProviders.Pages.Diagnostics;
diff --git a/DuendeIdentityServer/DuendeDynamicProviders/Pages/ExternalLogin/Callback.cshtml.cs b/DuendeIdentityServer/DuendeDynamicProviders/Pages/ExternalLogin/Callback.cshtml.cs
index 41c37ca..22b1c5f 100644
--- a/DuendeIdentityServer/DuendeDynamicProviders/Pages/ExternalLogin/Callback.cshtml.cs
+++ b/DuendeIdentityServer/DuendeDynamicProviders/Pages/ExternalLogin/Callback.cshtml.cs
@@ -1,9 +1,9 @@
using System.Security.Claims;
+using Duende.IdentityModel;
using Duende.IdentityServer;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Services;
using Duende.IdentityServer.Test;
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/DuendeIdentityServer/DuendeDynamicProviders/Pages/TestUsers.cs b/DuendeIdentityServer/DuendeDynamicProviders/Pages/TestUsers.cs
index 06e4a13..4603c06 100644
--- a/DuendeIdentityServer/DuendeDynamicProviders/Pages/TestUsers.cs
+++ b/DuendeIdentityServer/DuendeDynamicProviders/Pages/TestUsers.cs
@@ -1,10 +1,9 @@
// Copyright (c) Duende Software. All rights reserved.
// See LICENSE in the project root for license information.
-
-using IdentityModel;
using System.Security.Claims;
using System.Text.Json;
+using Duende.IdentityModel;
using Duende.IdentityServer;
using Duende.IdentityServer.Test;
diff --git a/DuendeIdentityServer/DuendeIdP/DuendeIdP.csproj b/DuendeIdentityServer/DuendeIdP/DuendeIdP.csproj
index f010e93..d0aaa5e 100644
--- a/DuendeIdentityServer/DuendeIdP/DuendeIdP.csproj
+++ b/DuendeIdentityServer/DuendeIdP/DuendeIdP.csproj
@@ -10,9 +10,9 @@
-
-
-
+
+
+
diff --git a/DuendeIdentityServer/DuendeIdP/Pages/Account/Logout/Index.cshtml.cs b/DuendeIdentityServer/DuendeIdP/Pages/Account/Logout/Index.cshtml.cs
index ed5ea66..a5ad19c 100644
--- a/DuendeIdentityServer/DuendeIdP/Pages/Account/Logout/Index.cshtml.cs
+++ b/DuendeIdentityServer/DuendeIdP/Pages/Account/Logout/Index.cshtml.cs
@@ -1,7 +1,7 @@
+using Duende.IdentityModel;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Extensions;
using Duende.IdentityServer.Services;
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/DuendeIdentityServer/DuendeIdP/Pages/Consent/Index.cshtml.cs b/DuendeIdentityServer/DuendeIdP/Pages/Consent/Index.cshtml.cs
index ca7cc80..55478f8 100644
--- a/DuendeIdentityServer/DuendeIdP/Pages/Consent/Index.cshtml.cs
+++ b/DuendeIdentityServer/DuendeIdP/Pages/Consent/Index.cshtml.cs
@@ -1,9 +1,9 @@
+using Duende.IdentityModel;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Extensions;
using Duende.IdentityServer.Models;
using Duende.IdentityServer.Services;
using Duende.IdentityServer.Validation;
-using IdentityModel;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
diff --git a/DuendeIdentityServer/DuendeIdP/Pages/Diagnostics/ViewModel.cs b/DuendeIdentityServer/DuendeIdP/Pages/Diagnostics/ViewModel.cs
index 7c1f9a3..9fe2a6a 100644
--- a/DuendeIdentityServer/DuendeIdP/Pages/Diagnostics/ViewModel.cs
+++ b/DuendeIdentityServer/DuendeIdP/Pages/Diagnostics/ViewModel.cs
@@ -2,10 +2,10 @@
// See LICENSE in the project root for license information.
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using System.Text;
using System.Text.Json;
+using Duende.IdentityModel;
namespace DuendeIdP.Pages.Diagnostics;
diff --git a/DuendeIdentityServer/DuendeIdP/Pages/ExternalLogin/Callback.cshtml.cs b/DuendeIdentityServer/DuendeIdP/Pages/ExternalLogin/Callback.cshtml.cs
index 8c96a6c..ddfff7f 100644
--- a/DuendeIdentityServer/DuendeIdP/Pages/ExternalLogin/Callback.cshtml.cs
+++ b/DuendeIdentityServer/DuendeIdP/Pages/ExternalLogin/Callback.cshtml.cs
@@ -1,9 +1,9 @@
using System.Security.Claims;
+using Duende.IdentityModel;
using Duende.IdentityServer;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Services;
using Duende.IdentityServer.Test;
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/DuendeIdentityServer/DuendeIdP/Pages/TestUsers.cs b/DuendeIdentityServer/DuendeIdP/Pages/TestUsers.cs
index 92cc553..2d452c0 100644
--- a/DuendeIdentityServer/DuendeIdP/Pages/TestUsers.cs
+++ b/DuendeIdentityServer/DuendeIdP/Pages/TestUsers.cs
@@ -2,9 +2,9 @@
// See LICENSE in the project root for license information.
-using IdentityModel;
using System.Security.Claims;
using System.Text.Json;
+using Duende.IdentityModel;
using Duende.IdentityServer;
using Duende.IdentityServer.Test;
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Config.cs b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Config.cs
index 3e2e0db..6ffa293 100644
--- a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Config.cs
+++ b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Config.cs
@@ -1,7 +1,7 @@
using System.Security.Cryptography.X509Certificates;
+using Duende.IdentityModel;
using Duende.IdentityServer;
using Duende.IdentityServer.Models;
-using IdentityModel;
using Rsk.Saml;
using Rsk.Saml.Models;
using ServiceProvider = Rsk.Saml.Models.ServiceProvider;
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/IdentityServer.csproj b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/IdentityServer.csproj
index 60b98cf..b1b92d2 100644
--- a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/IdentityServer.csproj
+++ b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/IdentityServer.csproj
@@ -6,7 +6,7 @@
-
+
@@ -15,8 +15,8 @@
-
-
+
+
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/Account/Logout/Index.cshtml.cs b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/Account/Logout/Index.cshtml.cs
index 10c2053..0ae620f 100644
--- a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/Account/Logout/Index.cshtml.cs
+++ b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/Account/Logout/Index.cshtml.cs
@@ -1,8 +1,8 @@
using System.Threading.Tasks;
+using Duende.IdentityModel;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Extensions;
using Duende.IdentityServer.Services;
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/Consent/Index.cshtml.cs b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/Consent/Index.cshtml.cs
index a743e71..84763e9 100644
--- a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/Consent/Index.cshtml.cs
+++ b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/Consent/Index.cshtml.cs
@@ -2,12 +2,12 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using Duende.IdentityModel;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Extensions;
using Duende.IdentityServer.Models;
using Duende.IdentityServer.Services;
using Duende.IdentityServer.Validation;
-using IdentityModel;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/TestUsers.cs b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/TestUsers.cs
index 2db9cc4..f4e1353 100644
--- a/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/TestUsers.cs
+++ b/DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Pages/TestUsers.cs
@@ -2,10 +2,10 @@
// See LICENSE in the project root for license information.
-using IdentityModel;
using System.Collections.Generic;
using System.Security.Claims;
using System.Text.Json;
+using Duende.IdentityModel;
using Duende.IdentityServer;
using Duende.IdentityServer.Test;
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.OIDC/WebClient.OIDC.csproj b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.OIDC/WebClient.OIDC.csproj
index bca54a6..400c348 100644
--- a/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.OIDC/WebClient.OIDC.csproj
+++ b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.OIDC/WebClient.OIDC.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.1/WebClient.SAML.1.csproj b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.1/WebClient.SAML.1.csproj
index 70fba60..2b39f34 100644
--- a/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.1/WebClient.SAML.1.csproj
+++ b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.1/WebClient.SAML.1.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.1/testclient.pfx b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.1/testclient.pfx
new file mode 100644
index 0000000..1a3e8b8
Binary files /dev/null and b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.1/testclient.pfx differ
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.2/WebClient.SAML.2.csproj b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.2/WebClient.SAML.2.csproj
index 70fba60..2b39f34 100644
--- a/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.2/WebClient.SAML.2.csproj
+++ b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.2/WebClient.SAML.2.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.2/testclient.pfx b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.2/testclient.pfx
new file mode 100644
index 0000000..1a3e8b8
Binary files /dev/null and b/DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.2/testclient.pfx differ
diff --git a/OpenIddict/OpenIddictIdP/Controllers/AuthorizationController.cs b/OpenIddict/OpenIddictIdP/Controllers/AuthorizationController.cs
index b6784f4..83e853a 100644
--- a/OpenIddict/OpenIddictIdP/Controllers/AuthorizationController.cs
+++ b/OpenIddict/OpenIddictIdP/Controllers/AuthorizationController.cs
@@ -62,13 +62,13 @@ public async Task Authorize()
// - If prompt=login was specified by the client application.
// - If a max_age parameter was provided and the authentication cookie is not considered "fresh" enough.
var result = await HttpContext.AuthenticateAsync(IdentityConstants.ApplicationScheme);
- if (result == null || !result.Succeeded || request.HasPrompt(Prompts.Login) ||
+ if (result == null || !result.Succeeded || request.HasPromptValue(PromptValues.Login) ||
request.MaxAge != null && result.Properties?.IssuedUtc != null &&
DateTimeOffset.UtcNow - result.Properties.IssuedUtc > TimeSpan.FromSeconds(request.MaxAge.Value))
{
// If the client application requested promptless authentication,
// return an error indicating that the user is not logged in.
- if (request.HasPrompt(Prompts.None))
+ if (request.HasPromptValue(PromptValues.None))
{
return Forbid(
authenticationSchemes: OpenIddictServerAspNetCoreDefaults.AuthenticationScheme,
@@ -81,7 +81,7 @@ public async Task Authorize()
// To avoid endless login -> authorization redirects, the prompt=login flag
// is removed from the authorization request payload before redirecting the user.
- var prompt = string.Join(" ", request.GetPrompts().Remove(Prompts.Login));
+ var prompt = string.Join(" ", request.GetPromptValues().Remove(PromptValues.Login));
var parameters = Request.HasFormContentType ?
Request.Form.Where(parameter => parameter.Key != Parameters.Prompt).ToList() :
@@ -142,7 +142,7 @@ public async Task Authorize()
// return an authorization response without displaying the consent form.
case ConsentTypes.Implicit:
case ConsentTypes.External when authorizations.Any():
- case ConsentTypes.Explicit when authorizations.Any() && !request.HasPrompt(Prompts.Consent):
+ case ConsentTypes.Explicit when authorizations.Any() && !request.HasPromptValue(PromptValues.Consent):
// Create the claims-based identity that will be used by OpenIddict to generate tokens.
var identity = new ClaimsIdentity(
authenticationType: TokenValidationParameters.DefaultAuthenticationType,
@@ -178,8 +178,8 @@ public async Task Authorize()
// At this point, no authorization was found in the database and an error must be returned
// if the client application specified prompt=none in the authorization request.
- case ConsentTypes.Explicit when request.HasPrompt(Prompts.None):
- case ConsentTypes.Systematic when request.HasPrompt(Prompts.None):
+ case ConsentTypes.Explicit when request.HasPromptValue(PromptValues.None):
+ case ConsentTypes.Systematic when request.HasPromptValue(PromptValues.None):
return Forbid(
authenticationSchemes: OpenIddictServerAspNetCoreDefaults.AuthenticationScheme,
properties: new AuthenticationProperties(new Dictionary
diff --git a/OpenIddict/OpenIddictIdP/JwtClaimTypes.cs b/OpenIddict/OpenIddictIdP/JwtClaimTypes.cs
new file mode 100644
index 0000000..bad4104
--- /dev/null
+++ b/OpenIddict/OpenIddictIdP/JwtClaimTypes.cs
@@ -0,0 +1,9 @@
+namespace openiddictidp;
+
+public class JwtClaimTypes
+{
+ public const string Subject = "sub";
+ public const string Name = "name";
+ public const string Role = "role";
+ public const string Email = "email";
+}
\ No newline at end of file
diff --git a/OpenIddict/OpenIddictIdP/OpenIddictIdP.csproj b/OpenIddict/OpenIddictIdP/OpenIddictIdP.csproj
index b2eab57..9275416 100644
--- a/OpenIddict/OpenIddictIdP/OpenIddictIdP.csproj
+++ b/OpenIddict/OpenIddictIdP/OpenIddictIdP.csproj
@@ -7,22 +7,22 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/OpenIddict/OpenIddictIdP/Startup.cs b/OpenIddict/OpenIddictIdP/Startup.cs
index 8bcf342..e356e23 100644
--- a/OpenIddict/OpenIddictIdP/Startup.cs
+++ b/OpenIddict/OpenIddictIdP/Startup.cs
@@ -1,5 +1,4 @@
using Rsk.Saml.OpenIddict.Quartz.Configuration.DependencyInjection;
-using IdentityModel;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
@@ -15,6 +14,7 @@
using Rsk.Saml.OpenIddict.EntityFrameworkCore.Configuration.DependencyInjection;
using Rsk.Saml.Samples;
using static OpenIddict.Abstractions.OpenIddictConstants;
+using Microsoft.Extensions.Options;
namespace openiddictidp;
@@ -92,9 +92,9 @@ public void ConfigureServices(IServiceCollection services)
// Enable the authorization, logout, token and userinfo endpoints.
options.SetAuthorizationEndpointUris("connect/authorize")
- .SetLogoutEndpointUris("connect/logout")
+ .SetEndSessionEndpointUris("connect/logout")
.SetTokenEndpointUris("connect/token")
- .SetUserinfoEndpointUris("connect/userinfo");
+ .SetUserInfoEndpointUris("connect/userinfo");
// Mark the "email", "profile" and "roles" scopes as supported scopes.
options.RegisterScopes(Scopes.Email, Scopes.Profile, Scopes.Roles);
@@ -110,9 +110,9 @@ public void ConfigureServices(IServiceCollection services)
// Register the ASP.NET Core host and configure the ASP.NET Core-specific options.
options.UseAspNetCore()
.EnableAuthorizationEndpointPassthrough()
- .EnableLogoutEndpointPassthrough()
+ .EnableEndSessionEndpointPassthrough()
.EnableTokenEndpointPassthrough()
- .EnableUserinfoEndpointPassthrough()
+ .EnableUserInfoEndpointPassthrough()
.EnableStatusCodePagesIntegration();
options.AddSamlPlugin(builder =>
@@ -122,18 +122,9 @@ public void ConfigureServices(IServiceCollection services)
//Already added the DbContext above
builder.UseSamlEntityFrameworkCore()
- .AddSamlMessageDbContext(optionsBuilder =>
- {
- //Configure the database provider to use.
- optionsBuilder.UseSqlServer(defaultConnectionString, x =>x.MigrationsAssembly(typeof(Startup).Assembly.FullName));
- })
- .AddSamlConfigurationDbContext(optionsBuilder =>
- {
- //Configure the database provider to use.
- optionsBuilder.UseSqlServer(defaultConnectionString,
- x => x.MigrationsAssembly(typeof(Startup).Assembly.FullName));
- });
-
+ .AddSamlDbContexts(optionsBuilder => optionsBuilder.UseSqlServer(defaultConnectionString,
+ x => x.MigrationsAssembly(typeof(Startup).Assembly.FullName)));
+
builder.ConfigureSamlOpenIddictServerOptions(serverOptions =>
{
serverOptions.HostOptions = new SamlHostUserInteractionOptions()
@@ -202,4 +193,4 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
endpoints.MapRazorPages();
});
}
-}
+}
\ No newline at end of file
diff --git a/OpenIddict/OpenIddictIdP/Worker.cs b/OpenIddict/OpenIddictIdP/Worker.cs
index e59c4f1..f3cfe77 100644
--- a/OpenIddict/OpenIddictIdP/Worker.cs
+++ b/OpenIddict/OpenIddictIdP/Worker.cs
@@ -154,7 +154,7 @@ private Task CreateMvcClientIfNotExists(IServiceScope scope)
ocd.Permissions.UnionWith(new[]
{
Permissions.Endpoints.Authorization,
- Permissions.Endpoints.Logout,
+ Permissions.Endpoints.EndSession,
Permissions.Endpoints.Token,
Permissions.GrantTypes.AuthorizationCode,
Permissions.ResponseTypes.Code,
diff --git a/README.md b/README.md
index 1798291..3afc8d8 100644
--- a/README.md
+++ b/README.md
@@ -1,23 +1,19 @@
# Sample projects implementing Rsk SAML component
-SAML2P service provider and identity provider implementations. We support various IdentityServer implementations, including IdentityServer4, Duende IdentityServer and OpenIddict.
+SAML2P service provider and identity provider implementations. We support various IdentityServer implementations, including Duende IdentityServer and OpenIddict.
-The SAML2P component is available from [www.identityserver.com/products/saml2p](https://www.identityserver.com/products/saml2p).
+ The SAML2P component is available from [www.identityserver.com/products/saml2p](https://www.identityserver.com/products/saml2p).
-The [master](https://github.com/RockSolidKnowledge/Samples.IdentityServer4.Saml2pIntegration/tree/master) branch currently uses IdentityServer4 v4 and Duende IdentityServer. Check out [identityserver4-v3](https://github.com/RockSolidKnowledge/Samples.IdentityServer4.Saml2pIntegration/tree/identityserver4-v3) for IdentityServer4 v3 samples.
+
+The [master](https://github.com/RockSolidKnowledge/Samples.IdentityServer4.Saml2pIntegration/tree/master) branch currently uses version 10.0 of the Saml component along with Duende IdentityServer version 7.1 and OpenIddict version 6.0.
## Projects
- **spWithIdpInitiated:** an ASP.NET Core website that can accept unsolicited SAML assertions sent via IdP-Initiated SSO
- **spWithMultipleIdps:** an ASP.NET Core website that can authenticate a user using two different SAML Identity Providers
-- **IdentityServer4**
- - **idp:** an IdentityServer4 implementation configured to act as a SAML Identity Provider with Service Provider configuration loaded from memory
- - **idpWithEf:** an IdentityServer4 implementation configured to act as a SAML Identity Provider with Service Provider configuration loaded from a database
- - **idpWithIdpInitiated:** an IdentityServer4 implementation configured to send unsolicited SAML assertions using IdP-Initiated SSO
- - **sp:** an IdentityServer4 implementation configured to act as both a SAML Identity Provider and a SAML Service Provider
- **DuendeIdentityServer**
- - **DuendeIdP:** a Duende.IdentityServer implementation configured to act as a SAML Identity Provider with Service Provider configuration loaded from memory. This uses the Duende Automatic Key Management feature for signing key
+ - **DuendeIdP:** a Duende.IdentityServer implementation configured to act as a SAML Identity Provider with Service Provider configuration loaded from memory. This uses the Duende Automatic Key Management feature for signing key material.
- **DuendeDynamicProviders:** A Duende.IdentityServer implementation acting as a SAML Service Provider with in-memory dynamic identity providers
- **OpenIddictIdP:** an OpenIddict implementation configured to act as an SAML Identity Provider with Service Provider configuration loaded from an SQL Server database using EntityFrameworkCore.
@@ -29,5 +25,16 @@ The [master](https://github.com/RockSolidKnowledge/Samples.IdentityServer4.Saml2
- [Documentation](https://www.identityserver.com/documentation/saml2p/)
## License Keys
-
-For a demo license, please sign up on our [products page](https://www.identityserver.com/products/saml2p), or reach out to .
+If you are using IdentityServer and would like a demo license, please sign up on our [products page]( https://www.identityserver.com/products/saml2p). Alternative for a demo license using OpenIddict use [this](https://www.openiddictcomponents.com/products/saml2p) link. You can also reach out to .
+
+
+#Launch urls
+The launch urls for the sample projects are as follows:
+|Project|Launch Url|
+|---|---|
+|duende.idp|https://localhost:5003|
+|OpenIddict.Idp|https://localhost:55031|
+|Duende Dynamic providers|https://localhost:5004|
+|SPWithIdpInitiated|https://localhost:5001|
+|SpWithMultipleIds|http/s://localhost:5002|
+|SpWithSingleIdp|https://localhost:5002|
\ No newline at end of file
diff --git a/saml.slnf b/saml.slnf
new file mode 100644
index 0000000..4d196e4
--- /dev/null
+++ b/saml.slnf
@@ -0,0 +1,17 @@
+{
+ "solution": {
+ "path": "Saml.sln",
+ "projects": [
+ "DuendeIdentityServer\\DuendeDynamicProviders\\DuendeDynamicProviders.csproj",
+ "DuendeIdentityServer\\DuendeIdP\\DuendeIdP.csproj",
+ "DuendeIdentityServer\\SLO\\SamlOidcSLO\\IdentityServer\\IdentityServer.csproj",
+ "DuendeIdentityServer\\SLO\\SamlOidcSLO\\WebClient.OIDC\\WebClient.OIDC.csproj",
+ "DuendeIdentityServer\\SLO\\SamlOidcSLO\\WebClient.SAML.1\\WebClient.SAML.1.csproj",
+ "DuendeIdentityServer\\SLO\\SamlOidcSLO\\WebClient.SAML.2\\WebClient.SAML.2.csproj",
+ "OpenIddict\\OpenIddictIdP\\OpenIddictIdP.csproj",
+ "spWithIdpInitiated\\spWithIdpInitiated.csproj",
+ "spWithMultipleIdps\\spWithMultipleIdps.csproj",
+ "spWithSingleIdp\\spWithSingleIdp.csproj"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/spWithIdpInitiated/spWithIdpInitiated.csproj b/spWithIdpInitiated/spWithIdpInitiated.csproj
index e56abed..ba34f12 100644
--- a/spWithIdpInitiated/spWithIdpInitiated.csproj
+++ b/spWithIdpInitiated/spWithIdpInitiated.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/spWithMultipleIdps/spWithMultipleIdps.csproj b/spWithMultipleIdps/spWithMultipleIdps.csproj
index 3cbcf4c..6aa51b8 100644
--- a/spWithMultipleIdps/spWithMultipleIdps.csproj
+++ b/spWithMultipleIdps/spWithMultipleIdps.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/spWithSingleIdp/spWithSingleIdp.csproj b/spWithSingleIdp/spWithSingleIdp.csproj
index e4797b7..c60b5b2 100644
--- a/spWithSingleIdp/spWithSingleIdp.csproj
+++ b/spWithSingleIdp/spWithSingleIdp.csproj
@@ -8,6 +8,6 @@
-
+
\ No newline at end of file