Sunday, June 29, 2014

SharePoint External Architecture & Implementation - Part 1

Designing and Implementing an external architecture for SharePoint farm could be a challenging job especially if not done right. In this series I'll talk about implementing a SharePoint external Farm, with BI stack in mind; i.e. a complete Microsoft BI Stack for external presence.

Below are the ingredients of a typical Microsoft BI Stack.
  1. SharePoint as front end
  2. SQL Server Analysis Services Server for Cube DB
  3. Corporate Data warehouse/data marts for application data
Critical considerations should be given to placement of these services within organizational network. Not all segments of this stack should be hosted externally in DMZ for security’s sake. Careful approach should be taken to expose only enough components which requires external presence.

Let’s understand the process step-wise. Most of the organizations have clearly defined network segments for internal as well external presence. At times organizations have special security zones for sensitive data. In case there is no special zone for sensitive data, it merges with GNZ.


Because SharePoint is going to be the front-end it ends up in DMZ. SharePoint gives us a flexibility to host difference component services on separate servers. Let’s see two scenarios for SharePoint external presence to understand their usage.
  1. SharePoint as a standalone content management system 
  2. SharePoint as front-end of a data driven stack (example: Business Intelligence Application)

SharePoint as a standalone content management system
This is a bare bones scenario where SharePoint is used with its basic functionality to host static content. The SharePoint content has no dependency on any corporate database. This is simple design, and the entire SharePoint farm can reside inside the DMZ, downside being, that it cannot host any sensitive data as it is prone to any malicious attack from internet.

SharePoint as front-end for a data driven stack (example: Business Intelligence Application)
This is where the complexity starts because SharePoint feeds on data hosted in the corporate network. A good and policy driven network architecture would not allow direct connectivity between DMZ and GNZ. To overcome this kind of problem, network architects usually build HTZ. They provide a staging area which sits between DMZ and GNZ. HTZ contains strong firewalling to deflect any external attack. Below picture explains how a Microsoft BI Stack would look like in an external presence.
The architecture looks simple but its very complex to implement. In next post we will see how to implement this architecture.

Next: Click Here

Monday, June 9, 2014

SSAS 2012 Encryption

There are times when you want to (sometime even have to) encrypt TCP communication between different servers or between client and server. These requirements are mostly associated with regulatory compliance such as SOx, HIPPA etc... Other times, they might be required because the data transmitted falls under high security classification for organizations.

A similar case happened with me, when I was required to ensure that TCP communication between excel client and SSAS 2012 is encrypted. White this article applies for server to server communication as well, in my case I was more concerned about client-server communication.

SQL Server support security and encryption mechanism whoever SSAS doesn't support any encryption methodology by itself. However this lacunae is covered by Windows operating system. Depending upon the authentication method selected (NTLM/Kerberos) through SSPI (Security Support Provider Interface), the encryption is handled by operating system.

To ensure that it is encrypted, I tried capturing traffic from client to SSAS through Wireshark. To do so, start wireshark on client and capture live traffic. Once you have connected SSAS through excel client; select client-SSAS conversion. Simply right click on any one item in captured traffic and select conversation filter. Either select IP or TCP as filter.

Once you have all the conversation, click on any item and select Follow TCP Stream. If the data in the stream you see, is indecipherable, then its encrypted. Hence proved.

Reference: