Introduction - Instructions for Technical Teams
Previously we have experienced some problems trying to force the Vuture E-Card module to connect to InterAction internally over HTTP. We have allowed this in the past to give our clients time to make the necessary updates to connect using HTTPS.
HTTP now has very limited support across the internet, and it is less secure, meaning most popular browsers no longer allow such a connection.
For these reasons, we have not been supporting HTTP since October 2022, requiring our clients to make some changes in order for E-Card to continue to work.
Please read through this article for more information and instructions on how to upgrade your connection to HTTPS.
As described below, the easiest way is to obtain a security certificate for the domain and use it to add a secure binding to IIS. It requires no other changes to InterAction.
The E-Card Wizard
The E-Card Wizard allows InterAction users to select from their InterAction contacts as long as they are already logged into InterAction.
This requires a cross-domain Ajax connection to be set up to allow Vuture to access a user's InterAction data from the E-Card Wizard.
Technical Overview
- Cross Domain Ajax provides a method for connecting Vuture and InterAction through the browser
- Vuture talks directly to the InterAction web client in the browser without using the Internet
- This works by exchanging data between Vuture and InterAction through Cross-Origin Resource headers
Description of Process and Data Flows
- A user logs into both the E-Card Wizard and InterAction Web Client through the same browser window on separate tabs
- The Vuture User requests the InterAction lists they have access to from the Vuture browser tab which can be restricted just to their My Contacts folder if required
- A Cross Domain request is made to the InterAction Web Client from the Vuture browser tab using the current IA credentials
- The IA Lists XML data is returned to the Vuture browser tab and rendered on the page
- The Vuture User selects the List that has the contacts they wish to mail
- A Cross Domain request is made to the IA Web Client to return the Contacts in the selected List
- The Contacts XML is returned to the Vuture browser tab and rendered on the page
- The Vuture User selects the IA Contacts they wish to mail
- When the email is sent, the selected Contacts are posted to your Vuture Server across the internet and the mailing is sent
- A mailing Activity for each contact is logged in the Vuture Queue on your Vuture Server
- When a recipient opens an email, clicks on a link, unsubscribes or if the email bounces, an Activity is written to the Vuture Queue on your Vuture Server
- The Vuture Queue is processed using the normal InterAction connection
Requirements
- A web.config file needs to be copied to the root of the IIS site (%SystemDrive%\inetpub\wwwroot) of the InterAction Application Server that your InterAction users connect to.
- If you already have a web.config file in this location then it will need to be updated as described below
- If you have a separate IA App Server for Vuture and a separate internal IA server for your IA users then you only need to copy the file to the internal server.
- Vx needs the internal URL to this IIS directory e.g. https://MyInterActionServer
- This URL must be over HTTPS
- For cross domain requests to work in the user's browser:
- They need to be logged into the InterAction Web Client in a tab in their browser - if they are not logged in Vuture will prompt them to login and present them with a login box
- They need to be logged into Vuture in another browser tab in the same browser window
- There is no requirement for InterAction to be accessible from the public internet
- Flash is no longer required
- Activities are written back using the normal Vuture queue
Setup and Testing
- Download this web.config file.
- Edit with a text editor and replace https://my_vuture_url with your Wizard URL. This is usually your back-end Vuture URL running over HTTPS e.g. https://mycompany.vuturevx.com or https://mycompany.vuture.net (it should match the domain part of "Admin.System.Wizard.Wizard URL")
- Copy the web.config file to the root of the InterAction IIS site on your InterAction Application Server, which is located in %SystemDrive%\inetpub\wwwroot
- If you have an existing web.config file then edit it to make sure it has the CustomHeaders listed below
The web.config should look like the following
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="https://my_vuture_url"" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
<add name="Access-Control-Allow-Headers" value="X-JSON,X-Prototype-Version,X-Requested-With" />
<add name="Access-Control-Expose-Headers" value="X-JSON" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
For demo environments where you may connect via multiple Vuture instances you can create dynamic CORS headers using the format below. Vary the condition to match the required Vuture Wizard URLs - the example below allows CORS connection from any URL (which should only be used for testing).
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
<add name="Access-Control-Allow-Headers" value="X-JSON,X-Prototype-Version,X-Requested-With,Accept-Encoding" />
<add name="Access-Control-Expose-Headers" value="X-JSON" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
<rewrite>
<outboundRules>
<clear />
<rule name="AddCrossDomainHeader">
<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_ORIGIN}" pattern="(.*)" />
</conditions>
<action type="Rewrite" value="{C:0}" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
E-Card Setup
The E-Card wizard needs to know the local URL of your InterAction that your users use to access InterAction on your local network. This is usually different from the URL that Vuture uses for a normal connection.
Enter this URL as the InterAction Point-to-Point URL either in an existing or new InterAction instance in Admin.System. If you create a new InterAction instance you should setup the external URL with username/password etc. as normal - you can use Export/Import to copy the existing settings. It is simplest to use the existing instance but you might want to use a separate instance if you don't want the eCard content type to be visible for normal sends or you want to vary any of the settings.
A client's local IA URL is normally in the format https://local_server_name/interaction (don't add /home)
|
NOTE: Please make sure that this URL is HTTPS as we do not support connection over HTTP due to browser security settings
The easiest way to enable an internal InterAction URL over HTTPS, if it currently runs over HTTP, is to obtain a security certificate for the domain and use it to add a secure binding to IIS. This requires no other changes to InterAction.
|
Set "Admin.System.Wizard.InterAction Instance" drop-down to the new InterAction instance number that you just updated or setup . NOTE: currently you can only use E-Card and IA with one IA instance.