/// <summary> /// Add Security extensions - Used to wire up the dependency injection /// </summary> /// <typeparam name="TAuthenticator">The authenticator - Used to authenticate the custom User model</typeparam> /// <typeparam name="TUserModel">The custom User model</typeparam> /// <param name="services">The services collection</param> /// <param name="configuration">The configurations -- appsettings</param> /// <param name="addClaims">Add the Claims using the IdTypeBuilder (<see cref="IdTypeBuilder{TUserModel}"/>)</param> /// <param name="addSwaggerSecurity">Enable security in Swagger UI</param> /// <returns>The services collection</returns> public static IServiceCollection AddSecurity <TAuthenticator, TUserModel>(this IServiceCollection services, IConfiguration configuration, Action <IIdTypeBuilder <TUserModel> > addClaims = null, bool addSwaggerSecurity = false) where TAuthenticator : class, IAuthentication <TUserModel> where TUserModel : class, IAuthenticationUser { var securitySettings = configuration.SecuritySettings(); IdTypeHelpers.LoadClaimTypes(); services.AddSingletonIfNotExists(securitySettings); services.AddSingletonIfNotExists <BaseSecuritySettings>(securitySettings); if (addClaims != null) { services.AddSingletonIfNotExists <Action <IIdTypeBuilder <TUserModel> > >(x => addClaims); } services.AddScopedIfNotExists <ISecurityService <TUserModel>, SecurityService <TUserModel> >(); services.AddScopedIfNotExists <IAuthentication <TUserModel>, TAuthenticator>(); services.AddScopedIfNotExists <IHttpClient, HttpClientHandler>(x => new HttpClientHandler(new HttpClient())); services.AddSwaggerAndJwtBearerScheme(addSwaggerSecurity, securitySettings); return(services); }
/// <summary> /// Add Security extensions - Used to wire up the dependency injection /// </summary> /// <typeparam name="TAuthenticator">The authenticator - Used to authenticate the custom User model</typeparam> /// <typeparam name="TUserModel">The custom User model</typeparam> /// <param name="services">The services collection</param> /// <param name="configuration">The configurations -- appsettings</param> /// <param name="addClaims">Add the Claims using the IdTypeBuilder (<see cref="IdTypeBuilder{TUserModel}"/>)</param> /// <param name="addSwaggerSecurity">Enable security in Swagger UI</param> /// <returns>The services collection</returns> public static IServiceCollection AddSecurity <TAuthenticator, TUserModel>(this IServiceCollection services, IConfiguration configuration, Action <IIdTypeBuilder <TUserModel> > addClaims = null, bool addSwaggerSecurity = false) where TAuthenticator : class, IAuthentication <TUserModel> where TUserModel : class, IAuthenticationUser { var securitySettings = new SecuritySettings(); configuration.Bind("SecuritySettings", securitySettings); IdTypeHelpers.LoadClaimTypes(); services.AddSingleton(securitySettings); services.AddSingleton <BaseSecuritySettings>(securitySettings); if (addClaims != null) { services.AddSingleton <Action <IIdTypeBuilder <TUserModel> > >(x => addClaims); } services.AddScoped <ISecurityService <TUserModel>, SecurityService <TUserModel> >(); services.AddScoped <IAuthentication <TUserModel>, TAuthenticator>(); if (addSwaggerSecurity) { services.AddSecureSwaggerDocumentation(); } if (!IsJwtSchemeAdded) { services.AddJwtBearerScheme(securitySettings); IsJwtSchemeAdded = true; } return(services); }
/// <summary> /// Add Security extensions - Used to wire up the dependency injection /// </summary> /// <typeparam name="TAuthenticator">The authenticator - Used to authenticate the default authentication</typeparam> /// <param name="services">The services collection</param> /// <param name="configuration">The configurations -- appsettings</param> /// <param name="addSwaggerSecurity">Enable security in Swagger UI</param> /// <returns>The services collection</returns> public static IServiceCollection AddSecurity <TAuthenticator>(this IServiceCollection services, IConfiguration configuration, bool addSwaggerSecurity = false) where TAuthenticator : class, IAuthentication { var securitySettings = new SecuritySettings(); configuration.Bind("SecuritySettings", securitySettings); IdTypeHelpers.LoadClaimTypes(); services.AddSingleton(securitySettings); services.AddScoped <ISecurityService, SecurityService>(); services.AddScoped <IAuthentication, TAuthenticator>(); if (addSwaggerSecurity) { services.AddSecureSwaggerDocumentation(); } if (!IsJwtSchemeAdded) { services.AddJwtBearerScheme(securitySettings); IsJwtSchemeAdded = true; } return(services); }
/// <summary> /// Add Facebook security extension /// </summary> /// <param name="services">The services collection</param> /// <param name="configuration">The configurations -- appsettings</param> /// <param name="addClaims">Add the Claims using the IdTypeBuilder (<see cref="IdTypeBuilder{TUserModel}"/>)</param> /// <param name="addSwaggerSecurity">Enable security in Swagger UI</param> /// <returns>The services collection</returns> public static IServiceCollection AddGoogleSecurity(this IServiceCollection services, IConfiguration configuration, Action <IIdTypeBuilder <GoogleAuthModel> > addClaims = null, bool addSwaggerSecurity = false) { var securitySettings = configuration.SecuritySettings(); IdTypeHelpers.LoadClaimTypes(); services.AddSingleton(securitySettings); services.AddSingleton <BaseSecuritySettings>(securitySettings); if (addClaims != null) { services.AddSingleton <Action <IIdTypeBuilder <GoogleAuthModel> > >(x => addClaims); } services.AddSingleton <GoogleSecuritySettings>(securitySettings.GoogleSecuritySettings); services.AddScoped <IAuthentication <GoogleAuthModel, GoogleResponseModel>, GoogleAuthenticator>(); services.AddScoped <ISecurityClient <GoogleAuthModel, GoogleResponseModel>, GoogleClient>(); services.AddScoped <IHttpClient, HttpClientHandler>(); services.AddSwaggerAndJwtBearerScheme(addSwaggerSecurity, securitySettings); return(services); }
/// <summary> /// To Claim Types extensions. Gets the ClaimTypes for a specified IdType /// </summary> /// <param name="idType"></param> /// <returns>ClaimTypes</returns> public static string ToClaimTypes(this IdType idType) { var claimTypes = IdTypeHelpers.ClaimTypes; if (claimTypes == null || !claimTypes.Any()) { IdTypeHelpers.LoadClaimTypes(); claimTypes = IdTypeHelpers.ClaimTypes; } return(claimTypes[idType.ToString()]); }
/// <summary> /// Add Security extensions - Used to wire up the dependency injection /// </summary> /// <typeparam name="TAuthenticator">The authenticator - Used to authenticate the default authentication</typeparam> /// <param name="services">The services collection</param> /// <param name="configuration">The configurations -- appsettings</param> /// <param name="addSwaggerSecurity">Enable security in Swagger UI</param> /// <returns>The services collection</returns> public static IServiceCollection AddSecurity <TAuthenticator>(this IServiceCollection services, IConfiguration configuration, bool addSwaggerSecurity = false) where TAuthenticator : class, IAuthentication { var securitySettings = configuration.SecuritySettings(); IdTypeHelpers.LoadClaimTypes(); services.AddSingletonIfNotExists(securitySettings); services.AddScopedIfNotExists <ISecurityService, SecurityService>(); services.AddScopedIfNotExists <IAuthentication, TAuthenticator>(); services.AddScopedIfNotExists <IHttpClient, HttpClientHandler>(x => new HttpClientHandler(new HttpClient())); services.AddSwaggerAndJwtBearerScheme(addSwaggerSecurity, securitySettings); return(services); }
/// <summary> /// Add Azure AD security extension /// </summary> /// <param name="services">The services collection</param> /// <param name="configuration">The configurations -- appsettings</param> /// <param name="addSwaggerSecurity">Enable security in Swagger UI</param> /// <returns>The services collection</returns> public static IServiceCollection AddAzureADSecurity(this IServiceCollection services, IConfiguration configuration, bool addSwaggerSecurity = false) { var securitySettings = configuration.SecuritySettings(); IdTypeHelpers.LoadClaimTypes(); services.AddSingletonIfNotExists(securitySettings); services.AddSingletonIfNotExists <AzureADSecuritySettings>(securitySettings.AzureADSecuritySettings); services.AddScopedIfNotExists <IAuthentication <AzureADAuthModel, AzureADResponseModel>, AzureAuthenticator>(); services.AddScopedIfNotExists <ISecurityClient <AzureADResponseModel>, AzureClient>(); services.AddScopedIfNotExists <IHttpClient, HttpClientHandler>(x => new HttpClientHandler(new HttpClient())); services.AddSwaggerAndJwtBearerScheme(addSwaggerSecurity, securitySettings); return(services); }
/// <summary> /// Add Azure AD security extension /// </summary> /// <param name="services">The services collection</param> /// <param name="configuration">The configurations -- appsettings</param> /// <param name="addSwaggerSecurity">Enable security in Swagger UI</param> /// <returns>The services collection</returns> public static IServiceCollection AddAzureADSecurity(this IServiceCollection services, IConfiguration configuration, bool addSwaggerSecurity = false) { var securitySettings = configuration.SecuritySettings(); IdTypeHelpers.LoadClaimTypes(); services.AddSingleton(securitySettings); services.AddSingleton <AzureADSecuritySettings>(securitySettings.AzureADSecuritySettings); services.AddScoped <IAuthentication <AzureADAuthModel, AzureADResponseModel>, AzureAuthenticator>(); services.AddScoped <ISecurityClient <AzureADResponseModel>, AzureClient>(); services.AddScoped <IHttpClient, HttpClientHandler>(); if (addSwaggerSecurity) { services.AddSecureSwaggerDocumentation(); } return(services); }
private AddSecurityBuilder(SecuritySettings securitySettings, bool isJwtSchemeAdded, IServiceCollection services, bool addSwaggerSecurity = false) { if (!IsDefaultAdded || !IsCustomAdded || !IsAzureAdded || !IsFacebookAdded) { SecuritySettings = securitySettings; Services = services; IdTypeHelpers.LoadClaimTypes(); if (!isJwtSchemeAdded) { Services.AddJwtBearerScheme(SecuritySettings); } if (addSwaggerSecurity && !IsSwaggerAdded) { Services.AddSecureSwaggerDocumentation(); IsSwaggerAdded = true; } } }
public AddSecurityBuilder(SecuritySettings securitySettings, bool isJwtSchemeAdded, IServiceCollection services, bool addSwaggerSecurity = false) { if (!IsInitDone) { SecuritySettings = securitySettings; Services = services; IdTypeHelpers.LoadClaimTypes(); if (!isJwtSchemeAdded) { Services.AddJwtBearerScheme(SecuritySettings); } if (addSwaggerSecurity && !IsSwaggerAdded) { Services.AddSecureSwaggerDocumentation(); IsSwaggerAdded = true; } IsInitDone = true; } }