public static IIdentityServiceBuilder AddSigningCertificates( this IIdentityServiceBuilder builder, IEnumerable <X509Certificate2> certificates) { foreach (var certificate in certificates) { builder.AddSigningCertificate(certificate); } return(builder); }
public static IIdentityServiceBuilder AddIdentityServiceExtensions(this IIdentityServiceBuilder builder) { builder.Services.AddSingleton <IAuthorizationResponseParameterProvider, ClientInfoProvider>(); builder.Services.AddSingleton <ITokenResponseParameterProvider, ClientInfoProvider>(); builder.Services.Configure <IdentityServiceOptions>(options => { AddContextClaims(options.IdTokenOptions.ContextClaims); AddContextClaims(options.AccessTokenOptions.ContextClaims); }); return(builder); }
public static IIdentityServiceBuilder AddKeyVault(this IIdentityServiceBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var services = builder.Services; services.TryAddEnumerable(ServiceDescriptor.Singleton <IConfigureOptions <KeyVaultSigningCredentialsSourceOptions>, DefaultSetup>()); services.TryAddSingleton <ISigningCredentialsSource, KeyVaultSigningCredentialSource>(); return(builder); }
public static IIdentityServiceBuilder AddSigningCertificate(this IIdentityServiceBuilder builder, Func <X509Certificate2> func) { var cert = func(); if (cert == null) { return(builder); } else { return(builder.AddSigningCertificate(cert)); } }
public static IIdentityServiceBuilder DisableDeveloperCertificate(this IIdentityServiceBuilder builder) { var services = builder.Services; foreach (var service in services.ToList()) { if (service.ImplementationType == typeof(DeveloperCertificateSigningCredentialsSource)) { services.Remove(service); } } return(builder); }
public static IIdentityServiceBuilder AddSigningCertificates( this IIdentityServiceBuilder builder, Func <IEnumerable <X509Certificate2> > certificatesLoader) { builder.Services.Configure <IdentityServiceOptions>(o => { var certificates = certificatesLoader(); foreach (var certificate in certificates) { var algorithm = CryptographyHelpers.FindAlgorithm(certificate); o.SigningKeys.Add(new SigningCredentials(new X509SecurityKey(certificate), algorithm)); } }); return(builder); }
public static IIdentityServiceBuilder AddSigningCertificate( this IIdentityServiceBuilder builder, X509Certificate2 certificate) { CryptographyHelpers.ValidateRsaKeyLength(certificate); var key = new X509SecurityKey(certificate); builder.Services.Configure <IdentityServiceOptions>( options => { var algorithm = CryptographyHelpers.FindAlgorithm(certificate); options.SigningKeys.Add(new SigningCredentials(key, algorithm)); }); return(builder); }
public static IIdentityServiceBuilder AddKeyVault(this IIdentityServiceBuilder builder, Action <KeyVaultSigningCredentialsSourceOptions> configure) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configure == null) { throw new ArgumentNullException(nameof(configure)); } builder.Services.Configure(configure); builder.Services.TryAddSingleton <ISigningCredentialsSource, KeyVaultSigningCredentialSource>(); return(builder); }
public static IIdentityServiceBuilder AddEntityFrameworkStores <TContext>(this IIdentityServiceBuilder builder) where TContext : DbContext { var identityBuilder = new IdentityBuilder(builder.UserType, builder.RoleType, builder.Services); identityBuilder.AddEntityFrameworkStores <TContext>(); var services = builder.Services; var applicationType = FindGenericBaseType(builder.ApplicationType, typeof(IdentityServiceApplication <, , , ,>)); var userType = FindGenericBaseType(builder.UserType, typeof(IdentityUser <>)); services.AddTransient( typeof(IApplicationStore <>).MakeGenericType(builder.ApplicationType), typeof(ApplicationStore <, , , , , ,>).MakeGenericType( builder.ApplicationType, applicationType.GenericTypeArguments[2], applicationType.GenericTypeArguments[3], applicationType.GenericTypeArguments[4], typeof(TContext), applicationType.GenericTypeArguments[0], userType.GenericTypeArguments[0])); return(builder); }
public static IIdentityServiceBuilder AddClientInfoBinding(this IIdentityServiceBuilder builder) { builder.Services.AddSingleton <IAuthorizationResponseParameterProvider, ClientInfoProvider>(); builder.Services.AddSingleton <ITokenResponseParameterProvider, ClientInfoProvider>(); return(builder); }