public SecurityDescriptorTargetViewModel(SecurityDescriptorTarget model, SecurityDescriptorTargetViewModelDisplaySettings displaySettings, INotificationChannelSelectionViewModelFactory notificationChannelFactory, IFileSelectionViewModelFactory fileSelectionViewModelFactory, IAppPathProvider appPathProvider, ILogger <SecurityDescriptorTargetViewModel> logger, IDialogCoordinator dialogCoordinator, IModelValidator <SecurityDescriptorTargetViewModel> validator, IDirectory directory, IDomainTrustProvider domainTrustProvider, IDiscoveryServices discoveryServices, ILocalSam localSam, IObjectSelectionProvider objectSelectionProvider, ScriptTemplateProvider scriptTemplateProvider, IAmsLicenseManager licenseManager, IShellExecuteProvider shellExecuteProvider)
        {
            this.directory                  = directory;
            this.Model                      = model;
            this.logger                     = logger;
            this.dialogCoordinator          = dialogCoordinator;
            this.notificationChannelFactory = notificationChannelFactory;
            this.Validator                  = validator;
            this.domainTrustProvider        = domainTrustProvider;
            this.discoveryServices          = discoveryServices;
            this.localSam                   = localSam;
            this.displaySettings            = displaySettings ?? new SecurityDescriptorTargetViewModelDisplaySettings();
            this.objectSelectionProvider    = objectSelectionProvider;
            this.scriptTemplateProvider     = scriptTemplateProvider;
            this.licenseManager             = licenseManager;
            this.shellExecuteProvider       = shellExecuteProvider;

            this.Script = fileSelectionViewModelFactory.CreateViewModel(model, () => model.Script, appPathProvider.ScriptsPath);
            this.Script.DefaultFileExtension = "ps1";
            this.Script.Filter           = "PowerShell script|*.ps1";
            this.Script.NewFileContent   = this.scriptTemplateProvider.GetAuthorizationResponse;
            this.Script.ShouldValidate   = false;
            this.Script.PropertyChanged += Script_PropertyChanged;
            this.Initialization          = this.Initialize();
        }
Пример #2
0
 public JitAccessProvider(IDirectory directory, ILogger <JitAccessProvider> logger, IOptionsSnapshot <JitConfigurationOptions> options, IDiscoveryServices discoveryServices)
 {
     this.directory         = directory;
     this.logger            = logger;
     this.options           = options.Value;
     this.discoveryServices = discoveryServices;
 }
 /// <summary>
 /// Create handler
 /// </summary>
 /// <param name="discovery"></param>
 /// <param name="processor"></param>
 /// <param name="logger"></param>
 public DiscoveryRequestHandler(IDiscoveryServices discovery,
                                ITaskProcessor processor, ILogger logger)
 {
     _logger    = logger ?? throw new ArgumentNullException(nameof(logger));
     _discovery = discovery ?? throw new ArgumentNullException(nameof(discovery));
     _processor = processor ?? throw new ArgumentNullException(nameof(processor));
 }
Пример #4
0
 public ActiveDirectoryGroup(DirectoryEntry directoryEntry, IDiscoveryServices discoveryServices)
 {
     directoryEntry.ThrowIfNotObjectClass("group");
     this.de = directoryEntry;
     this.de.RefreshCache(PropertiesToGet);
     this.discoveryServices = discoveryServices;
 }
Пример #5
0
 public AuthorizationContextProvider(IOptions <AuthorizationOptions> options, ILogger <AuthorizationContextProvider> logger, IDiscoveryServices discoveryServices)
 {
     this.logger            = logger;
     this.options           = options.Value;
     this.discoveryServices = discoveryServices;
     this.domainCache       = new ConcurrentDictionary <SecurityIdentifier, AuthorizationContextDomainDetails>();
 }
Пример #6
0
 public void TestInitialize()
 {
     this.env = new Mock <IAppPathProvider>();
     this.env.SetupGet(t => t.AppPath).Returns(Environment.CurrentDirectory);
     this.discoveryServices = new DiscoveryServices(Mock.Of <ILogger <DiscoveryServices> >());
     this.directory         = new ActiveDirectory(discoveryServices);
     this.resolver          = new JitAccessGroupResolver(directory, discoveryServices);
 }
Пример #7
0
 public ComputerPrincipalProviderBitLocker(IDiscoveryServices discoveryServices, ILogger <ComputerPrincipalProviderBitLocker> logger)
 {
     this.logger                  = logger;
     this.discoveryServices       = discoveryServices;
     this.ComputerPropertiesToGet = new List <string> {
         "objectSid", "ntSecurityDescriptor"
     };
 }
Пример #8
0
 public void TestInitialize()
 {
     encryptionProvider     = new EncryptionProvider();
     this.discoveryServices = new DiscoveryServices(Mock.Of <ILogger <DiscoveryServices> >());
     directory           = new ActiveDirectory(discoveryServices);
     certificateProvider = new CertificateProvider(Mock.Of <ILogger <CertificateProvider> >(), discoveryServices);
     provider            = new LithnetAdminPasswordProvider(Mock.Of <ILogger <LithnetAdminPasswordProvider> >(), encryptionProvider, certificateProvider);
 }
Пример #9
0
 public AuthorizationContextDomainDetails(SecurityIdentifier sid, string domainDnsName, IDiscoveryServices discoveryServices)
 {
     this.SecurityIdentifier  = sid;
     this.discoveryServices   = discoveryServices;
     this.DomainDnsName       = domainDnsName;
     this.IsInCurrentForest   = this.GetIsInCurrentForest();
     this.IsRemoteOneWayTrust = this.GetIsOneWayTrust();
 }
Пример #10
0
 public JitGroupMappingViewModelFactory(Func <IModelValidator <JitGroupMappingViewModel> > validator, IObjectSelectionProvider objectSelectionProvider, ILogger <JitGroupMappingViewModel> logger, IDialogCoordinator dialogCoordinator, IDiscoveryServices discoveryServices)
 {
     this.objectSelectionProvider = objectSelectionProvider;
     this.validator         = validator;
     this.logger            = logger;
     this.dialogCoordinator = dialogCoordinator;
     this.discoveryServices = discoveryServices;
 }
Пример #11
0
 public ComputerPrincipalProviderLaps(IDiscoveryServices discoveryServices, ILogger <ComputerPrincipalProviderLaps> logger)
 {
     this.logger                  = logger;
     this.discoveryServices       = discoveryServices;
     this.ComputerPropertiesToGet = new List <string>()
     {
         "objectSid", "ntSecurityDescriptor", "msDS-PrincipalName"
     };
 }
 public JitGroupMappingViewModel(JitGroupMapping model, ILogger <JitGroupMappingViewModel> logger, IDialogCoordinator dialogCoordinator, IModelValidator <JitGroupMappingViewModel> validator, IDiscoveryServices discoveryServices, IObjectSelectionProvider objectSelectionProvider)
 {
     this.logger                  = logger;
     this.dialogCoordinator       = dialogCoordinator;
     this.Model                   = model;
     this.objectSelectionProvider = objectSelectionProvider;
     this.Validator               = validator;
     this.discoveryServices       = discoveryServices;
 }
Пример #13
0
 public ActiveDirectoryForestSchemaViewModel(Forest forest, ILogger <ActiveDirectoryForestSchemaViewModel> logger, IDiscoveryServices discoveryServices)
 {
     this.Forest            = forest;
     this.logger            = logger;
     this.discoveryServices = discoveryServices;
     this.LithnetAccessManagerSchemaPresentText = "Checking...";
     this.LithnetSchemaLookupInProgress         = true;
     this.MsLapsSchemaPresentText      = "Checking...";
     this.MsLapsSchemaLookupInProgress = true;
 }
Пример #14
0
        public void TestInitialize()
        {
            this.discoveryServices = new DiscoveryServices(Global.LogFactory.CreateLogger <DiscoveryServices>());
            directory = new ActiveDirectory(discoveryServices);
            options   = new JitConfigurationOptions
            {
                DynamicGroupMappings = new List <JitDynamicGroupMapping>()
            };

            logger = Global.LogFactory.CreateLogger <JitAccessProvider>();
        }
        public void TestInitialize()
        {
            this.discoveryServices = new DiscoveryServices(Mock.Of <ILogger <DiscoveryServices> >());
            directory     = new ActiveDirectory(discoveryServices);
            psLogger      = Global.LogFactory.CreateLogger <PowerShellSecurityDescriptorGenerator>();
            sessionLogger = Global.LogFactory.CreateLogger <CachedPowerShellSessionProvider>();

            var provider = new TestPathProvider();
            var sessionp = new CachedPowerShellSessionProvider(provider, sessionLogger);

            generator = new PowerShellSecurityDescriptorGenerator(psLogger, sessionp);
        }
 public ImportWizardImportContainerViewModel(ILogger <ImportWizardImportContainerViewModel> logger, IDialogCoordinator dialogCoordinator, IModelValidator <ImportWizardImportContainerViewModel> validator, IObjectSelectionProvider objectSelectionProvider, IDiscoveryServices discoveryServices, IDirectory directory, IWindowsServiceProvider windowsServiceProvider, IShellExecuteProvider shellExecuteProvider)
 {
     this.logger                  = logger;
     this.dialogCoordinator       = dialogCoordinator;
     this.discoveryServices       = discoveryServices;
     this.objectSelectionProvider = objectSelectionProvider;
     this.directory               = directory;
     this.Validator               = validator;
     this.windowsServiceProvider  = windowsServiceProvider;
     this.shellExecuteProvider    = shellExecuteProvider;
     this.Initialization          = this.Initialize();
 }
 /// <summary>
 /// Create controller with service
 /// </summary>
 /// <param name="supervisor"></param>
 /// <param name="browse"></param>
 /// <param name="discover"></param>
 /// <param name="activator"></param>
 /// <param name="nodes"></param>
 /// <param name="historian"></param>
 /// <param name="publisher"></param>
 public SupervisorMethodsController(ISupervisorServices supervisor,
                                    IDiscoveryServices discover, IActivationServices <string> activator,
                                    INodeServices <EndpointModel> nodes, IHistoricAccessServices <EndpointModel> historian,
                                    IBrowseServices <EndpointModel> browse, IPublishServices <EndpointModel> publisher)
 {
     _supervisor = supervisor ?? throw new ArgumentNullException(nameof(supervisor));
     _browse     = browse ?? throw new ArgumentNullException(nameof(browse));
     _historian  = historian ?? throw new ArgumentNullException(nameof(historian));
     _nodes      = nodes ?? throw new ArgumentNullException(nameof(nodes));
     _publisher  = publisher ?? throw new ArgumentNullException(nameof(publisher));
     _discover   = discover ?? throw new ArgumentNullException(nameof(discover));
     _activator  = activator ?? throw new ArgumentNullException(nameof(activator));
 }
Пример #18
0
        public JitGroupWorker(ILogger <JitGroupWorker> logger, IOptions <JitConfigurationOptions> options, IJitAccessGroupResolver groupResolver, IDirectory directory, IDiscoveryServices discoveryServices)
        {
            this.logger            = logger;
            this.options           = options.Value;
            this.groupResolver     = groupResolver;
            this.directory         = directory;
            this.discoveryServices = discoveryServices;
            this.fullSyncInterval  = Math.Max(1, this.options.FullSyncInterval ?? 60);
            this.deltaSyncInterval = Math.Max(0, this.options.DeltaSyncInterval ?? 1);

            if (this.deltaSyncInterval >= this.fullSyncInterval)
            {
                this.deltaSyncInterval = 0;
            }

            this.timerInterval = this.deltaSyncInterval <= 0 ? this.fullSyncInterval : this.deltaSyncInterval;
        }
Пример #19
0
 public SecurityDescriptorTargetViewModelFactory(IDialogCoordinator dialogCoordinator, IAppPathProvider appPathProvider, INotificationChannelSelectionViewModelFactory channelSelectionViewModelFactory, IFileSelectionViewModelFactory fileSelectionViewModelFactory, ILogger <SecurityDescriptorTargetViewModel> logger, IDiscoveryServices discoveryServices, IDomainTrustProvider domainTrustProvider, IDirectory directory, ILocalSam localsam, IObjectSelectionProvider objectSelectionProvider, Func <IModelValidator <SecurityDescriptorTargetViewModel> > validator, ScriptTemplateProvider scriptTemplateProvider, IAmsLicenseManager licenseManager, IShellExecuteProvider shellExecuteProvider)
 {
     this.dialogCoordinator = dialogCoordinator;
     this.appPathProvider   = appPathProvider;
     this.channelSelectionViewModelFactory = channelSelectionViewModelFactory;
     this.fileSelectionViewModelFactory    = fileSelectionViewModelFactory;
     this.logger                  = logger;
     this.directory               = directory;
     this.discoveryServices       = discoveryServices;
     this.domainTrustProvider     = domainTrustProvider;
     this.localSam                = localsam;
     this.objectSelectionProvider = objectSelectionProvider;
     this.validator               = validator;
     this.scriptTemplateProvider  = scriptTemplateProvider;
     this.licenseManager          = licenseManager;
     this.shellExecuteProvider    = shellExecuteProvider;
 }
Пример #20
0
        public void TestInitialize()
        {
            this.discoveryServices = new DiscoveryServices(Mock.Of <ILogger <DiscoveryServices> >());
            directory  = new ActiveDirectory(discoveryServices);
            cache      = new AuthorizationInformationMemoryCache();
            logger     = Global.LogFactory.CreateLogger <AuthorizationInformationBuilder>();
            powershell = Mock.Of <IPowerShellSecurityDescriptorGenerator>();
            var mockLicenseManager = new Mock <IAmsLicenseManager>();

            mockLicenseManager.Setup(l => l.IsEnterpriseEdition()).Returns(true);
            mockLicenseManager.Setup(l => l.IsFeatureCoveredByFullLicense(It.IsAny <LicensedFeatures>())).Returns(true);
            mockLicenseManager.Setup(l => l.IsFeatureEnabled(It.IsAny <LicensedFeatures>())).Returns(true);
            this.licenseManager = mockLicenseManager.Object;

            targetDataProvider           = new ComputerTargetProvider(directory, new TargetDataProvider(new TargetDataCache(), Global.LogFactory.CreateLogger <TargetDataProvider>()), Global.LogFactory.CreateLogger <ComputerTargetProvider>());
            authorizationContextProvider = new AuthorizationContextProvider(Mock.Of <IOptions <AuthorizationOptions> >(), Global.LogFactory.CreateLogger <AuthorizationContextProvider>(), discoveryServices);
        }
        protected override void BeginProcessing()
        {
            this.logFactory            = Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory.Instance;
            this.discoveryServices     = new DiscoveryServices(logFactory.CreateLogger <DiscoveryServices>());
            this.certificateProvider   = new CertificateProvider(logFactory.CreateLogger <CertificateProvider>(), discoveryServices);
            this.encryptionProvider    = new EncryptionProvider();
            this.adminPasswordProvider = new LithnetAdminPasswordProvider(logFactory.CreateLogger <LithnetAdminPasswordProvider>(), encryptionProvider, certificateProvider);
            this.directory             = new ActiveDirectory(discoveryServices);

            if (this.PfxCertificateFile != null)
            {
                this.certificate = new X509Certificate2(this.PfxCertificateFile, this.PfxCertificateFilePassword);
            }
            else
            {
                this.certificate = null;
            }
        }
Пример #22
0
        public JitConfigurationViewModel(JitConfigurationOptions jitOptions, IDialogCoordinator dialogCoordinator, IJitGroupMappingViewModelFactory groupMappingFactory, INotifyModelChangedEventPublisher eventPublisher, IJitDomainStatusViewModelFactory jitDomainStatusFactory, IWindowsServiceProvider windowsServiceProvider, IShellExecuteProvider shellExecuteProvider, IDomainTrustProvider domainTrustProvider, IDiscoveryServices discoveryServices, IObjectSelectionProvider objectSelectionProvider, IScriptTemplateProvider scriptTemplateProvider)
        {
            this.shellExecuteProvider    = shellExecuteProvider;
            this.dialogCoordinator       = dialogCoordinator;
            this.jitOptions              = jitOptions;
            this.groupMappingFactory     = groupMappingFactory;
            this.jitDomainStatusFactory  = jitDomainStatusFactory;
            this.windowsServiceProvider  = windowsServiceProvider;
            this.eventPublisher          = eventPublisher;
            this.domainTrustProvider     = domainTrustProvider;
            this.discoveryServices       = discoveryServices;
            this.objectSelectionProvider = objectSelectionProvider;
            this.scriptTemplateProvider  = scriptTemplateProvider;

            this.DisplayName   = "Just-in-time access";
            this.GroupMappings = new BindableCollection <JitGroupMappingViewModel>();
            this.Domains       = new BindableCollection <JitDomainStatusViewModel>();
        }
Пример #23
0
        public LapsConfigurationViewModel(IDialogCoordinator dialogCoordinator, ICertificateProvider certificateProvider, IX509Certificate2ViewModelFactory certificate2ViewModelFactory, IWindowsServiceProvider windowsServiceProvider, ILogger <LapsConfigurationViewModel> logger, IShellExecuteProvider shellExecuteProvider, IDomainTrustProvider domainTrustProvider, IDiscoveryServices discoveryServices, IScriptTemplateProvider scriptTemplateProvider, ICertificatePermissionProvider certPermissionProvider, DataProtectionOptions dataProtectionOptions, INotifyModelChangedEventPublisher eventPublisher)
        {
            this.shellExecuteProvider         = shellExecuteProvider;
            this.certificateProvider          = certificateProvider;
            this.certificate2ViewModelFactory = certificate2ViewModelFactory;
            this.dialogCoordinator            = dialogCoordinator;
            this.windowsServiceProvider       = windowsServiceProvider;
            this.logger = logger;
            this.domainTrustProvider    = domainTrustProvider;
            this.discoveryServices      = discoveryServices;
            this.scriptTemplateProvider = scriptTemplateProvider;
            this.dataProtectionOptions  = dataProtectionOptions;
            this.eventPublisher         = eventPublisher;

            this.Forests = new List <Forest>();
            this.AvailableCertificates  = new BindableCollection <X509Certificate2ViewModel>();
            this.DisplayName            = "Local admin passwords";
            this.certPermissionProvider = certPermissionProvider;
        }
Пример #24
0
        public HostingViewModel(HostingOptions model, IDialogCoordinator dialogCoordinator, IWindowsServiceProvider windowsServiceProvider, ILogger <HostingViewModel> logger, IModelValidator <HostingViewModel> validator, IAppPathProvider pathProvider, INotifyModelChangedEventPublisher eventPublisher, ICertificateProvider certProvider, IShellExecuteProvider shellExecuteProvider, IEventAggregator eventAggregator, IDirectory directory, IScriptTemplateProvider scriptTemplateProvider, ICertificatePermissionProvider certPermissionProvider, IRegistryProvider registryProvider, ISecretRekeyProvider rekeyProvider, IObjectSelectionProvider objectSelectionProvider, IDiscoveryServices discoveryServices, IAmsLicenseManager licenseManager, IApplicationUpgradeProvider appUpgradeProvider, IHttpSysConfigurationProvider certificateBindingProvider, IFirewallProvider firewallProvider)
        {
            this.logger                     = logger;
            this.pathProvider               = pathProvider;
            this.OriginalModel              = model;
            this.certProvider               = certProvider;
            this.dialogCoordinator          = dialogCoordinator;
            this.windowsServiceProvider     = windowsServiceProvider;
            this.shellExecuteProvider       = shellExecuteProvider;
            this.eventAggregator            = eventAggregator;
            this.Validator                  = validator;
            this.directory                  = directory;
            this.scriptTemplateProvider     = scriptTemplateProvider;
            this.certPermissionProvider     = certPermissionProvider;
            this.registryProvider           = registryProvider;
            this.rekeyProvider              = rekeyProvider;
            this.objectSelectionProvider    = objectSelectionProvider;
            this.discoveryServices          = discoveryServices;
            this.licenseManager             = licenseManager;
            this.appUpgradeProvider         = appUpgradeProvider;
            this.certificateBindingProvider = certificateBindingProvider;
            this.firewallProvider           = firewallProvider;

            this.WorkingModel        = this.CloneModel(model);
            this.Certificate         = this.certificateBindingProvider.GetCertificate();
            this.OriginalCertificate = this.Certificate;
            this.ServiceAccount      = this.windowsServiceProvider.GetServiceAccountSid();
            this.ServiceStatus       = this.windowsServiceProvider.Status.ToString();
            this.DisplayName         = "Web hosting";

            this.licenseManager.OnLicenseDataChanged += delegate
            {
                this.NotifyOfPropertyChange(nameof(this.IsEnterpriseEdition));
                this.NotifyOfPropertyChange(nameof(this.IsStandardEdition));
            };

            eventPublisher.Register(this);
        }
Пример #25
0
 public void TestInitialize()
 {
     sam = new LocalSam(Mock.Of <ILogger <LocalSam> >());
     this.discoveryServices = new DiscoveryServices(Mock.Of <ILogger <DiscoveryServices> >());
     directory = new ActiveDirectory(discoveryServices);
 }
Пример #26
0
 public JitAccessGroupResolver(IDirectory directory, IDiscoveryServices discoveryServices)
 {
     this.directory         = directory;
     this.discoveryServices = discoveryServices;
 }
Пример #27
0
 public ActiveDirectory(IDiscoveryServices discoveryServices)
 {
     this.discoveryServices = discoveryServices;
 }
Пример #28
0
 public void TestInitialize()
 {
     this.discoveryServices = new DiscoveryServices(Mock.Of <ILogger <DiscoveryServices> >());
     dummyLogger            = new Mock <ILogger>();
     this.directory         = new ActiveDirectory(this.discoveryServices);
 }
Пример #29
0
 /// <summary>
 /// Create controller with service
 /// </summary>
 /// <param name="discover"></param>
 public DiscoveryMethodsController(IDiscoveryServices discover)
 {
     _discover = discover ?? throw new ArgumentNullException(nameof(discover));
 }
 public ObjectSelectionProvider(IDiscoveryServices discoveryServices, IDomainTrustProvider domainTrustProvider)
 {
     this.discoveryServices   = discoveryServices;
     this.domainTrustProvider = domainTrustProvider;
 }