Exemple #1
0
        private static string GetAndValidateApplianceAddress()
        {
            string  applianceAddress = null;
            JObject response         = null;
            var     isValid          = false;

            while (response == null && !isValid)
            {
                applianceAddress = GetSettingInput("Safeguard Appliance Address", SafeguardAppliance);

                if (string.IsNullOrEmpty(applianceAddress))
                {
                    return(applianceAddress);
                }

                isValid = SafeguardRestApiClient.ValidateSafeguardApplianceAddress(applianceAddress, out response);
            }

            Console.WriteLine($"\tAppliance {response["Name"]} was found at {applianceAddress}");

            return(applianceAddress);
        }
        bool InitSafeguardClient()
        {
            Log.Info("Initializing Safeguard Client");

            if (Config.SafeguardAppliance == null)
            {
                Log.Error("Config value for SafeguardAppliance must be set hostname or IP address");
                return(false);
            }

            ISafeguardConnection safeguardConnection = null;

            try
            {
                if (Config.SafeguardCertificateThumbprint != null)
                {
                    safeguardConnection = Safeguard.Connect(Config.SafeguardAppliance, Config.SafeguardCertificateThumbprint, 3, true);
                }
                else if (Config.SafeguardCertificateFile != null)
                {
                    safeguardConnection = Safeguard.Connect(Config.SafeguardAppliance, Config.SafeguardCertificateFile, Config.SafeguardCertificatePassword, 3, true);
                }
                else if (Config.SafeguardUsername != null && Config.SafeguardPassword != null)
                {
                    safeguardConnection = Safeguard.Connect(Config.SafeguardAppliance, "Local", Config.SafeguardUsername, Config.SafeguardPassword, 3, true);
                }
                else
                {
                    Log.Error("Missing Safeguard credentials.  Please edit configuration to set one of: SafeguardCertificateFile, SafeguardCertificateThumbprint or SafeguardUsername");
                    return(false);
                }

                SafeguardClient = new SafeguardRestApiClient(safeguardConnection);
                var user = SafeguardClient.GetCurrentUser();
                Log.Info("Connected to Safeguard as: " + user.Username);

                if (!user.AdminRoles.Contains("Auditor"))
                {
                    Log.Error($"{user.Username} does not have AdminRole: \"Auditor\"");
                    return(false);
                }

                if (user.AdminRoles.Count() > 1)
                {
                    Log.Warn($"{user.Username} has additional Admin Roles. Only \"Auditor\" is required.");
                }

                var eventSubscriptions = SafeguardClient.GetEventSubscriptionsForUser(user);
                if (eventSubscriptions.Where(e => e.Description == "ARSJITAccess").Count() == 0)
                {
                    var eventSubscription = new SafeguardEventSubscription()
                    {
                        UserId      = user.Id,
                        Description = "ARSJITAccess",
                        Type        = "Signalr",
                        Events      = Events
                    };

                    SafeguardClient.CreateEventSubscription(eventSubscription);
                }

                return(true);
            }
            catch (SafeguardDotNetException e)
            {
                Log.Error(e.Message);
            }
            return(false);
        }