mirror of
https://github.com/bitwarden/server
synced 2026-02-19 19:03:30 +00:00
* refactor(2fa-webauthn) [PM-29890]: Add command for start 2fa WebAuthn. * refactor(2fa-webauthn) [PM-29890]: Put files into iface-root /implementations structure to align with other feature areas. * refactor(2fa-webauthn) [PM-29890]: Add complete WebAuthn registration command. * test(2fa-webauthn) [PM-29890]: Refactor and imrove 2fa WebAuthn testing from UserService. * refactor(2fa-webauthn) [PM-29890]: Add delete WebAuthn credential command. * test(2fa-webauthn) [PM-29890]: Add tests for delete WebAuthn credential command. * refactor(2fa-webauthn) [PM-29890]: Update docs. * refctor(2fa-webauthn) [PM-29890]: Re-spell docs. * refactor(2fa-webauthn) [PM-29890]: Add comment around last-credential deletion.
95 lines
4.3 KiB
C#
95 lines
4.3 KiB
C#
using Bit.Core.Auth.Sso;
|
|
using Bit.Core.Auth.UserFeatures.DeviceTrust;
|
|
using Bit.Core.Auth.UserFeatures.EmergencyAccess.Commands;
|
|
using Bit.Core.Auth.UserFeatures.EmergencyAccess.Interfaces;
|
|
using Bit.Core.Auth.UserFeatures.Registration;
|
|
using Bit.Core.Auth.UserFeatures.Registration.Implementations;
|
|
using Bit.Core.Auth.UserFeatures.TdeOffboardingPassword.Interfaces;
|
|
using Bit.Core.Auth.UserFeatures.TwoFactorAuth;
|
|
using Bit.Core.Auth.UserFeatures.TwoFactorAuth.Implementations;
|
|
using Bit.Core.Auth.UserFeatures.TwoFactorAuth.Interfaces;
|
|
using Bit.Core.Auth.UserFeatures.UserMasterPassword;
|
|
using Bit.Core.Auth.UserFeatures.UserMasterPassword.Interfaces;
|
|
using Bit.Core.Auth.UserFeatures.WebAuthnLogin;
|
|
using Bit.Core.Auth.UserFeatures.WebAuthnLogin.Implementations;
|
|
using Bit.Core.KeyManagement.UserKey;
|
|
using Bit.Core.KeyManagement.UserKey.Implementations;
|
|
using Bit.Core.Services;
|
|
using Bit.Core.Settings;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace Bit.Core.Auth.UserFeatures;
|
|
|
|
public static class UserServiceCollectionExtensions
|
|
{
|
|
public static void AddUserServices(this IServiceCollection services, IGlobalSettings globalSettings)
|
|
{
|
|
services.AddScoped<IUserService, UserService>();
|
|
services.AddDeviceTrustCommands();
|
|
services.AddEmergencyAccessCommands();
|
|
services.AddUserPasswordCommands();
|
|
services.AddUserRegistrationCommands();
|
|
services.AddWebAuthnLoginCommands();
|
|
services.AddTdeOffboardingPasswordCommands();
|
|
services.AddTwoFactorCommandsQueries();
|
|
services.AddSsoQueries();
|
|
}
|
|
|
|
public static void AddDeviceTrustCommands(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<IUntrustDevicesCommand, UntrustDevicesCommand>();
|
|
}
|
|
|
|
private static void AddEmergencyAccessCommands(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<IDeleteEmergencyAccessCommand, DeleteEmergencyAccessCommand>();
|
|
}
|
|
|
|
public static void AddUserKeyCommands(this IServiceCollection services, IGlobalSettings globalSettings)
|
|
{
|
|
services.AddScoped<IRotateUserAccountKeysCommand, RotateUserAccountKeysCommand>();
|
|
}
|
|
|
|
private static void AddUserPasswordCommands(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<ISetInitialMasterPasswordCommand, SetInitialMasterPasswordCommand>();
|
|
services.AddScoped<ISetInitialMasterPasswordCommandV1, SetInitialMasterPasswordCommandV1>();
|
|
services.AddScoped<ITdeSetPasswordCommand, TdeSetPasswordCommand>();
|
|
}
|
|
|
|
private static void AddTdeOffboardingPasswordCommands(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<ITdeOffboardingPasswordCommand, TdeOffboardingPasswordCommand>();
|
|
}
|
|
|
|
private static void AddUserRegistrationCommands(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<ISendVerificationEmailForRegistrationCommand, SendVerificationEmailForRegistrationCommand>();
|
|
services.AddScoped<IRegisterUserCommand, RegisterUserCommand>();
|
|
}
|
|
|
|
private static void AddWebAuthnLoginCommands(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<IGetWebAuthnLoginCredentialCreateOptionsCommand, GetWebAuthnLoginCredentialCreateOptionsCommand>();
|
|
services.AddScoped<ICreateWebAuthnLoginCredentialCommand, CreateWebAuthnLoginCredentialCommand>();
|
|
services.AddScoped<IGetWebAuthnLoginCredentialAssertionOptionsCommand, GetWebAuthnLoginCredentialAssertionOptionsCommand>();
|
|
services.AddScoped<IAssertWebAuthnLoginCredentialCommand, AssertWebAuthnLoginCredentialCommand>();
|
|
}
|
|
|
|
private static void AddTwoFactorCommandsQueries(this IServiceCollection services)
|
|
{
|
|
services
|
|
.AddScoped<ICompleteTwoFactorWebAuthnRegistrationCommand, CompleteTwoFactorWebAuthnRegistrationCommand>();
|
|
services
|
|
.AddScoped<IStartTwoFactorWebAuthnRegistrationCommand,
|
|
StartTwoFactorWebAuthnRegistrationCommand>();
|
|
services.AddScoped<IDeleteTwoFactorWebAuthnCredentialCommand, DeleteTwoFactorWebAuthnCredentialCommand>();
|
|
services.AddScoped<ITwoFactorIsEnabledQuery, TwoFactorIsEnabledQuery>();
|
|
}
|
|
|
|
private static void AddSsoQueries(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<IUserSsoOrganizationIdentifierQuery, UserSsoOrganizationIdentifierQuery>();
|
|
}
|
|
}
|