81 lines
2.9 KiB
C#
81 lines
2.9 KiB
C#
// 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 IdentityServer4;
|
|
using IdentityServerHost.Quickstart.UI;
|
|
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
|
|
namespace IRaCIS.Core.IdentityServer4.MVC
|
|
{
|
|
public class Startup
|
|
{
|
|
public IWebHostEnvironment Environment { get; }
|
|
public IConfiguration Configuration { get; }
|
|
|
|
public Startup(IWebHostEnvironment environment, IConfiguration configuration)
|
|
{
|
|
Environment = environment;
|
|
Configuration = configuration;
|
|
}
|
|
|
|
public void ConfigureServices(IServiceCollection services)
|
|
{
|
|
services.AddControllersWithViews();
|
|
|
|
var builder = services.AddIdentityServer(options =>
|
|
{
|
|
options.Events.RaiseErrorEvents = true;
|
|
options.Events.RaiseInformationEvents = true;
|
|
options.Events.RaiseFailureEvents = true;
|
|
options.Events.RaiseSuccessEvents = true;
|
|
|
|
// see https://identityserver4.readthedocs.io/en/latest/topics/resources.html
|
|
options.EmitStaticAudienceClaim = true;
|
|
})
|
|
.AddTestUsers(TestUsers.Users);
|
|
|
|
// in-memory, code config
|
|
builder.AddInMemoryIdentityResources(Config.IdentityResources);
|
|
builder.AddInMemoryApiScopes(Config.ApiScopes);
|
|
builder.AddInMemoryClients(Config.Clients);
|
|
|
|
// not recommended for production - you need to store your key material somewhere secure
|
|
builder.AddDeveloperSigningCredential();
|
|
|
|
services.AddAuthentication()
|
|
.AddGoogle(options =>
|
|
{
|
|
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
|
|
|
|
// register your IdentityServer with Google at https://console.developers.google.com
|
|
// enable the Google+ API
|
|
// set the redirect URI to https://localhost:5001/signin-google
|
|
options.ClientId = "copy client ID from Google here";
|
|
options.ClientSecret = "copy client secret from Google here";
|
|
});
|
|
}
|
|
|
|
public void Configure(IApplicationBuilder app)
|
|
{
|
|
if (Environment.IsDevelopment())
|
|
{
|
|
app.UseDeveloperExceptionPage();
|
|
}
|
|
|
|
app.UseStaticFiles();
|
|
|
|
app.UseRouting();
|
|
app.UseIdentityServer();
|
|
app.UseAuthorization();
|
|
app.UseEndpoints(endpoints =>
|
|
{
|
|
endpoints.MapDefaultControllerRoute();
|
|
});
|
|
}
|
|
}
|
|
} |