Cross domain issues with Office Online server 2016

Recently while provisioning a huge SharePoint 2016 farm (around 70 server) on MS-Azure with 3 Office Online servers, I came across some cross domain issues with Office Online.

We had provisioned all the four environments (development, test, pre-prod and production) on Azure but on two different domains and here come the real complexity 🙂

Environment Domain URL
Development PPAD http://sharepointsite-dev
Test PPAD http://sharepointsite-test
Pre-Production AD http://sharepointsite-preprod
Production AD http://sharepointsite

The users who would be accessing the site were using laptops which were on the AD domain; for example, AD\anandsharma being their account ID.

Accessing the development and test URL’s with such devices required appending the domain name after the SharePoint site url to resolve the DNS. For example: http://sharepointsite-dev.ppad

Now while setting up Office Online servers in such cases has a big caveat!!

So let’s say my Office Online server’s load balancer (as in our case) has the internal URL as http://sharepointsite-dev-oos and everything is configured according the the following technet article – https://technet.microsoft.com/en-us/library/jj219455(v=office.16).aspx

In such a scenario, the cross domain dns resolving will not work.

Hence while configuring the Office online server, you must append the domain name to the internal url property when configuring the new farm.

Configuration on the Office Online Server (Development)

Import-Module -Name OfficeWebApps
New-OfficeWebAppsFarm -InternalURL "http://sharepointsite-dev-oos.ppad" -AllowHttp -EditingEnabled
Set-OfficeWebAppsFarm -AllowHttpSecureStoreConnections:$true

Configuration on the SharePoint Web Front End (Development)

Add-PSSnapin Microsoft.SharePoint.Powershell
New-SPWOPIBinding -ServerName "sharepointsite-dev-oos.ppad" -AllowHTTP
Set-SPWOPIZone -zone "internal-http"
$config = (Get-SPSecurityTokenServiceConfig)
$config.AllowOAuthOverHttp = $true
$config.Update()
$Farm = Get-SPFarm
$Farm.Properties.Add("WopiLegacySoapSupport", "http://sharepointsite-dev-oos.ppad/x/_vti_bin/ExcelServiceInternal.asmx");
$Farm.Update();

Hope this helps anyone struggling with cross domain configurations.

Advertisements

Adding links to Suite Bar in Office 365

So we want to add few custom links to the Delta suite bar within Office 356. You can either add it to the Script Editor webpart to add these links for single page or add it to the master page if you want so.

Before:

suitebar_before

After:

suitebar_after

 

<script type="text/javascript">    
    
        $(document).ready(function() {
           var addLinks = "<div class='o365cs-nav-O365LinksItem'><div><a title='Google' class='o365button o365cs-nav-navItem o365cs-nav-workloadLink o365cs-spo-topnavLink o365cs-topnavLink' id='O365_MainLink_ShellMail' role='menuitem' aria-disabled='false' aria-selected='false' aria-label='Google' href='http://google.co.uk'><span>Google</span><div class='o365cs-activeLinkIndicator o365cs-nw-b' style='display: none;'></div></a></div><div style='display: none;'></div></div>";

addLinks +=  "<div class='o365cs-nav-O365LinksItem'><div><a title='Bing' class='o365button o365cs-nav-navItem o365cs-nav-workloadLink o365cs-spo-topnavLink o365cs-topnavLink' id='O365_MainLink_secondLink' role='menuitem' aria-disabled='false' aria-selected='false' aria-label='Bing' href='http://bing.co.uk'><span>Bing</span> <div class='o365cs-activeLinkIndicator o365cs-nw-b' style='display:none;'></div></a></div><div style='display: none;'></div></div>";
        $('.o365cs-nav-O365Links div:first').prepend(addLinks);
     });
   </script>

Customising Office 365 icon in SharePoint 2013

While implementing an Office 365 solution, I did some quick fixes to the system (mostly branding the site) which I would like to share in this post.

Hiding the Office 365 icon on the top left of the window


Add the following lines to the CSS file

.ms-core-brandingBox {display:none;}


Editing the Office 365 icon to custom icon

If you want to show your company logo instead, add the logo to your SharePoint site and refer it in the CSS like the following:

#suiteBrandingIconBox {background-image:url(image url location)!important;
background-color:transparent;background-position:top left;background-repeat:no-repeat;height:30px; }

Hiding the Show More on person.aspx


When you implement mysites within SharePoint 2013, on the person.aspx page, there are few information available for the person like Email Address, Office Phone, Mobile and so on. This webpart comes with a Jquery link Show More and Show Less which contracts and expands on click.
I had a requirement where I had to hide this button and expand the box always so that all the values are visible to the user at all times. Here is how I implemented the solution.

  • Find out the ID for the control by going to Developer tools within your browser.
  • Replace it after the # sign in the example below.
  • Add the whole snippet into Script Editor webpart on the person.aspx page

#your respective ID of the control_ProfileViewer_showHideLink
{
display:none;
}
.ms-profile-hiddenDetails
{
display:block !important;
overflow:visible !important;
}