Пример #1
0
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Update(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig cfg = ManagementService.Config;

            cfg.AdminContact             = AdminContact;
            cfg.IsDirty                  = IsDirty;
            cfg.DeliveryWindow           = DeliveryWindow;
            cfg.OTPProvider.TOTPShadows  = TOTPShadows;
            cfg.MailProvider.Enabled     = MailEnabled;
            cfg.ExternalProvider.Enabled = SMSEnabled;
            cfg.OTPProvider.Enabled      = AppsEnabled;
            cfg.AzureProvider.Enabled    = AzureEnabled;
            // cfg.BiometricsEnabled = false;
            cfg.DefaultPin            = DefaultPin;
            cfg.PinLength             = PinLength;
            cfg.OTPProvider.Algorithm = Algorithm;
            cfg.Issuer               = Issuer;
            cfg.UseActiveDirectory   = UseActiveDirectory;
            cfg.CustomUpdatePassword = CustomUpdatePassword;
            cfg.DefaultCountryCode   = DefaultCountryCode;
            cfg.AdminContact         = AdminContact;
            cfg.UserFeatures         = UserFeatures;
            cfg.AdvertisingDays      = AdvertisingDays;
            ManagementService.ADFSManager.WriteConfiguration(host);
        }
Пример #2
0
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Load(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig cfg = ManagementService.Config;

            AdminContact         = cfg.AdminContact;
            IsDirty              = cfg.IsDirty;
            DeliveryWindow       = cfg.DeliveryWindow;
            TOTPShadows          = cfg.OTPProvider.TOTPShadows;
            MailEnabled          = cfg.MailProvider.Enabled;
            SMSEnabled           = cfg.ExternalProvider.Enabled;
            AppsEnabled          = cfg.OTPProvider.Enabled;
            AzureEnabled         = cfg.AzureProvider.Enabled;
            BiometricsEnabled    = false;
            DefaultPin           = cfg.DefaultPin;
            PinLength            = cfg.PinLength;
            Algorithm            = cfg.OTPProvider.Algorithm;
            Issuer               = cfg.Issuer;
            UseActiveDirectory   = cfg.UseActiveDirectory;
            CustomUpdatePassword = cfg.CustomUpdatePassword;
            DefaultCountryCode   = cfg.DefaultCountryCode;
            AdminContact         = cfg.AdminContact;
            UserFeatures         = cfg.UserFeatures;
            AdvertisingDays      = cfg.AdvertisingDays;
        }
Пример #3
0
        /// <summary>
        /// GetSIDsInformations method implmentation
        /// </summary>
        public static SIDsParametersRecord GetSIDsInformations(MFAConfig config)
        {
            // if (ClientSIDsProxy.Loaded)
            //     return ClientSIDsProxy.Record;
            WebAdminClient manager = new WebAdminClient();

            manager.Initialize();
            try
            {
                IWebAdminServices client = manager.Open();
                try
                {
                    return(client.GetSIDsInformations(GetServers(config)));
                }
                catch (Exception)
                {
                    return(new SIDsParametersRecord()
                    {
                        Loaded = false
                    });
                }
                finally
                {
                    manager.Close(client);
                }
            }
            finally
            {
                manager.UnInitialize();
            }
        }
        /// <summary>
        /// GetAdministrativeACL method implmentation
        /// </summary>
        public static ACLParametersRecord GetAdministrativeACL(MFAConfig config)
        {
            WebAdminClient manager = new WebAdminClient();

            try
            {
                manager.Initialize();
                IWebAdminServices client = manager.Open();
                try
                {
                    return(client.GetAdministrativeACL(config.Hosts.ActiveDirectoryHost.DomainName, config.Hosts.ActiveDirectoryHost.Account, config.Hosts.ActiveDirectoryHost.Password, Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + Path.DirectorySeparatorChar + "MFA"));
                }
                catch (Exception)
                {
                    manager.UnInitialize();
                    return(new ACLParametersRecord()
                    {
                        Loaded = false
                    });
                }
                finally
                {
                    manager.Close(client);
                }
            }
            catch (Exception)
            {
                return(new ACLParametersRecord()
                {
                    Loaded = false
                });
            }
        }
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Update(PSHost host)
        {
            ManagementAdminService.Initialize(true);
            MFAConfig cfg = ManagementAdminService.ADFSManager.Config;

            cfg.AdminContact         = AdminContact;
            cfg.IsDirty              = IsDirty;
            cfg.RefreshScan          = RefreshScan;
            cfg.DeliveryWindow       = DeliveryWindow;
            cfg.TOTPShadows          = TOTPShadows;
            cfg.MailEnabled          = MailEnabled;
            cfg.SMSEnabled           = SMSEnabled;
            cfg.AppsEnabled          = AppsEnabled;
            cfg.Algorithm            = Algorithm;
            cfg.Issuer               = Issuer;
            cfg.UseActiveDirectory   = UseActiveDirectory;
            cfg.CustomUpdatePassword = CustomUpdatePassword;
            cfg.DefaultCountryCode   = DefaultCountryCode;
            cfg.AdminContact         = AdminContact;
            cfg.UserFeatures         = UserFeatures;
            cfg.AdvertisingDays      = AdvertisingDays;
            ManagementAdminService.ADFSManager.WriteConfiguration(host);
            using (MailSlotClient mailslot = new MailSlotClient())
            {
                mailslot.SendNotification(0xAA);
            }
        }
Пример #6
0
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Update(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig cfg  = ManagementService.Config;
            SendMail  mail = cfg.SendMail;

            cfg.IsDirty   = IsDirty;
            mail.From     = From;
            mail.UserName = UserName;
            mail.Password = Password;
            mail.Host     = Host;
            mail.Port     = Port;
            mail.UseSSL   = UseSSL;
            mail.Company  = Company;
            mail.MailOTPContent.Clear();
            foreach (FlatConfigMailFileName itm in MailOTPContent)
            {
                mail.MailOTPContent.Add((SendMailFileName)itm);
            }
            mail.MailAdminContent.Clear();
            foreach (FlatConfigMailFileName itm in MailAdminContent)
            {
                mail.MailAdminContent.Add((SendMailFileName)itm);
            }
            mail.MailKeyContent.Clear();
            foreach (FlatConfigMailFileName itm in MailKeyContent)
            {
                mail.MailKeyContent.Add((SendMailFileName)itm);
            }
            ManagementService.ADFSManager.WriteConfiguration(host);
        }
Пример #7
0
        /// <summary>
        /// SetTemplate method implmentation
        /// </summary>
        public void SetTemplate(PSHost host, FlatTemplateMode mode)
        {
            ManagementService.Initialize(true);
            MFAConfig cfg = ManagementService.Config;

            switch (mode)
            {
            case FlatTemplateMode.Free:
                cfg.UserFeatures = (UserFeaturesOptions.BypassDisabled | UserFeaturesOptions.BypassUnRegistered | UserFeaturesOptions.AllowManageOptions | UserFeaturesOptions.AllowChangePassword);
                break;

            case FlatTemplateMode.Open:
                cfg.UserFeatures = (UserFeaturesOptions.BypassDisabled | UserFeaturesOptions.AllowUnRegistered | UserFeaturesOptions.AllowManageOptions | UserFeaturesOptions.AllowChangePassword);
                break;

            case FlatTemplateMode.Default:
                cfg.UserFeatures = (UserFeaturesOptions.AllowDisabled | UserFeaturesOptions.AllowUnRegistered | UserFeaturesOptions.AllowManageOptions | UserFeaturesOptions.AllowChangePassword);
                break;

            case FlatTemplateMode.Managed:
                cfg.UserFeatures = (UserFeaturesOptions.BypassDisabled | UserFeaturesOptions.AllowUnRegistered | UserFeaturesOptions.AllowProvideInformations | UserFeaturesOptions.AllowChangePassword);
                break;

            case FlatTemplateMode.Strict:
                cfg.UserFeatures = (UserFeaturesOptions.AllowProvideInformations);
                break;

            case FlatTemplateMode.Administrative:
                cfg.UserFeatures = (UserFeaturesOptions.AdministrativeMode);
                break;
            }
            ManagementService.ADFSManager.WriteConfiguration(host);
        }
Пример #8
0
        /// <summary>
        /// Initialize method implementation
        /// </summary>
        public void Initialize(MFAConfig config)
        {
            _cfg = config;
            _connectionstring = config.KeysConfig.ExternalKeyManager.Parameters.Data;
            _validity         = config.KeysConfig.CertificateValidity;
            _ksize            = config.KeysConfig.KeySize;
            _repos            = new CustomKeysRepositoryService(_cfg);
            switch (_ksize)
            {
            case KeySizeMode.KeySize512:
                MAX_PROBE_LEN = 64;
                break;

            case KeySizeMode.KeySize1024:
                MAX_PROBE_LEN = 128;
                break;

            case KeySizeMode.KeySize2048:
                MAX_PROBE_LEN = 256;
                break;

            default:
                MAX_PROBE_LEN = 128;
                break;
            }
        }
Пример #9
0
        /// <summary>
        /// Initialize method implementation
        /// </summary>
        public static void Initialize(MFAConfig config, AuthenticationContext context, Uri request)
        {
            WebThemesClient manager = new WebThemesClient();

            manager.Initialize();
            try
            {
                IWebThemeManager client = manager.Open();
                try
                {
                    WebThemesParametersRecord message = new WebThemesParametersRecord()
                    {
                        Identifier = context.ThemeIdentifier,
                        LCID       = context.Lcid
                    };
                    var servernames = (from server in config.Hosts.ADFSFarm.Servers
                                       select(server.FQDN.ToLower(), server.NodeType.ToLower().Equals("primarycomputer")));

                    Dictionary <string, bool> dic = servernames.ToDictionary(pair => pair.Item1, pair => pair.Item2);
                    string identifier             = string.Empty;
                    if (client.Initialize(dic, message, request.OriginalString, out identifier))
                    {
                        context.ThemeIdentifier = identifier;
                    }
                }
                finally
                {
                    manager.Close(client);
                }
            }
            finally
            {
                manager.UnInitialize();
            }
        }
        /// <summary>
        /// UpgradeServersConfig method implementation (Client)
        /// </summary>
        private void UpgradeServersConfig(NamedPipeRegistryRecord reg)
        {
            NamedPipeRegistryRecord rec = FarmUtilities.InitServerNodeConfiguration(reg);

            MFAConfig      cfg = CFGUtilities.ReadConfiguration(null);
            ADFSServerHost svr = null;

            if (cfg.Hosts.ADFSFarm.Servers.Exists(s => s.FQDN.ToLower().Equals(rec.FQDN.ToLower())))
            {
                svr = cfg.Hosts.ADFSFarm.Servers.Find(s => s.FQDN.ToLower().Equals(rec.FQDN.ToLower()));
                cfg.Hosts.ADFSFarm.Servers.Remove(svr);
            }
            svr                           = new ADFSServerHost();
            svr.FQDN                      = rec.FQDN;
            svr.CurrentVersion            = rec.CurrentVersion;
            svr.CurrentBuild              = rec.CurrentBuild;
            svr.CurrentMajorVersionNumber = rec.CurrentMajorVersionNumber;
            svr.CurrentMinorVersionNumber = rec.CurrentMinorVersionNumber;
            svr.InstallationType          = rec.InstallationType;
            svr.ProductName               = rec.ProductName;
            svr.NodeType                  = rec.NodeType;
            svr.BehaviorLevel             = rec.BehaviorLevel;
            svr.HeartbeatTmeStamp         = rec.HeartbeatTimestamp;
            cfg.Hosts.ADFSFarm.Servers.Add(svr);
            CFGUtilities.WriteConfiguration(null, cfg);

            using (MailSlotClient mailslot = new MailSlotClient())
            {
                mailslot.Text = Environment.MachineName;
                mailslot.SendNotification(NotificationsKind.ConfigurationReload);
            }
        }
        /// <summary>
        /// Initialize method implementation
        /// </summary>
        public static void Initialize(MFAConfig config)
        {
            WebAdminClient manager = new WebAdminClient();

            try
            {
                manager.Initialize();
                IWebAdminServices client = manager.Open();
                try
                {
                    var servernames = (from server in config.Hosts.ADFSFarm.Servers
                                       select(server.FQDN.ToLower(), server.NodeType.ToLower().Equals("primarycomputer")));

                    Dictionary <string, bool> dic = servernames.ToDictionary(pair => pair.Item1, pair => pair.Item2);
                    client.Initialize(dic);
                }
                catch (Exception)
                {
                    manager.UnInitialize();
                    return;
                }
                finally
                {
                    manager.Close(client);
                }
            }
            catch (Exception)
            {
                return;
            }
            return;
        }
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Update(PSHost host)
        {
            ManagementAdminService.Initialize(true);
            MFAConfig cfg  = ManagementAdminService.ADFSManager.Config;
            SendMail  mail = cfg.SendMail;

            cfg.IsDirty   = IsDirty;
            mail.From     = From;
            mail.UserName = UserName;
            mail.Password = Password;
            mail.Host     = Host;
            mail.Port     = Port;
            mail.UseSSL   = UseSSL;
            mail.Company  = Company;
            mail.MailOTPContent.Clear();
            foreach (MMCConfigMailFileName itm in MailOTPContent)
            {
                mail.MailOTPContent.Add((SendMailFileName)itm);
            }
            mail.MailAdminContent.Clear();
            foreach (MMCConfigMailFileName itm in MailAdminContent)
            {
                mail.MailAdminContent.Add((SendMailFileName)itm);
            }
            mail.MailKeyContent.Clear();
            foreach (MMCConfigMailFileName itm in MailKeyContent)
            {
                mail.MailKeyContent.Add((SendMailFileName)itm);
            }
            ManagementAdminService.ADFSManager.WriteConfiguration(host);
            using (MailSlotClient mailslot = new MailSlotClient())
            {
                mailslot.SendNotification(0xAA);
            }
        }
Пример #13
0
        /// <summary>
        /// ResetThemesList method implmentation
        /// </summary>
        public static void ResetThemesList(MFAConfig config)
        {
            WebThemesClient manager = new WebThemesClient();

            manager.Initialize();
            try
            {
                IWebThemeManager client = manager.Open();
                try
                {
                    var servernames = (from server in config.Hosts.ADFSFarm.Servers
                                       select(server.FQDN.ToLower(), server.NodeType.ToLower().Equals("primarycomputer")));

                    Dictionary <string, bool> dic = servernames.ToDictionary(s => s.Item1, s => s.Item2);
                    client.ResetThemesList(dic);
                }
                finally
                {
                    manager.Close(client);
                }
            }
            finally
            {
                manager.UnInitialize();
            }
        }
Пример #14
0
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Load(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig cfg = ManagementService.Config;

            AdminContact           = cfg.AdminContact;
            IsDirty                = cfg.IsDirty;
            DeliveryWindow         = cfg.DeliveryWindow;
            MaxRetries             = cfg.MaxRetries;
            DefaultPin             = cfg.DefaultPin;
            PinLength              = cfg.PinLength;
            Issuer                 = cfg.Issuer;
            UseActiveDirectory     = cfg.UseActiveDirectory;
            CustomUpdatePassword   = cfg.CustomUpdatePassword;
            DefaultCountryCode     = cfg.DefaultCountryCode;
            KeepMySelectedOptionOn = cfg.KeepMySelectedOptionOn;
            ChangeNotificationsOn  = cfg.ChangeNotificationsOn;
            DefaultProviderMethod  = cfg.DefaultProviderMethod;
            ReplayLevel            = cfg.ReplayLevel;
            AdminContact           = cfg.AdminContact;
            UserFeatures           = cfg.UserFeatures;
            AdvertisingDays        = (FlatConfigAdvertising)cfg.AdvertisingDays;
            UseUIPaginated         = cfg.UseUIPaginated;
            UiKind                 = cfg.UiKind;
        }
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Update(PSHost host)
        {
            ManagementAdminService.Initialize(true);
            MFAConfig cfg  = ManagementAdminService.ADFSManager.Config;
            ADDSHost  adds = cfg.Hosts.ActiveDirectoryHost;

            cfg.IsDirty                   = IsDirty;
            adds.Account                  = Account;
            adds.Password                 = adds.Password;
            adds.DomainAddress            = adds.DomainAddress;
            adds.keyAttribute             = KeyAttribute;
            adds.mailAttribute            = MailAttribute;
            adds.methodAttribute          = MethodAttribute;
            adds.notifcheckdateattribute  = NotifCheckDateAttribute;
            adds.notifcreatedateAttribute = NotifCreateDateAttribute;
            adds.notifvalidityAttribute   = NotifValidityAttribute;
            adds.phoneAttribute           = PhoneAttribute;
            adds.totpAttribute            = TOTPAttribute;
            adds.totpEnabledAttribute     = TOTPEnabledAttribute;
            ManagementAdminService.ADFSManager.WriteConfiguration(host);
            using (MailSlotClient mailslot = new MailSlotClient())
            {
                mailslot.SendNotification(0xAA);
            }
        }
Пример #16
0
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Load(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig cfg  = ManagementService.Config;
            SendMail  mail = cfg.SendMail;

            IsDirty  = cfg.IsDirty;
            From     = mail.From;
            UserName = mail.UserName;
            Password = mail.Password;
            Host     = mail.Host;
            Port     = mail.Port;
            UseSSL   = mail.UseSSL;
            Company  = mail.Company;
            MailOTPContent.Clear();
            foreach (SendMailFileName itm in mail.MailOTPContent)
            {
                MailOTPContent.Add((FlatConfigMailFileName)itm);
            }
            MailAdminContent.Clear();
            foreach (SendMailFileName itm in mail.MailAdminContent)
            {
                MailAdminContent.Add((FlatConfigMailFileName)itm);
            }
            MailKeyContent.Clear();
            foreach (SendMailFileName itm in mail.MailKeyContent)
            {
                MailKeyContent.Add((FlatConfigMailFileName)itm);
            }
        }
Пример #17
0
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Update(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig cfg = ManagementService.Config;

            cfg.AdminContact           = AdminContact;
            cfg.IsDirty                = IsDirty;
            cfg.DeliveryWindow         = DeliveryWindow;
            cfg.MaxRetries             = MaxRetries;
            cfg.DefaultPin             = DefaultPin;
            cfg.PinLength              = PinLength;
            cfg.Issuer                 = Issuer;
            cfg.UseActiveDirectory     = UseActiveDirectory;
            cfg.CustomUpdatePassword   = CustomUpdatePassword;
            cfg.KeepMySelectedOptionOn = KeepMySelectedOptionOn;
            cfg.ChangeNotificationsOn  = ChangeNotificationsOn;
            cfg.DefaultProviderMethod  = DefaultProviderMethod;
            cfg.ReplayLevel            = ReplayLevel;
            cfg.DefaultCountryCode     = DefaultCountryCode;
            cfg.AdminContact           = AdminContact;
            cfg.UserFeatures           = UserFeatures;
            cfg.AdvertisingDays        = (ConfigAdvertising)AdvertisingDays;
            cfg.UiKind                 = UiKind;
            cfg.UseUIPaginated         = UseUIPaginated;
            ManagementService.ADFSManager.WriteConfiguration(host);
        }
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Load(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig    cfg  = ManagementService.Config;
            MailProvider mail = cfg.MailProvider;

            IsDirty            = cfg.IsDirty;
            Enabled            = mail.Enabled;
            EnrollWizard       = mail.EnrollWizard;
            EnrollWizardStrict = mail.EnrollWizardStrict;
            From        = mail.From;
            UserName    = mail.UserName;
            Password    = mail.Password;
            Host        = mail.Host;
            Port        = mail.Port;
            UseSSL      = mail.UseSSL;
            Company     = mail.Company;
            PinRequired = mail.PinRequired;
            Anonymous   = mail.Anonymous;
            MailOTPContent.Clear();
            foreach (SendMailFileName itm in mail.MailOTPContent)
            {
                MailOTPContent.Add((FlatConfigMailFileName)itm);
            }
            MailAdminContent.Clear();
            foreach (SendMailFileName itm in mail.MailAdminContent)
            {
                MailAdminContent.Add((FlatConfigMailFileName)itm);
            }
            MailKeyContent.Clear();
            foreach (SendMailFileName itm in mail.MailKeyContent)
            {
                MailKeyContent.Add((FlatConfigMailFileName)itm);
            }
        }
Пример #19
0
        /// <summary>
        /// SetTheme method implementation
        /// </summary>
        internal void SetTheme(PSHost host, int _kind, string _theme, bool _dynparam)
        {
            RegistryVersion reg = new RegistryVersion();

            ManagementService.Initialize(true);
            MFAConfig cfg = ManagementService.Config;

            if (reg.IsWindows2019)
            {
                cfg.UiKind = (ADFSUserInterfaceKind)_kind;
                if ((ADFSUserInterfaceKind)_kind == ADFSUserInterfaceKind.Default)
                {
                    cfg.UseUIPaginated = false;
                }
                else
                {
                    cfg.UseUIPaginated = _dynparam;
                }
                ManagementService.ADFSManager.SetADFSTheme(host, _theme, cfg.UseUIPaginated, true);
                ManagementService.ADFSManager.WriteConfiguration(host);
            }
            else
            {
                cfg.UiKind         = ADFSUserInterfaceKind.Default;
                cfg.UseUIPaginated = false;
                ManagementService.ADFSManager.SetADFSTheme(host, _theme, false, false);
                ManagementService.ADFSManager.WriteConfiguration(host);
            }
        }
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public override void Update(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig    cfg  = ManagementService.Config;
            MailProvider mail = cfg.MailProvider;

            cfg.IsDirty = true;
            CheckUpdates(host);
            mail.Enabled                     = Enabled;
            mail.EnrollWizard                = EnrollWizard;
            mail.ForceWizard                 = ForceWizard;
            mail.From                        = From;
            mail.UserName                    = UserName;
            mail.Password                    = Password;
            mail.Host                        = Host;
            mail.Port                        = Port;
            mail.UseSSL                      = UseSSL;
            mail.Company                     = Company;
            mail.PinRequired                 = PinRequired;
            mail.Anonymous                   = Anonymous;
            mail.DeliveryNotifications       = DeliveryNotifications;
            mail.FullQualifiedImplementation = FullQualifiedImplementation;
            mail.Parameters.Data             = Parameters;

            mail.AllowedDomains.Clear();
            foreach (string itm in AllowedDomains.Domains)
            {
                mail.AllowedDomains.Add(itm);
            }

            mail.BlockedDomains.Clear();
            foreach (string itm in BlockedDomains.Domains)
            {
                mail.BlockedDomains.Add(itm);
            }

            mail.MailOTPContent.Clear();
            foreach (FlatConfigMailFileName itm in MailOTPContent)
            {
                mail.MailOTPContent.Add((SendMailFileName)itm);
            }
            mail.MailAdminContent.Clear();
            foreach (FlatConfigMailFileName itm in MailAdminContent)
            {
                mail.MailAdminContent.Add((SendMailFileName)itm);
            }
            mail.MailKeyContent.Clear();
            foreach (FlatConfigMailFileName itm in MailKeyContent)
            {
                mail.MailKeyContent.Add((SendMailFileName)itm);
            }
            mail.MailNotifications.Clear();
            foreach (FlatConfigMailFileName itm in MailNotifications)
            {
                mail.MailNotifications.Add((SendMailFileName)itm);
            }

            ManagementService.ADFSManager.WriteConfiguration(host);
        }
Пример #21
0
        /// <summary>
        /// GetServers method implementation
        /// </summary>
        private static Dictionary <string, bool> GetServers(MFAConfig config)
        {
            var servernames = (from server in config.Hosts.ADFSFarm.Servers
                               select(server.FQDN.ToLower(), server.NodeType.ToLower().Equals("primarycomputer")));
            Dictionary <string, bool> servers = servernames.ToDictionary(s => s.Item1, s => s.Item2);

            return(servers);
        }
Пример #22
0
        /// <summary>
        /// SetLibraryVersion method implementation
        /// </summary>
        internal void SetLibraryVersion(PSHost host, int version)
        {
            ManagementService.Initialize(true);
            MFAConfig cfg = ManagementService.Config;

            cfg.KeysConfig.KeyVersion = (SecretKeyVersion)version;
            ManagementService.ADFSManager.WriteConfiguration(host);
        }
Пример #23
0
        /// <summary>
        /// SetPolicyTemplate method implmentation
        /// </summary>
        public void SetPolicyTemplate(PSHost host, FlatTemplateMode mode)
        {
            ManagementService.Initialize(true);
            MFAConfig        cfg = ManagementService.Config;
            UserTemplateMode md  = (UserTemplateMode)mode;

            cfg.UserFeatures = cfg.UserFeatures.SetPolicyTemplate(md);
            ManagementService.ADFSManager.WriteConfiguration(host);
        }
        public void Load(PSHost host)
        {
            ManagementAdminService.Initialize(host, true);
            MFAConfig     cfg = ManagementAdminService.ADFSManager.ReadConfiguration(host);
            MFAKeysConfig otp = cfg.KeysConfig;

            this.FullQualifiedImplementation = otp.ExternalKeyManager.FullQualifiedImplementation;
            this.Parameters = otp.ExternalKeyManager.Parameters;
        }
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Load(PSHost host)
        {
            ManagementAdminService.Initialize(host, true);
            MFAConfig     cfg = ManagementAdminService.ADFSManager.ReadConfiguration(host);
            SQLServerHost sql = cfg.Hosts.SQLServerHost;

            IsDirty          = cfg.IsDirty;
            ConnectionString = sql.ConnectionString;
        }
Пример #26
0
 /// <summary>
 /// ConfigurationControl Constructor
 /// </summary>
 public GeneralConfigurationControl(MFAConfig cfg, bool isrunning = true, bool isactive = true)
 {
     _cfg      = cfg;
     _panel    = new Panel();
     _txtpanel = new Panel();
     Initialize(isrunning, isactive);
     BackColor = System.Drawing.SystemColors.Window;
     AutoSize  = false;
 }
Пример #27
0
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Load(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig     cfg = ManagementService.Config;
            SQLServerHost sql = cfg.Hosts.SQLServerHost;

            IsDirty          = cfg.IsDirty;
            ConnectionString = sql.ConnectionString;
        }
Пример #28
0
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public void Update(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig cfg  = ManagementService.Config;
            ADDSHost  adds = cfg.Hosts.ActiveDirectoryHost;

            cfg.IsDirty        = IsDirty;
            adds.Account       = Account;
            adds.Password      = adds.Password;
            adds.DomainAddress = adds.DomainAddress;
            if (!ManagementService.CheckRepositoryAttribute(KeyAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", KeyAttribute));
            }
            adds.keyAttribute = KeyAttribute;
            if (!ManagementService.CheckRepositoryAttribute(MailAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", MailAttribute));
            }
            adds.mailAttribute = MailAttribute;
            if (!ManagementService.CheckRepositoryAttribute(MethodAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", MethodAttribute));
            }
            adds.methodAttribute = MethodAttribute;
            if (!ManagementService.CheckRepositoryAttribute(NotifCheckDateAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", NotifCheckDateAttribute));
            }
            adds.notifcheckdateattribute = NotifCheckDateAttribute;
            if (!ManagementService.CheckRepositoryAttribute(NotifCreateDateAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", NotifCreateDateAttribute));
            }
            adds.notifcreatedateAttribute = NotifCreateDateAttribute;
            if (!ManagementService.CheckRepositoryAttribute(NotifValidityAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", NotifValidityAttribute));
            }
            adds.notifvalidityAttribute = NotifValidityAttribute;
            if (!ManagementService.CheckRepositoryAttribute(PhoneAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", PhoneAttribute));
            }
            adds.phoneAttribute = PhoneAttribute;
            if (!ManagementService.CheckRepositoryAttribute(TOTPAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", TOTPAttribute));
            }
            adds.totpAttribute = TOTPAttribute;
            if (!ManagementService.CheckRepositoryAttribute(TOTPEnabledAttribute, 1))
            {
                throw new ArgumentException(string.Format("Attribute {0} not found in forest schema !", TOTPEnabledAttribute));
            }
            adds.totpEnabledAttribute = TOTPEnabledAttribute;
            ManagementService.ADFSManager.WriteConfiguration(host);
        }
        /// <summary>
        /// Update method implmentation
        /// </summary>
        public override void Load(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig    cfg  = ManagementService.Config;
            MailProvider mail = cfg.MailProvider;

            IsDirty                     = cfg.IsDirty;
            Enabled                     = mail.Enabled;
            EnrollWizard                = mail.EnrollWizard;
            ForceWizard                 = mail.ForceWizard;
            From                        = mail.From;
            UserName                    = mail.UserName;
            Password                    = mail.Password;
            Host                        = mail.Host;
            Port                        = mail.Port;
            UseSSL                      = mail.UseSSL;
            Company                     = mail.Company;
            PinRequired                 = mail.PinRequired;
            Anonymous                   = mail.Anonymous;
            DeliveryNotifications       = mail.DeliveryNotifications;
            FullQualifiedImplementation = mail.FullQualifiedImplementation;
            Parameters                  = mail.Parameters.Data;

            AllowedDomains.Clear();
            foreach (string itm in mail.AllowedDomains)
            {
                AllowedDomains.AddDomain(itm);
            }

            BlockedDomains.Clear();
            foreach (string itm in mail.BlockedDomains)
            {
                BlockedDomains.AddDomain(itm);
            }

            MailOTPContent.Clear();
            foreach (SendMailFileName itm in mail.MailOTPContent)
            {
                MailOTPContent.Add((FlatConfigMailFileName)itm);
            }
            MailAdminContent.Clear();
            foreach (SendMailFileName itm in mail.MailAdminContent)
            {
                MailAdminContent.Add((FlatConfigMailFileName)itm);
            }
            MailKeyContent.Clear();
            foreach (SendMailFileName itm in mail.MailKeyContent)
            {
                MailKeyContent.Add((FlatConfigMailFileName)itm);
            }
            MailNotifications.Clear();
            foreach (SendMailFileName itm in mail.MailNotifications)
            {
                MailNotifications.Add((FlatConfigMailFileName)itm);
            }
        }
Пример #30
0
        /// <summary>
        /// ExportMailTemplates method implementation
        /// </summary>
        public static bool ExportMailTemplates(MFAConfig config, int lcid, Dictionary <string, string> data)
        {
            bool done = false;

            try
            {
                WebAdminClient manager = new WebAdminClient();
                try
                {
                    manager.Initialize();
                    IWebAdminServices client = manager.Open();
                    try
                    {
                        done = client.ExportMailTemplates(GetServers(config), CFGReaderUtilities.GetCryptedConfig(config), lcid, data);
                    }
                    finally
                    {
                        manager.Close(client);
                    }
                }
                finally
                {
                    manager.UnInitialize();
                }

                if (done)
                {
                    char   sep      = Path.DirectorySeparatorChar;
                    string htmlpath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + sep + "MFA" + sep + "MailTemplates" + sep + lcid.ToString();

                    MailProvider mailprov = config.MailProvider;
                    if (!mailprov.MailOTPContent.Exists(c => c.LCID.Equals(lcid)))
                    {
                        mailprov.MailOTPContent.Add(new SendMailFileName(lcid, htmlpath + sep + "MailOTPContent.html"));
                    }
                    if (!mailprov.MailKeyContent.Exists(c => c.LCID.Equals(lcid)))
                    {
                        mailprov.MailKeyContent.Add(new SendMailFileName(lcid, htmlpath + sep + "MailKeyContent.html"));
                    }
                    if (!mailprov.MailAdminContent.Exists(c => c.LCID.Equals(lcid)))
                    {
                        mailprov.MailAdminContent.Add(new SendMailFileName(lcid, htmlpath + sep + "MailAdminContent.html"));
                    }
                    if (!mailprov.MailNotifications.Exists(c => c.LCID.Equals(lcid)))
                    {
                        mailprov.MailNotifications.Add(new SendMailFileName(lcid, htmlpath + sep + "MailNotifications.html"));
                    }
                }
                return(done);
            }
            catch
            {
                return(false);
            }
        }