class IOSConfigProfile::VPNPayload
Attributes
vpn_config[RW]
Hash containing :override_primary, :vpn_type
Public Class Methods
new(config)
click to toggle source
# File lib/ios_config_profile/device/vpn_payload.rb, line 8 def initialize(config) self.vpn_config = config require_attributes :vpn_config merge! vpn_payload end
Private Instance Methods
get_ipsec_config()
click to toggle source
# File lib/ios_config_profile/device/vpn_payload.rb, line 69 def get_ipsec_config config = { "RemoteAddress" => vpn_config[:remote_address], "AuthenticationMethod" => vpn_config[:authentication_method], "XAuthName" => vpn_config[:x_auth_name], "XAuthEnabled" => vpn_config[:x_auth_enabled], "SharedSecret" => vpn_config[:shared_secret], "PayloadCertificateUUID" => vpn_config[:payload_certificate_uuid], "PromptForVPNPIN" => vpn_config[:prompt_for_vpn_pin], } if vpn_config[:authentication_method] == "SharedSecret" config["LocalIdentifier"] = vpn_config[:local_identifier] config["LocalIdentifierType"] = vpn_config[:local_identifier_type] end config end
get_l2tp_config()
click to toggle source
# File lib/ios_config_profile/device/vpn_payload.rb, line 55 def get_l2tp_config { "AuthName" => vpn_config[:auth_name], "AuthPassword" => vpn_config[:auth_password], "TokenCard" => false, "CommRemoteAccess" => vpn_config[:comm_remote_access], "AuthEAPPlugins" => [], "AuthProtocol" => [], "CCPMPPE40Enabled" => false, "CCPMPPE128Enabled" => false, "CCPEnabled" => false, } end
get_vendor_config()
click to toggle source
# File lib/ios_config_profile/device/vpn_payload.rb, line 39 def get_vendor_config if vpn_config[:vpn_type] == "L2TP" get_l2tp_config elsif vpn_config[:vpn_type] == "PPTP" raise NotImplementedError elsif vpn_config[:vpn_type] == "IPSec" get_ipsec_config elsif vpn_config[:vpn_type] == "IKEv2" raise NotImplementedError elsif vpn_config[:vpn_type] == "AlwaysOn" raise NotImplementedError else raise NotImplementedError end end
vpn_payload()
click to toggle source
# File lib/ios_config_profile/device/vpn_payload.rb, line 16 def vpn_payload { "PayloadContent" => [{ "PayloadType" => "com.apple.vpn.managed", "PayloadIdentifier" => "#{IOSConfigProfile.root_domain}.vpn", "PayloadDescription" => "Set up VPN networking access", "PayloadUUID" => uuid, "PayloadVersion" => 1, "UserDefinedName" => "VPN", "OverridePrimary" => vpn_config[:override_primary], "VPNType" => vpn_config[:vpn_type], "OnDemandEnabled" => 0, "OnDemandRules" => [], "VendorConfig" => get_vendor_config, }], "PayloadType" => "Configuration", "PayloadDisplayName" => "#{IOSConfigProfile.organization} VPN Configuration", "PayloadIdentifier" => "#{IOSConfigProfile.root_domain}.vpn", "PayloadUUID" => uuid, "PayloadVersion" => 1, } end