138 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			4.8 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 IdentityServer4.Models;
 | |
| using System.Collections.Generic;
 | |
| 
 | |
| namespace IRaCIS.Core.IdentityServer4
 | |
| {
 | |
|     public static class Config
 | |
|     {
 | |
|         public static IEnumerable<IdentityResource> IdentityResources =>
 | |
|             new IdentityResource[]
 | |
|             {
 | |
|                 new IdentityResources.OpenId(),
 | |
|                 new IdentityResources.Profile(),
 | |
|                   new IdentityResources.Email(),
 | |
|             };
 | |
| 
 | |
|         public static IEnumerable<ApiScope> ApiScopes =>
 | |
|             new ApiScope[]
 | |
|             {
 | |
|                 new ApiScope("scope1"),
 | |
|                 new ApiScope("api"),
 | |
|             };
 | |
| 
 | |
|         public static IEnumerable<Client> Clients =>
 | |
|            new Client[]
 | |
|             {
 | |
|                 new Client
 | |
|                 {
 | |
|                     ClientId = "client",
 | |
|                     // no interactive user, use the clientid/secret for authentication
 | |
|                     AllowedGrantTypes = GrantTypes.ClientCredentials,
 | |
|                     // secret for authentication
 | |
|                     ClientSecrets =
 | |
|                     {
 | |
|                         new Secret("secret".Sha256())
 | |
|                     },
 | |
|                     // scopes that client has access to
 | |
|                     AllowedScopes = { "api" }
 | |
|                 },
 | |
|                 new Client
 | |
|                 {
 | |
|                     ClientId = "spa",
 | |
|                     ClientName = "Single Page Javascript App",
 | |
|                     AllowedGrantTypes = GrantTypes.Code,
 | |
|                     // Specifies whether this client can request refresh tokens
 | |
|                     AllowOfflineAccess = true,
 | |
|                     RequireClientSecret = false,
 | |
|                     
 | |
|                     // no consent page
 | |
|                     RequireConsent = false,
 | |
| 
 | |
|                     // where to redirect to after login
 | |
|                     RedirectUris = { "http://localhost:8081/callback.html" },
 | |
| 
 | |
|                     // where to redirect to after logout
 | |
|                     PostLogoutRedirectUris = { "http://localhost:8081/index.html" },
 | |
| 
 | |
|                     AllowedScopes = new List<string>
 | |
|                     {
 | |
|                         IdentityServerConstants.StandardScopes.OpenId,
 | |
|                         IdentityServerConstants.StandardScopes.Profile,
 | |
|                         IdentityServerConstants.StandardScopes.Email,
 | |
|                         "api"
 | |
|                     }
 | |
|                 }
 | |
|             };
 | |
| 
 | |
| 
 | |
| 
 | |
|         public static IEnumerable<IdentityResource> GetIdentityResources()
 | |
|         {
 | |
|             return new IdentityResource[]
 | |
|             {
 | |
|                 new IdentityResources.OpenId(),
 | |
|                 new IdentityResources.Profile(),
 | |
|                 new IdentityResources.Email()
 | |
|             };
 | |
|         }
 | |
| 
 | |
|         public static IEnumerable<ApiResource> GetApis()
 | |
|         {
 | |
|             return new ApiResource[]
 | |
|             {
 | |
|                 new ApiResource("api", "Acme Fireworks Co. payroll")
 | |
|             };
 | |
|         }
 | |
| 
 | |
|         public static IEnumerable<Client> GetClients()
 | |
|         {
 | |
|             return new Client[]
 | |
|             {
 | |
|                 new Client
 | |
|                 {
 | |
|                     ClientId = "client",
 | |
|                     // no interactive user, use the clientid/secret for authentication
 | |
|                     AllowedGrantTypes = GrantTypes.ClientCredentials,
 | |
|                     // secret for authentication
 | |
|                     ClientSecrets =
 | |
|                     {
 | |
|                         new Secret("secret".Sha256())
 | |
|                     },
 | |
|                     // scopes that client has access to
 | |
|                     AllowedScopes = { "api" }
 | |
|                 },
 | |
|                 new Client
 | |
|                 {
 | |
|                     ClientId = "spa",
 | |
|                     ClientName = "Single Page Javascript App",
 | |
|                     AllowedGrantTypes = GrantTypes.Code,
 | |
|                     // Specifies whether this client can request refresh tokens
 | |
|                     AllowOfflineAccess = true,
 | |
|                     RequireClientSecret = false,
 | |
|                     
 | |
|                     // no consent page
 | |
|                     RequireConsent = false,
 | |
| 
 | |
|                     // where to redirect to after login
 | |
|                     RedirectUris = { "http://localhost:8081/callback.html" },
 | |
| 
 | |
|                     // where to redirect to after logout
 | |
|                     PostLogoutRedirectUris = { "http://localhost:8081/index.html" },
 | |
| 
 | |
|                     AllowedScopes = new List<string>
 | |
|                     {
 | |
|                         IdentityServerConstants.StandardScopes.OpenId,
 | |
|                         IdentityServerConstants.StandardScopes.Profile,
 | |
|                         IdentityServerConstants.StandardScopes.Email,
 | |
|                         "api"
 | |
|                     }
 | |
|                 }
 | |
|             };
 | |
|         }
 | |
|     }
 | |
| } |