public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); var builder = services.AddIdentityServer(options => { options.Caching.ClientStoreExpiration = TimeSpan.Zero; options.Caching.ResourceStoreExpiration = TimeSpan.Zero; }) .AddProfileService <ProfileService>() .AddResourceStore <ResourceStore>() .AddClientStore <ClientStore>(); builder.Services.AddSingleton(Config.Ids); services.AddScoped <IClientStore, ClientStore>(); services.AddScoped <IResourceStore, ResourceStore>(); services.AddScoped <IProfileService, ProfileService>(); var provider = RSAKeys.ImportPrivateKey(File.ReadAllText("private_unencrypted.pem")); builder.AddSigningCredential(new RsaSecurityKey(provider), IdentityServer4.IdentityServerConstants.RsaSigningAlgorithm.RS256); services.AddDbContext <IdPDbContext>( builder => builder.UseSqlServer(Configuration["ConnectionStrings:IdP"]) ); services.AddSpaStaticFiles(opt => opt.RootPath = "wwwroot/client-app"); }
public void ConfigureServices(IServiceCollection services) { // uncomment, if you want to add an MVC-based UI services.AddControllersWithViews(); var builder = services.AddIdentityServer() .AddInMemoryIdentityResources(Config.Ids) .AddInMemoryApiResources(Config.Apis) .AddInMemoryClients(Config.Clients) .AddTestUsers(TestUsers.Users); // not recommended for production - you need to store your key material somewhere secure //builder.AddDeveloperSigningCredential(); //File.ReadAllText("private_unencrypted.pem"); var provider = RSAKeys.ImportPrivateKey(File.ReadAllText("private_unencrypted.pem")); builder.AddSigningCredential(new RsaSecurityKey(provider), IdentityServer4.IdentityServerConstants.RsaSigningAlgorithm.RS256); }