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();
 | |
|             });
 | |
|         }
 | |
|     }
 | |
| } |