Skip to content

Commit a4abd7a

Browse files
committed
Updated OpenIddict and IdentityServer4 samples to fix startup issues
1 parent 5919af1 commit a4abd7a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+3006
-693
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,4 +286,5 @@ __pycache__/
286286
*.odx.cs
287287
*.xsd.cs
288288

289-
**/identityserver4_log.txt
289+
**/identityserver4_log.txt
290+
**/openiddict-identity.db

DuendeIdentityServer/DuendeDynamicProviders/DuendeDynamicProviders.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
<Compile Include="..\..\LicenseKey.cs" Link="LicenseKey.cs" />
88
</ItemGroup>
99
<ItemGroup>
10-
<PackageReference Include="Duende.IdentityServer" Version="7.1.0" />
10+
<PackageReference Include="Duende.IdentityServer" Version="7.2.4" />
1111
<PackageReference Include="Rsk.Saml" Version="10.0.0" />
12-
<PackageReference Include="Rsk.Saml.DuendeIdentityServer" Version="9.0.0" />
13-
<PackageReference Include="Serilog.AspNetCore" Version="8.0.1" />
12+
<PackageReference Include="Rsk.Saml.DuendeIdentityServer" Version="10.0.0" />
13+
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
1414
</ItemGroup>
1515
<ItemGroup>
1616
<None Update="idsrv3test.cer">

DuendeIdentityServer/DuendeIdP/DuendeIdP.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@
1010
</ItemGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Duende.IdentityServer" Version="7.1.0" />
13+
<PackageReference Include="Duende.IdentityServer" Version="7.2.4" />
1414
<PackageReference Include="Rsk.Saml" Version="10.0.0" />
1515
<PackageReference Include="Rsk.Saml.DuendeIdentityServer" Version="10.0.0" />
16-
17-
<PackageReference Include="Serilog.AspNetCore" Version="8.0.1" />
16+
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
1817
</ItemGroup>
1918
</Project>

DuendeIdentityServer/SLO/SamlOidcSLO/Common/TestConstants.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
public static class TestConstants
44
{
5-
public static string LicenseKey = "eyJTb2xkRm9yIjowLjAsIktleVByZXNldCI6NiwiU2F2ZUtleSI6ZmFsc2UsIkxlZ2FjeUtleSI6ZmFsc2UsIlJlbmV3YWxTZW50VGltZSI6IjAwMDEtMDEtMDFUMDA6MDA6MDAiLCJhdXRoIjoiREVNTyIsImV4cCI6IjIwMjMtMDUtMTlUMDE6MDA6MDAuNzA3NTI2NiswMDowMCIsImlhdCI6IjIwMjMtMDQtMTlUMDE6MDA6MDAiLCJvcmciOiJERU1PIiwiYXVkIjoyfQ==.TOLSabk8Uf3jNF908d6r3jj9NzRPNExgZ1qqZMyBWkJ0Fpi+RESseOs7Dj8xtSdxt9SoCn4VnomVZnWA4alV3gDnAKIIatMgT8YzCr5Y/IrgEmJmRTb7jNDd5azBrgjCDNmjI8clx5UzGwLfuL1+K72KjsAq1R6DvAZdFiJ0Ggtw4sCocGfhjKrPbDo6izyc3A6EOtgOL0TDLuqxsPm0vPkHB/NRxUsVAGaiLwhu65Wz9iLMGx9BJIIpTr5frGAfrpmv4brjCe92jZcBuCMWgQPVxJKbGzZqNhK8m1uqiLvSdvdoymsvccLaKeVa8APeaq0KROJu9KqPKNg0R/anSYfwBz88L9CgqszLNYRynK4pcSm52POd3g4ulhtZ5vcvRDDI3W3rgw6LO4Et8iQ6SXU/JEhSIjbmqAbKCnQErUDYT8/k2qpIy5W9Sy14F4OkueW1i19R6UcLQVcRztbGUFz7rGRUwbStWS+Eb1sFjDjFzoEGxQhgy/GW/MNUGFF39KVUfZaYTWuz9MvgsXc7exrmT/zKsTjC6GB0wSFcRK5I34T7aIymC95rPHwAqFzfOr2FNt6DvJXogS7VWS+tJkVAHxVYB/stXT3+eBLU9Qa3Su2nZ36YdrYAMIBJmFwiQMq52QAi2/1/2a2e0nrKFTQJh3tdnQGtG2ZjXRtvdWo=";
5+
public static string LicenseKey = "eyJhdXRoIjoiREVNTyIsImV4cCI6IjIwMjUtMDgtMDZUMDA6MDA6MDEuNjEyNDg5OSswMDowMCIsImlhdCI6IjIwMjUtMDctMDdUMDA6MDA6MDEuOTY4MzEwN1oiLCJvcmciOiJERU1PIiwiYXVkIjoyfQ==.mpi6l7DsJzzHordvTgShzMOf5qny1dMPT3BN2TTr2U42aG6ySUGuZ6U1rqtzdAmS872Mt95x+T5e5qajVpcbxweeYKFDpNcE5X8bEzTGThoLrEtsCdbK7zxN5GHTn4d2zggxKCVPMkddYDMbbQ4eEkfhKL0rlDijZ2maaRYGvPZG4u2cMH3zmS+vzWqCDR31yTSEEGoJp43S1PxMO6iTg8FvZAtnCVO2/hT2+At9mqkEvsdtT90oM7gXdGQxLsiplt1jwCfuE9okkvYJ/mZm3amoQeE2OX4Dayu1zBTgzH74qi8cJrFTnnXbYXC3g26mW6vm8x8JoafJFZe0YDHqMAFqknNMFgfGyLlASIXyAPXnI1xdYIf6VZJ4u6w4Ib2nj+i4CVwzqYwgyOvf9in4EMSHaGrAWbk/PT1P2eprVZREmaRnJYAHOHYbqYyD9WIhsiaDE6grCFNGQ0Vxp/1FL/wsvITXLwdm4A+VnlNotEJpmcM2jjc13JBlO7ocvXnK5Bdq+NkSxNtpAL7ZWrhc2WoqVbGvZR8ibHVh1BLjzEpjVKKolgio5lho3IZDpYXhYgsqbc6qtfutRoGfQ5TcpagVrWXWQ8dYzE/E2oU4XSrJcNC0g+3D7lDjXolgWjnGM1TGDWovidg6fp8f1DgR5+6cSzzrD3FshJjkt/xVy9g=";
66
public static string Licensee = "DEMO";
77
}

DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/IdentityServer.csproj

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,24 @@
55
<UserSecretsId>38ced442-cf32-4289-bb08-57d4a78831b3</UserSecretsId>
66
</PropertyGroup>
77
<ItemGroup>
8-
<PackageReference Include="AspNetCore.ReCaptcha" Version="1.8.1" />
8+
<PackageReference Include="AspNetCore.ReCaptcha" Version="1.8.2" />
99
<PackageReference Include="Duende.IdentityServer.EntityFramework" Version="7.1.0" />
10-
<PackageReference Include="Microsoft.AspNetCore.Authentication.WsFederation" Version="8.0.1" />
11-
<PackageReference Include="Microsoft.AspNetCore.DataProtection" Version="8.0.1" />
12-
<PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="8.0.1" />
13-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.1" />
14-
<PackageReference Include="Microsoft.Extensions.Caching.SqlServer" Version="8.0.1" />
15-
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="8.0.1" />
10+
<PackageReference Include="Microsoft.AspNetCore.Authentication.WsFederation" Version="8.0.17" />
11+
<PackageReference Include="Microsoft.AspNetCore.DataProtection" Version="8.0.17" />
12+
<PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="8.0.17" />
13+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.17" />
14+
<PackageReference Include="Microsoft.Extensions.Caching.SqlServer" Version="8.0.17" />
15+
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="8.0.17" />
1616
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
17-
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="3.21.130" />
17+
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="3.21.190" />
1818
<PackageReference Include="Rsk.Saml.DuendeIdentityServer" Version="10.0.0" />
1919
<PackageReference Include="Rsk.Saml.DuendeIdentityServer.EntityFramework" Version="10.0.0" />
20-
<PackageReference Include="Serilog.AspNetCore" Version="8.0.1" />
21-
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="8.0.1" />
22-
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0" />
23-
<PackageReference Include="Serilog.Sinks.MSSqlServer" Version="6.5.1" />
24-
<PackageReference Include="System.ServiceModel.Http" Version="8.0.0" />
25-
<PackageReference Include="System.ServiceModel.Primitives" Version="8.0.0" />
20+
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
21+
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="8.0.17" />
22+
<PackageReference Include="Serilog.Settings.Configuration" Version="9.0.0" />
23+
<PackageReference Include="Serilog.Sinks.MSSqlServer" Version="8.2.1" />
24+
<PackageReference Include="System.ServiceModel.Http" Version="8.1.2" />
25+
<PackageReference Include="System.ServiceModel.Primitives" Version="8.1.2" />
2626
</ItemGroup>
2727
<ItemGroup>
2828
<None Update="Resources\testclient.cer">

DuendeIdentityServer/SLO/SamlOidcSLO/IdentityServer/Program.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
try
1111
{
12-
var builder = WebApplication.CreateBuilder(args);
12+
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
1313

1414
builder.Host.UseSerilog((ctx, lc) => lc
1515
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}")
@@ -20,13 +20,16 @@
2020
logging.SetMinimumLevel(LogLevel.Debug);
2121
logging.ClearProviders();
2222
logging.AddSimpleConsole(options => options.IncludeScopes = true);
23-
logging.AddEventLog();
23+
if (OperatingSystem.IsWindows())
24+
{
25+
logging.AddEventLog();
26+
}
2427
});
25-
var app = builder
28+
WebApplication app = builder
2629
.ConfigureServices()
2730
.ConfigurePipeline();
2831

29-
app.Run();
32+
await app.RunAsync();
3033
}
3134
catch (Exception ex)
3235
{
@@ -35,5 +38,5 @@
3538
finally
3639
{
3740
Log.Information("Shut down complete");
38-
Log.CloseAndFlush();
41+
await Log.CloseAndFlushAsync();
3942
}

DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.1/WebClient.SAML.1.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</ItemGroup>
1111
<ItemGroup>
1212
<PackageReference Include="Rsk.Saml" Version="10.0.0" />
13-
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.1" />
13+
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.17" />
1414
</ItemGroup>
1515
<ItemGroup>
1616
<None Update="testclient.pfx">

DuendeIdentityServer/SLO/SamlOidcSLO/WebClient.SAML.2/WebClient.SAML.2.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</ItemGroup>
1111
<ItemGroup>
1212
<PackageReference Include="Rsk.Saml" Version="10.0.0" />
13-
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.1" />
13+
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.17" />
1414
</ItemGroup>
1515
<ItemGroup>
1616
<None Update="testclient.pfx">

IdentityServer4/idp/Program.cs

Lines changed: 67 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,74 @@
1-
// Copyright (c) Brock Allen & Dominick Baier. All rights reserved.
2-
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3-
4-
1+
using idp;
52
using System;
6-
using Microsoft.AspNetCore;
7-
using Microsoft.AspNetCore.Hosting;
3+
using System.Security.Cryptography.X509Certificates;
4+
using IdentityServer4;
5+
using IdentityServer4.Quickstart.UI;
6+
using Microsoft.AspNetCore.Authentication.Cookies;
7+
using Microsoft.AspNetCore.Builder;
8+
using Microsoft.Extensions.DependencyInjection;
9+
using Rsk.Saml.Configuration;
10+
using Rsk.Saml.Samples;
811
using Serilog;
912
using Serilog.Events;
1013
using Serilog.Sinks.SystemConsole.Themes;
1114

12-
namespace idp
15+
Console.Title = "IdentityServer4";
16+
17+
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
18+
19+
// Configure Serilog
20+
builder.Host.UseSerilog((context, configuration) =>
1321
{
14-
public class Program
22+
configuration
23+
.MinimumLevel.Debug()
24+
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
25+
.MinimumLevel.Override("System", LogEventLevel.Warning)
26+
.MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information)
27+
.Enrich.FromLogContext()
28+
.WriteTo.File("identityserver4_log.txt")
29+
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate);
30+
});
31+
32+
builder.Services.AddControllersWithViews();
33+
34+
IIdentityServerBuilder idsrvBuilder = builder.Services.AddIdentityServer(options =>
35+
{
36+
options.Events.RaiseErrorEvents = true;
37+
options.Events.RaiseInformationEvents = true;
38+
options.Events.RaiseFailureEvents = true;
39+
options.Events.RaiseSuccessEvents = true;
40+
})
41+
.AddTestUsers(TestUsers.Users)
42+
.AddInMemoryIdentityResources(Config.GetIdentityResources())
43+
.AddInMemoryApiResources(Config.GetApis())
44+
.AddInMemoryClients(Config.GetClients())
45+
.AddSigningCredential(new X509Certificate2("idsrv3test.pfx", "idsrv3test"));
46+
47+
// Configure SAML Identity Provider and authorized Service Providers
48+
idsrvBuilder.AddSamlPlugin(options =>
1549
{
16-
public static void Main(string[] args)
17-
{
18-
Console.Title = "IdentityServer4";
19-
20-
BuildWebHost(args).Run();
21-
}
22-
23-
public static IWebHost BuildWebHost(string[] args)
24-
{
25-
return WebHost.CreateDefaultBuilder(args)
26-
.UseStartup<Startup>()
27-
.UseSerilog((context, configuration) =>
28-
{
29-
configuration
30-
.MinimumLevel.Debug()
31-
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
32-
.MinimumLevel.Override("System", LogEventLevel.Warning)
33-
.MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information)
34-
.Enrich.FromLogContext()
35-
.WriteTo.File(@"identityserver4_log.txt")
36-
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate);
37-
})
38-
.Build();
39-
}
40-
}
41-
}
50+
options.Licensee = LicenseKey.Licensee;
51+
options.LicenseKey = LicenseKey.Key;
52+
options.WantAuthenticationRequestsSigned = false;
53+
})
54+
.AddInMemoryServiceProviders(Config.GetServiceProviders());
55+
56+
// use different cookie name that sp...
57+
builder.Services.Configure<CookieAuthenticationOptions>(IdentityServerConstants.DefaultCookieAuthenticationScheme,
58+
cookie => { cookie.Cookie.Name = "idsrv.idp"; });
59+
60+
WebApplication app = builder.Build();
61+
62+
app.UseHttpsRedirection();
63+
app.UseDeveloperExceptionPage();
64+
app.UseStaticFiles();
65+
app.UseRouting();
66+
67+
app.UseIdentityServer()
68+
.UseIdentityServerSamlPlugin(); // enables SAML endpoints (e.g. ACS and SLO)
69+
70+
app.UseAuthorization();
71+
72+
app.MapDefaultControllerRoute();
73+
74+
await app.RunAsync();

IdentityServer4/idp/Quickstart/Account/ExternalController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ private async Task<IActionResult> ProcessWindowsLoginAsync(string returnUrl)
145145
{
146146
// see if windows auth has already been requested and succeeded
147147
var result = await HttpContext.AuthenticateAsync(AccountOptions.WindowsAuthenticationSchemeName);
148-
if (result?.Principal is WindowsPrincipal wp)
148+
if (OperatingSystem.IsWindows() && result?.Principal is WindowsPrincipal wp)
149149
{
150150
// we will issue the external cookie and then redirect the
151151
// user back to the external callback, in essence, tresting windows

0 commit comments

Comments
 (0)