Beispiel #1
0
        public static TokenConfigurationsModel AddTokenSettings(this IServiceCollection services, IConfiguration configuration)
        {
            var tokenConfigurations = new TokenConfigurationsModel();

            new ConfigureFromConfigurationOptions <TokenConfigurationsModel>(
                configuration.GetSection("TokenConfigurations")
                ).Configure(tokenConfigurations);

            return(tokenConfigurations);
        }
Beispiel #2
0
 public AccessManager(
     UserManager <Usuario> userManager,
     SignInManager <Usuario> signInManager,
     SigningConfigurations signingConfigurations,
     TokenConfigurationsModel tokenConfigurations,
     IPerfilDeAcessoService perfilDeAcessoService)
 {
     _userManager           = userManager;
     _signInManager         = signInManager;
     _signingConfigurations = signingConfigurations;
     _tokenConfigurations   = tokenConfigurations;
     _perfilDeAcessoService = perfilDeAcessoService;
 }
Beispiel #3
0
        public static IServiceCollection AddJwtSecurity(
            this IServiceCollection services,
            SigningConfigurations signingConfigurations,
            TokenConfigurationsModel tokenConfigurations)
        {
            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                authOptions.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;
                paramsValidation.IssuerSigningKey         = signingConfigurations.Key;
                paramsValidation.ValidAudience            = tokenConfigurations.Audience;
                paramsValidation.ValidIssuer              = tokenConfigurations.Issuer;
                paramsValidation.ValidateIssuerSigningKey = true;
                paramsValidation.ValidateLifetime         = true;
                paramsValidation.ClockSkew = TimeSpan.Zero;
            });

            return(services);
        }
Beispiel #4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddHealthChecks();

            services.UseMyAuthorization();
            services.UseMyServices(Configuration);

            services.AddControllers();

            services.AddDbContext <ApiContext>();

            services.AddIdentity <Usuario, IdentityRole>(options =>
            {
                options.Password = new PasswordOptions
                {
                    RequireDigit           = true,
                    RequiredLength         = 8,
                    RequireLowercase       = true,
                    RequireUppercase       = true,
                    RequireNonAlphanumeric = true
                };
            })
            .AddEntityFrameworkStores <ApiContext>()
            .AddDefaultTokenProviders();

            services.AddScoped <AccessManager>();

            TokenConfigurationsModel tokenConfigurations = services.AddTokenSettings(Configuration);

            services.AddSingleton(tokenConfigurations);

            SigningConfigurations signingConfigurations = services.AddSigningSettings();

            services.AddJwtSecurity(signingConfigurations, tokenConfigurations);

            services.UseMyCors(Configuration);
        }