Microsoft

Blog Categories

Subscribe to RSS feed

Archives

Follow Microsoft Technologies on Pinterest

Archive for the ‘SharePoint’ Category

Boosting Cloud Security in Office 365

Microsoft has been spearheading the security campaign across cloud services. This week has been in focus with announcements of new capabilities affecting SharePoint Online (SPO), Email, and customer controls. I’ve been involved in numerous customer strategy sessions where similar concerns were raised. It is becoming increasingly clear that customers are expecting higher level of security controls across all Office 365 workloads. The vision has always been to extend these controls to services beyond email.

ExtendDLP1Data Loss Prevention (DLP) has been part of Exchange since 2013. In this post I explain how DLP feature extends within SPO and OneDrive for Business (OD4B). Last year DLP was added to SPO, where it provided capability to find sensitive information by searching and querying the data. This helped organizations to surface sensitive content, put them on hold for legal benefits, and take manual actions (like export). In Exchange, it provided with policy tips and notification emails. It is this capability that is now being extended to SPO and OD4B which in turn means greater proactive control over sensitive data.

These policies include simple “if-else-then conditions” and actions. It also provides preconfigured templates to start from. Users get real time notification if working within the context of SPO and OneDrive for Business

ExtendDLP2

Within SPO and OD4B it will detect if the user is sharing content externally and provide the user with policy tips. Furthermore it’ll go one level deeper by scanning for document metadata.

ExtendDLP3

Admins will get built in reports for incident and tracking

ExtendDLP4

If until now you were on the edge, concerned with the SPO security capabilities then hang on just a bit more until second quarter of 2015 when it rolls out as public preview.

Image source: Office blogs

New Additions to Delve

This post goes one level further in showcasing features within Office 365 which makes day in life more productive (Read the previous post in this series)

In order to get more background on Delve, read my previous articles here

1. Delve

2. Everything about Delve

3. How Delve makes life easier

4. Global Rollout

“Check out your personalized feed of relevant documents. What you see is based on what you and your colleagues are working on. You can easily find colleagues to learn more about them and what they’re working on. Type your name now to see your own page”

This is what it says when you first sign in to Delve. The focus here is around the most important assets for any organization, “People”. Delve is more than just search. It brings over the content and people you have been working with, content and people trending around you, and it does so by learning your behavior over time. I bring here few quick nuggets of information which can help with your everyday work.

Can’t seem to remember the document(s) you’ve been working on or worked on in the past month or so? Go to Delve and select “Me” on the left panel.

Delve6

 

Do you miss the organization chart from MySite in the past? Select “Profile” and you see their contact information, organization chart, OneDrive, blog information etc.

Delve7

 

Delve8

 

Want to find what your coworker is working on? Get to someone’s profile from Delve screen by searching with their name

Delve9

 

Note: Security is still very much respected and others won’t see the content if permissions don’t allow. Here is a message on your Delve home screen to confirm

Delve5

All this is fine but you are a mobile worker and this alone does make the cut for you. Looking for similar experience on mobile devices? Look no further

Note: mobile app only available on android and iPhone

Delve1  Delve2Delve3Delve4

Top Tips for SharePoint Success

toptips-header-620x354

This guest post is brought to you by our friends and partner, K2. For more than a decade, K2 has been helping customers rapidly transform their companies with applications that connect the right people to the right information and work. With offices and distributors all over the globe and a powerful partner network, more than a million users in 40 countries rely on K2 to streamline operations, save money and reduce risk. You can learn more by visiting www.k2.com.

Many organizations are upgrading to the newest versions of SharePoint and Office 365. As this migration moves across enterprises and industries, more and more users are running into upgrade challenges.

A recent survey, conducted by K2 and AIIM, discovered some of the biggest issues organizations have experienced with SharePoint 2013. Here are four top issues:

Businesses Want More Out of SharePoint

  • “Expanding the use of SharePoint for more business processes” was a top concern for SharePoint administrators.
  • Despite improvements in the standard feature set, 67% still see third-party products as important for process and records management activities.
  • Workflow and Business Process Management (BPM)-related solutions are a top expected area of investment in supplemental technology.

Driving End User Adoption of SharePoint is Tough

  • The majority of organizations cited end-user adoption as the number one ongoing issue with SharePoint.
  • Less than half of SharePoint users are considered “active” by the majority (64%) of organizations.
  • “Unified interfaces” is the top area of planned implementation using third party technology.

Read the rest of this post »

Advanced Content Targeting in SharePoint – Part 3

This is the third post in this series. In the last two posts (here and here), we implemented a custom token for the logged in user which filters incoming content in the search index based on the user’s profile attributes, and then creating display templates to render custom result URLs. Today we will dive into
extending this concept to the search results hover panel.

Scenariosearching_stick_figure_800_clr_1813
An internal portal accessed by employees and contractors in three dozen locations comprising of countries and/or regions. Authoring takes place in a separate content site and content is rendered on the publishing site. All content is targeted with three important profile attributes –
a. Location (comprises of country and it’s region)
b. Role
c. Business Unit

Each piece of content/link takes the user to the publishing site keeping authoring unexposed to the end user. What this means for search results is
1. The results should be targeted based on user profile properties (mentioned above)
2. Customizing search results URL to point to publishing site
3. Customizing hover preview to display publishing pages (instead of the authoring site content pages)
4. Customizing Control template to implement custom paging

The focus of today’s article will be #3. When SharePoint 2013 came out, the focus was primarily on making sure each result is quick and easy to find and read, while still displaying as much relevant information as possible to the end user.
When the user wants to learn more about a result, they hover their cursor over that result to see the hover panel dialog box.  The hover panel contains rich metadata that enables users to investigate a result more thoroughly, without having to click through and load the document. Hover Panel is broken into three sections
a. Header
b. Body
c. Footer Actions
The files which provide these sections are *HoverPanel.js , *HoverPanel.html, and then html and JS file for each of the following: *HoverPanel_Body, *HoverPanel_Actions, *HoverPanel_Header. These files could be found in the /search center site Master Page gallery.

In order to display the publishing site page in the hover preview we’ll need to make few changes to the OOB hover panel. Let’s start with making a copy of the “Item_DefaultHoverPanel_Actions.html”. This ensures keeping our customization separate.

Step 1
Update the managed property mapping section with our custom properties. In this case RefinableString00 and RefinableString01

hp1

 

Step 2
Snippet to build the linkURL. This linkURL points to the publishing site (instead of authoring)

hp2

Step 3
Render the hover panel header

hp3

Step 4
Render the body section

hp4

 

Step 5

hp5

Towards the end of the above DIV block, add this snippet to enable rendering of your custom preview

hp6

 

 

A Day in the Life of an Office 365 User

shutterstock_158503835

Office 365 comprises of a lot of services and features which can be overwhelming for an end user. More often than not, we hear concerns from organizations and individual users of how roll out of new products and technologies fail. I do not see this as a technology problem, rather a communication and change management issue.

At Perficient, we deal with this day in and day out and understand the importance of a successful roll out. Any big technology implementation requires a significant investment (time and effort) towards creating and utilizing process, training, and governance. It’s not just big talk, but an extremely important undertaking when moving your platform to the cloud (Office 365).

When we look at a typical day in life of an end user from the time they start their day to the time they shut down their devices (and brains), they go through their emails, work on documents, involve in conversations (phone or messaging), search for content, and much more. Office 365 connects all of these tasks and make it seamless so it’s tightly interwoven. In this post I will take the opportunity to showcase few of these scenarios and demonstrate how a day would look like for an office 365 user. Read the rest of this post »

Advanced Content Targeting in SharePoint – Part 2

This post is a continuation of my previous blog post explaining advanced content targeting using SharePoint search. We saw earlier how to implement a custom token for the logged in user which filters incoming content in the search index based on the user’s profile attributes. Today we are going to look into creating display templates to render custom result URLs. Before we begin let’s refresh our memory with the scenario here

Scenario

An internal portal accessed by employees and contractors in three dozen locations comprising of countries and/or regions. Authoring takes place in a separate content site and content is rendered on the publishing site. All content is targeted with three important profile attributes –

a. Location (comprises of country and their region)
b. Role
c. Business Unit

Each piece of content/link takes the user to the publishing site keeping authoring unexposed to the end user. What this means for search results is

1. The results should be targeted based on user profile properties (mentioned above)
2. Customizing search results URL to point to publishing site
3. Customizing hover preview to display publishing pages (instead of the authoring site content pages)
4. Customizing Control template to implement custom paging

Solution

In the previous post we covered #1 above. This post will focus on #2.

By default all the search results points the user to the actual authoring pages which is (in this case) sitting in a separate site. Because the authoring site (usually) does not have any branding or targeting enabled, we do not want our users to lose their place in the navigation. In order to avoid that we came up with top level category pages with each of them having sub category sections which render page content from the authoring site. So in essence the publishing site URL for any piece of content will look like this: http://inranetportal.com/pages/[categoryname].aspx#[subcategory]. The hash tag in the URL is to enable anchor links (bookmark) feature. It’s not relevant in this context so we’ll leave it out.

1. We declare the managed property mappings – Here we used RefinableString0 and RefinableString1 to map the category and sub category metadata fields.

dt1

2. Build a custom linkURL

dt2

dt3

3. This leads us to the html section to render the linkURL

dt4

4. And this is how the result URL look like

dt6

Advanced Content Targeting using SharePoint Search

There are various ways to achieve content targeting in a content management system. In SharePoint, some common terms which are associated with this feature are Audience Targeting, Security Trimming, Metadata etc. Today I am going to share an example which we recently implemented for our customer and which required advanced targeting rules.

Scenario

An internal portal accessed by employees and contractors in three dozen locations comprising of countries and/or regions. Authoring takes place in a separate content site and content is rendered on a publishing site. All content is targeted with three important profile attributes –

a. Location (comprises of country and their region)

b. Role

c. Business Unit

Each piece of content or even a link takes user to the publishing site keeping authoring unexposed to the end user. What this means to search is

a. Customizing search results URL to point to publishing

b. Customizing hover preview to display publishing pages

c. And most importantly the results should be targeted based on user profile properties (mentioned above)

Solution

In order achieve the above, we designed a custom solution extending content by search web part. This solution inserts a query token into the content search web part which filters the indexed content with logged in user’s profile attributes (Location, Role, Business Unit). (Credit goes to my colleague Ryan Selley for developing this robust solution)

First we’ll map managed properties to crawled properties for the taxonomy terms used to tag content.

mp

Then we’ll create the custom web part in Visual Studio by extending content by search.

wp1

Then we’ll Generate a custom query variable to insert in the search query box.

wp2

Build this custom query token with logged in user’s profile properties in the BuildTAQuery()

wp4

This is how the query text looks in the search web part

wp5

With this token in place your content is now targeted on the user’s profile attributes. The logged in user will now only see content which has been tagged to their location, role, and business unit.

Happy targeted coding!

Free Microsoft Training with the “Know it. Prove it.” Challenge

Know It. Prove It. 28 days to rock your tech skills.Microsoft Virtual Academy held the “Know it. Prove it.” 28-day challenge during the month of February 2015. The challenge was a month-long learning binge with 8 challenge tracks to choose from. Along with more than 55,000 people around the globe; I rocked the challenge during the month of February and leveled up my skills. As an overachiever, I actually completed 2 challenges and learned a lot. Even though the challenge is technically over, you can still commit to and complete these challenges, so there’s still plenty of time if you haven’t started one yet. Read the rest of this post »

What To Call Your My Site

Use “Your” instead of “My” when labeling things that are considered belonging to a user! Read the rest of this post »

On-Premises Claims Authorized SharePoint and Hybrid Apps in Azure

I recently needed to deploy a SharePoint-hosted App that would work in both SharePoint Online and On-Premises. My client had an Azure license, and we are hosting the App there. Now, how to get the On-Premises farm to work with my App? I started by reading this MSDN article on the subject.

This article had 90% of the information required, and as usual the other 10% is where the hair pulling happens. Here, I will attempt to fill in the other 10%.

  1. Patch your environment to the November 2014 CU for SharePoint Server. There are fixes in the August CU that affect this configuration and without them it will not work. Why the November CU then? Just take a look at the August install instructions and you will see why. If for some reason you cannot do the November CU the August will work, but set aside a day.
  2. Your Claims Provider class needs to implement the SupportsUserKey property, the GetClaimTypeForUserKey method and the GetUserKeyForEntity method. If you are using the Codeplex project Claims Provider Here and are using ADFS for your STS then you are fine. I had one that was upgraded from 2010 and had these methods and property missing and that left for lots of hair pulling.
    public override bool SupportsUserKey
    {
        get { return true; }
    }
    public override string GetClaimTypeForUserKey()
    {
        return Microsoft.IdentityModel.Claims.ClaimTypes.Upn;
    }
    protected override SPClaim GetUserKeyForEntity(SPClaim entity)
    {
        if (entity.ClaimType == this.GetClaimTypeForUserKey())
        {
            return entity;
        }
        else
        {
            string token = OperationContext.Current.RequestContext.RequestMessage.ToString();
            XmlNodeList claimList = GetClaimsList(token);
            XmlNode upn = claimList.OfType<XmlNode>().Where(c => c.Attributes["AttributeNamespace"].Value.ToLower() == "http://schemas.xmlsoap.org/claims" && c.Attributes["AttributeName"].Value.ToLower() == "upn").FirstOrDefault();
    
            return new SPClaim(Microsoft.IdentityModel.Claims.ClaimTypes.Upn, upn.InnerText, AdClaimValueType, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, SecureStoreClaimsSettings.Default.ProviderName));
        }
    }
    
  3. The User Profile Service needs to be completely set up and functioning. The OAuth procedure with Apps uses the UPA to match the string value of user ID from the token to look up and rehydrate a user in SharePoint so that it can operate on its behalf. If it can’t find the user in the UPA you will get a 401 when the app requests information.
  4. If, like me, you are working in a development environment and have deployed Apps that are now not working I would recommend deleting any App Catalogs and your App Management Service and rebuilding them as corrupted App installs were giving me some issues.
  5. The PowerShell scripts listed in the above article seemed to be a bit out of date. Steve Peschka made some updates to them on his blog, but the MSDN article does not seem to have those updates. I have combined the 4 steps listed in the article along with Steve’s updates into one script with step by step instructions that I hope will help the next guy. The scripts can be found here.
  6. Deploy your App to you App Catalog and cross all available limbs.

Sources for this post: