diff --git a/src/Services/Identity/Identity.API/Certificate/Certificate.cs b/src/Services/Identity/Identity.API/Certificate/Certificate.cs new file mode 100644 index 000000000..a811641d7 --- /dev/null +++ b/src/Services/Identity/Identity.API/Certificate/Certificate.cs @@ -0,0 +1,36 @@ +// Copyright (c) Brock Allen & Dominick Baier. All rights reserved. +// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information. + +using System.IO; +using System.Reflection; +using System.Security.Cryptography.X509Certificates; + +namespace Identity.API.Certificate +{ + static class Certificate + { + public static X509Certificate2 Get() + { + var assembly = typeof(Certificate).GetTypeInfo().Assembly; + var names = assembly.GetManifestResourceNames(); + using (var stream = assembly.GetManifestResourceStream("Identity.API.Certificate.idsrv3test.pfx")) + { + return new X509Certificate2(ReadStream(stream), "idsrv3test"); + } + } + + private static byte[] ReadStream(Stream input) + { + byte[] buffer = new byte[16 * 1024]; + using (MemoryStream ms = new MemoryStream()) + { + int read; + while ((read = input.Read(buffer, 0, buffer.Length)) > 0) + { + ms.Write(buffer, 0, read); + } + return ms.ToArray(); + } + } + } +} \ No newline at end of file diff --git a/src/Services/Identity/Identity.API/Certificate/idsrv3test.pfx b/src/Services/Identity/Identity.API/Certificate/idsrv3test.pfx new file mode 100644 index 000000000..0247dea03 Binary files /dev/null and b/src/Services/Identity/Identity.API/Certificate/idsrv3test.pfx differ diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index d619e4a21..2a1198cec 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -12,7 +12,7 @@ $(PackageTargetFallback);dotnet5.6;portable-net45+win8 ..\..\..\..\docker-compose.dcproj - + @@ -57,6 +57,10 @@ + + + + diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index 666ee67b9..a58b5a6d9 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -18,6 +18,7 @@ using System.Threading; using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.HealthChecks; +using Identity.API.Certificate; namespace eShopOnContainers.Identity { @@ -75,7 +76,7 @@ namespace eShopOnContainers.Identity // Adds IdentityServer services.AddIdentityServer(x => x.IssuerUri = "null") - .AddTemporarySigningCredential() + .AddSigningCredential(Certificate.Get()) .AddInMemoryScopes(Config.GetScopes()) .AddInMemoryClients(Config.GetClients(clientUrls)) .AddAspNetIdentity()