XLCubed Web Proxy

XLCubed Excel and Web editions can connect to the XLCubed Web Proxy (Enterprise Plus customers only). This allows a set of cube and relational connections to be published to XLCubed clients.

Setup

  • Run the setup program while logged onto the server with administrator permissions.
  • This will create a new web application in IIS (XLCubedWebProxy, by default).
  • You will need to install the prerequisites as for XLCubed Web Edition.

Security Configuration

Select the XLCubedWebProxy directory and open the "Authentication" section.

XLCubedWebConfigIIS6Authentication.png

Enable the desired authentication options, and ensure that the others are disabled.

XLCubedWebConfigIIS6AuthenticationWindows.png

If you do not have these options you must add them from Control Panel -> Programs -> Turn Windows features on or off

Web.config

Windows Authentication

Authentication Using HTTPS web.config: on all bindings
Windows Yes <security mode="Transport"> <transport clientCredentialType="Windows"/> </security>
Windows No <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows"/> </security>

Basic Authentication

Authentication Using HTTPS? web.config – on all bindings
Basic Yes <security mode="Transport"> <transport clientCredentialType="Basic"/> </security>
Basic No <security mode="TransportCredentialOnly"> <transport clientCredentialType="Basic"/> </security>

Anonymous Authentication

Authentication Using HTTPS web.config: on all bindings
Anonymous Yes <security mode="Transport"> <transport clientCredentialType="None"/> </security>
Anonymous No <security mode="TransportCredentialOnly"> <transport clientCredentialType="None"/> </security>

Single Sign-on

To set up Single sign-on configurations for the XLCubed Web Proxy, place the provider metadata XML file in the Auth folder (usually at C:\inetpub\wwwroot\XLCubedWebProxy\Xml\Auth), renaming it to authidentity.xml. The folder may need to be created it if it doesn't exist).

The following keys should be defined in the web.config, underneath the <configuration><appSettings> element:

AuthServiceProviderLogin
true to use Single Sign-on, or false otherwise (the default)
AuthServicePostBack (optional)
The authentication service requires a postback instead of a redirect
AuthValidationProc (optional)
A custom stored procedure to execute in the SQL Repository to validate the identity. See this article for more details.

For example, the following would enable the authidentity.xml file that you had installed, but no include the custom postback or validation procedure.

 <configuration>
   <appSettings>
     <add key="AuthServiceProviderLogin" value="true" />
   </appSettings>
 </configuration>

The web.config can then be set to Anonymous Authentication as above.

Proxy Configuration

In the bin folder in the installation directory (usually at C:\inetpub\wwwroot\XLCubedWebProxy\bin will be the proxy configuration file, XLCubed.Data.Proxy.xml.

This will contain a <config> XML element, containing one multidimensionalserver or relationalserver, then elements for each connection that should be made available through the proxy. Examples are given below.

Multi-dimensional connections

 <multidimensionalserver>
   <databases>
     <database name="proxy database">
       <cubes>
         <cube name="my cube">
           <connection id="1" name="">
             <type>AnalysisServices</type>
             <variable type="String" name="server">
               <value>realServerName</value>
             </variable>
             <variable type="String" name="database">
               <value>realDatabaseName</value>
             </variable>
             <variable type="String" name="cube">
               <value>realCubeName</value>
             </variable>
             <writebacktype>AnalysisServices</writebacktype>
             <writebacksetting />
             <nodummyrelationalwriteback>0</nodummyrelationalwriteback>
             <variable type="Boolean" name="requirespassword">
               <value>0</value>
             </variable>
             <lastconnected>0001-01-01T00:00:00</lastconnected>
             <savepassword>False</savepassword>
             <props>
               <prop name="MDXMissingMemberMode" value="Error" />
             </props>
           </connection>
         </cube>
       </cubes>
     </database>
   </databases>
 </multidimensionalserver>

Relational connections

 <relationalserver>
   <databases>
     <database name="proxy database">
       <sqlconnection id="1" connectiontype="0">
         <lastconnected>2016-11-16T14:53:24</lastconnected>
         <promptcredentials>False</promptcredentials>
         <variable type="String" name="connectionstring">
           <value>Provider=SQLOLEDB;Data Source=myRealServer;Initial Catalog=myRealDatabase;User Id=connectionUser;Password=SecurePassword</value>
         </variable>
         <authtype>0</authtype>
         <resolvertype>0</resolvertype>
       </sqlconnection>
     </database>
   </databases>
 </relationalserver>

Multi-dimensional server connection

For the multi-dimensional proxy, you may alternatively give one server node inside the multidimensionalserver, specifying a server to connect to. All databases and cubes that are accessible on that server will then be available through the proxy.

 <multidimensionalserver>
   <server>
     <connection id="1" name="">
       <type>AnalysisServices</type>
       <variable type="String" name="server">
         <value>serverName</value>
       </variable>
     </connection>
   </server>
 </multidimensionalserver>

Troubleshooting

WebHost failed to process a request

You may receive one of the following errors in the Windows Application event log:

Could not find a base address that matches scheme http for the endpoint with binding MetadataExchangeHttpBinding. Registered base address schemes are [https].
The HttpGetEnabled property of ServiceMetadataBehavior is set to true and the HttpGetUrl property is a relative address, but there is no http base address. Either supply an http base address or set HttpGetUrl to an absolute address.

This can occur if the website is bound to HTTPS, but the serviceMetadata configuration is set up for HTTP only. Change the elements in the web.config:

<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />