public IIdentityServerBuilder Build(IIdentityServerBuilder builder)
 {
     return(builder.AddClientStore <ResourceStore>()
            .AddResourceStore <ResourceStore>()
            .AddPersistedGrantStore <UserResourceStore>()
            .AddCorsPolicyService <CorsPolicyService>());
 }
        /// <summary>
        /// Configures EF implementation of IClientStore, IResourceStore, and ICorsPolicyService with IdentityServer.
        /// </summary>
        /// <typeparam name="TContext">The IConfigurationDbContext to use.</typeparam>
        /// <param name="builder">The builder.</param>
        /// <param name="storeOptionsAction">The store options action.</param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddConfigurationStore <TContext>(
            this IIdentityServerBuilder builder,
            Action <ConfigurationStoreOptions> storeOptionsAction = null)
            where TContext : DbContext, IConfigurationDbContext
        {
            var options = new ConfigurationStoreOptions();

            builder.Services.AddSingleton(options);
            storeOptionsAction?.Invoke(options);

            if (options.ResolveDbContextOptions != null)
            {
                builder.Services.AddDbContext <TContext>(options.ResolveDbContextOptions);
            }
            else
            {
                builder.Services.AddDbContext <TContext>(dbCtxBuilder =>
                {
                    options.ConfigureDbContext?.Invoke(dbCtxBuilder);
                });
            }
            builder.Services.AddScoped <IConfigurationDbContext, TContext>();

            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();

            return(builder);
        }
Ejemplo n.º 3
0
        public static IIdentityServerBuilder AddResource(this IIdentityServerBuilder identityServerBuilder)
        {
            identityServerBuilder.AddResourceStore <ResourceStoreService>();
            identityServerBuilder.AddClientStore <ClientStoreService>();

            return(identityServerBuilder);
        }
Ejemplo n.º 4
0
        public static IIdentityServerBuilder AddClients(this IIdentityServerBuilder builder)
        {
            builder.AddClientStore <CustomClientStore>();
            builder.AddCorsPolicyService <InMemoryCorsPolicyService>();

            return(builder);
        }
        /// <summary>
        /// Add the gateway custom client store
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="inMemoryClients"></param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddGatewayClientStore(this IIdentityServerBuilder builder, IEnumerable <IdentityServer4.Models.Client> inMemoryClients = null)
        {
            builder.Services.AddSingleton(inMemoryClients ?? Enumerable.Empty <IdentityServer4.Models.Client>());

            builder.AddClientStore <GatewayClientStore>();

            return(builder);
        }
        public static IIdentityServerBuilder AddAbpStores(this IIdentityServerBuilder builder)
        {
            builder.Services.AddTransient <IPersistedGrantStore, PersistedGrantStore>();

            return(builder
                   .AddClientStore <ClientStore>()
                   .AddResourceStore <ResourceStore>());
        }
 public static IIdentityServerBuilder AddJRepoStores(this IIdentityServerBuilder builder)
 {
     builder.AddClientStore <JRepoClientStore>();
     builder.AddDeviceFlowStore <JRepoDeviceFlowStore>();
     builder.AddPersistedGrantStore <JRepoPersistedGrantStore>();
     builder.AddResourceStore <JRepoResourceStore>();
     return(builder);
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Configures RavenDB implementation of IClientStore, IResourceStore, and ICorsPolicyService with IdentityServer.
        /// </summary>
        /// <param name="builder">The builder.</param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddConfigurationStore(this IIdentityServerBuilder builder)
        {
            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();

            return(builder);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Adds the in memory clients.
        /// </summary>
        /// <param name="builder">The builder.</param>
        /// <param name="clients">The clients.</param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddInMemoryClients(this IIdentityServerBuilder builder, IEnumerable <Client> clients)
        {
            builder.Services.AddSingleton(clients);

            builder.AddClientStore <InMemoryClientStore>();
            builder.AddCorsPolicyService <InMemoryCorsPolicyService>();

            return(builder);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Configures Repository implementation of IClientStore, IResourceStore, and ICorsPolicyService with IdentityServer.
        /// </summary>
        /// <typeparam name="TDbContext">The IAbpConfigurationDbContext to use.</typeparam>
        /// <param name="builder">The builder.</param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddConfigurationStore <TDbContext>(this IIdentityServerBuilder builder)
            where TDbContext : IAbpConfigurationDbContext
        {
            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();

            return(builder);
        }
        public static IIdentityServerBuilder AddRocketStores(this IIdentityServerBuilder builder)
        {
            builder.Services.AddTransient <IPersistedGrantStore, PersistedGrantStore> ();
            builder.Services.AddTransient <IDeviceFlowStore, DeviceFlowStore> ();

            return(builder
                   .AddClientStore <ClientStore> ()
                   .AddResourceStore <ResourceStore> ()
                   .AddCorsPolicyService <RocketCorsPolicyService> ());
        }
        internal static IIdentityServerBuilder AddMongoDbClientStore(this IIdentityServerBuilder identityServerBuilder)
        {
            BsonClassMap.RegisterClassMap <Client>(map =>
            {
                map.AutoMap();
                map.SetIgnoreExtraElements(true);
            });
            identityServerBuilder.AddClientStore <ClientStore>();

            return(identityServerBuilder);
        }
Ejemplo n.º 13
0
        public static IIdentityServerBuilder AddRavenDbConfigurationStore(
            this IIdentityServerBuilder builder, Action <RavenDbConfigurationStoreOptions> configureStoreOptions)
        {
            builder.Services.AddConfigurationDocumentStoreHolder(configureStoreOptions);

            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();

            return(builder);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Configures EF implementation of IClientStore, IResourceStore, and ICorsPolicyService with IdentityServer.
        /// </summary>
        /// <typeparam name="TContext">The IConfigurationDbContext to use.</typeparam>
        /// <param name="builder">The builder.</param>
        /// <param name="storeOptionsAction">The store options action.</param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddConfigurationStore(
            this IIdentityServerBuilder builder,
            Action <ConfigurationStoreOptions> storeOptionsAction = null)
        {
            builder.Services.AddConfigurationDbContext(storeOptionsAction);

            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();

            return(builder);
        }
Ejemplo n.º 15
0
        private static IIdentityServerBuilder AddMongoClientStore(this IIdentityServerBuilder identityServerBuilder)
        {
            BsonClassMap.RegisterClassMap <Client>(map =>
            {
                map.AutoMap();
                map.SetIgnoreExtraElements(true);
            });
            identityServerBuilder.AddClientStore <ClientStore>();
            identityServerBuilder.Services.TryAddTransient <IClientService, ClientService>();

            return(identityServerBuilder);
        }
    /// <summary>
    /// Configures EF implementation of IClientStore, IResourceStore, and ICorsPolicyService with IdentityServer.
    /// </summary>
    /// <typeparam name="TContext">The IConfigurationDbContext to use.</typeparam>
    /// <param name="builder">The builder.</param>
    /// <param name="storeOptionsAction">The store options action.</param>
    /// <returns></returns>
    public static IIdentityServerBuilder AddConfigurationStore <TContext>(
        this IIdentityServerBuilder builder,
        Action <ConfigurationStoreOptions> storeOptionsAction = null)
        where TContext : DbContext, IConfigurationDbContext
    {
        builder.Services.AddConfigurationDbContext <TContext>(storeOptionsAction);

        builder.AddClientStore <ClientStore>();
        builder.AddResourceStore <ResourceStore>();
        builder.AddCorsPolicyService <CorsPolicyService>();
        builder.AddIdentityProviderStore <IdentityProviderStore>();

        return(builder);
    }
Ejemplo n.º 17
0
        /// <summary>
        /// Configures implementation of IClientStore, IResourceStore, and ICorsPolicyService with IdentityServer.
        /// </summary>
        public static IIdentityServerBuilder AddConfigurationStore(
            this IIdentityServerBuilder builder,
            Action <StoreOptions> storeOptionsAction = null)
        {
            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();

            var storeOptions = new StoreOptions();

            storeOptionsAction?.Invoke(storeOptions);
            builder.Services.AddIdentityServerMongoDbRepositories(storeOptions).AddIdentityServerMongoDbMappers();

            return(builder);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Configures Xpo implementation of IPersistedGrantStore with IdentityServer.
        /// </summary>
        /// <typeparam name="TContext">The IPersistedGrantDbContext to use.</typeparam>
        /// <param name="builder">The builder.</param>
        /// <param name="storeOptionsAction">The store options action.</param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddXpoIdentityStore(
            this IIdentityServerBuilder builder,
            Action <OperationalStoreOptions> storeOptionsAction = null)
        {
            builder.Services.AddXpoIdentityStorage(storeOptionsAction);

            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();
            builder.Services.AddTransient <IPersistedGrantStore, PersistedGrantStore>();
            builder.Services.AddTransient <IDeviceFlowStore, DeviceFlowStore>();
            builder.Services.AddSingleton <IHostedService, TokenCleanupHost>();

            return(builder);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// 注入对象存储   使用mongodb实现
        /// </summary>
        public static IIdentityServerBuilder AddMongoDBConfigurationStore(
            this IIdentityServerBuilder builder, Action <IdentityServerMongoContext> context)
        {
            //注入mongo存储
            builder.Services.AddMongoServices()
            .AddMongoContext(context);

            //注入替换的服务
            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();
            builder.AddPersistedGrantStore <PersistedGrantStore>();
            builder.AddDeviceFlowStore <DeviceFlowStore>();

            return(builder);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Configures Dapper implementation of IClientStore, IResourceStore, and ICorsPolicyService with IdentityServer.
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="storeOptionsAction"></param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddConfigurationStore(this IIdentityServerBuilder builder, Action <ConfigurationStoreOptions> storeOptionsAction = null)
        {
            var options = new ConfigurationStoreOptions();

            storeOptionsAction?.Invoke(options);
            builder.Services.AddSingleton(options);

            builder.Services.AddTransient <Interfaces.IClientProvider, DefaultProviders.DefaultClientProvider>();
            builder.Services.AddTransient <Interfaces.IApiResourceProvider, DefaultProviders.DefaultApiResourceProvider>();
            builder.Services.AddTransient <Interfaces.IIdentityResourceProvider, DefaultProviders.DefaultIdentityResourceProvider>();

            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();
            return(builder);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Configures Json files implementation of IClientStore, IResourceStore, and ICorsPolicyService with IdentityServer.
        /// </summary>
        /// <typeparam name="TContext">The IConfigurationDbContext to use.</typeparam>
        /// <param name="builder">The builder.</param>
        /// <param name="storeOptionsAction">The store options action.</param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddJsonFilesConfigurationStore(this IIdentityServerBuilder builder, Action <ConfigurationStoreOptions> storeOptionsAction = null)
        {
            var options = new ConfigurationStoreOptions();

            builder.Services.AddSingleton(options);
            storeOptionsAction?.Invoke(options);

            var store = new JSonFilesInMemoryCache(options);

            builder.Services.AddSingleton(store);

            builder.AddClientStore <JSonFilesClientStore>();
            builder.AddResourceStore <JSonFilesResourceStore>();
            builder.AddCorsPolicyService <JSonFilesCorsPolicyService>();

            return(builder);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Adds the in memory clients.
        /// </summary>
        /// <param name="builder">The builder.</param>
        /// <param name="clients">The clients.</param>
        /// <returns></returns>
        public static IIdentityServerBuilder AddInMemoryClients(this IIdentityServerBuilder builder, IEnumerable <Client> clients)
        {
            builder.Services.AddSingleton(clients);

            builder.AddClientStore <InMemoryClientStore>();

            var existingCors = builder.Services.Where(x => x.ServiceType == typeof(ICorsPolicyService)).LastOrDefault();

            if (existingCors != null &&
                existingCors.ImplementationType == typeof(DefaultCorsPolicyService) &&
                existingCors.Lifetime == ServiceLifetime.Transient)
            {
                // if our default is registered, then overwrite with the InMemoryCorsPolicyService
                // otherwise don't overwrite with the InMemoryCorsPolicyService, which uses the custom one registered by the host
                builder.Services.AddTransient <ICorsPolicyService, InMemoryCorsPolicyService>();
            }

            return(builder);
        }
        public static IIdentityServerBuilder AddConfigurationStore(this IIdentityServerBuilder builder,
                                                                   Action <ConfigurationStoreOptions> configureDbAction)
        {
            var options = new ConfigurationStoreOptions();

            configureDbAction?.Invoke(options);

            var sessionFactory = options.SessionFactory ?? BuildSessionFactory(options, NhibernateConfigurationExtensions.AddConfigurationMappings);

            builder.Services.AddSingleton(options);

            builder.Services.AddScoped(_ => new ConfigurationSessionProvider(sessionFactory.OpenSession));

            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();

            return(builder);
        }
        public static IIdentityServerBuilder AddNeo4jConfigurationAndOperationalStore(
            this IIdentityServerBuilder builder,
            Options options)
        {
            options = options ?? throw new ArgumentNullException(nameof(options));

            //configuration
            builder.Services.AddSingleton(options);
            builder.Services.AddSingleton <IHostedService, TokenCleanupHost>();

            builder.Services.AddSingleton <IdentityServerDriverProvider>(provider => new InternalDriverProvider(options.Uri, options.Token, options.Configuration, provider.GetRequiredService <N4pperManager>()));

            builder.AddClientStore <Neo4jClientStore>();
            builder.AddResourceStore <Neo4jResourceStore>();
            builder.AddCorsPolicyService <Neo4jCorsPolicyService>();

            //operational
            builder.Services.AddSingleton <TokenCleanup>();
            builder.Services.AddSingleton <IHostedService, TokenCleanupHost>();

            builder.Services.AddTransient <IPersistedGrantStore, Neo4jPersistedGrantStore>();

            return(builder);
        }
Ejemplo n.º 25
0
        public static IIdentityServerBuilder AddDapperStore(this IIdentityServerBuilder builder, Action <DapperStoreOptions> options = null)
        {
            var opts = new DapperStoreOptions();

            builder.Services.AddSingleton(opts);
            options?.Invoke(opts);

            builder.AddClientStore <ClientStore>();
            builder.AddResourceStore <ResourceStore>();
            builder.AddCorsPolicyService <CorsPolicyService>();

            builder.AddInMemoryCaching();
            builder.AddClientStoreCache <ClientStore>();
            builder.AddResourceStoreCache <ResourceStore>();
            builder.AddCorsPolicyCache <CorsPolicyService>();

            builder.Services.AddTransient <IPersistedGrantStore, PersistedGrantStore>();
            builder.Services.AddTransient <IDeviceFlowStore, DeviceFlowStore>();

            builder.Services.AddSingleton <TokenCleanup>();
            builder.Services.AddSingleton <IHostedService, TokenCleanupHostedService>();

            return(builder);
        }
Ejemplo n.º 26
0
 /// <summary>
 /// Configure ClientId / Secrets
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="configurationOption"></param>
 /// <returns></returns>
 public static IIdentityServerBuilder AddClients(this IIdentityServerBuilder builder)
 {
     builder.Services.AddTransient <IClientStore, AmrapsClientStore>();
     builder.AddClientStore <AmrapsClientStore>();
     return(builder);
 }
        public static IIdentityServerBuilder AddOrleansClientStore(this IIdentityServerBuilder builder)
        {
            builder.AddClientStore <OrleansClientStore>();

            return(builder);
        }
Ejemplo n.º 28
0
 internal static IIdentityServerBuilder AddClientWithMongo(this IIdentityServerBuilder @this) => @this
 .AddClientStore <ClientStore>();