Enable Search for your Office 365 Small Business Public Site

If you are thinking about search-enabling your Office 365 Small Business public web site, you will find that the out-of-the-box configuration will not work properly. In an earlier post, I described how you can extend your public site by controlling list permissions for anonymous users and how to create a blog within your Office 365 Small Business site. This post will take your site to the next level by allowing visitors to search your website.

Getting Started

The default search center that is included with O365 is locked down for use by authenticated users only. If you log in to your website, you can see the default search implementation by going to http://<yoursite>/srch.

The 1st thing you will notice is that you are required to authenticate to use the enterprise search and your public site will not be searchable.

 

The 2nd thing you may notice is that the only content on a new site will be the content within your ‘TeamSite’ site collection. You can test this by searching for ‘wiki’ which will bring up the wiki pages that are included when the ‘TeamSite’ is created.

This won’t hurt a bit

To get search to work properly, you need to do what some may consider unthinkable. You must delete the default enterprise search site. The reason for this is by deleting and recreating your search center, your new search center will have the appropriate default permissions to allow anonymous users to use search.

  1. Login to your Office 365 account (http://portal.microsoftonline.com/) and click on ‘Team Site’

  2. Visit your default Search center by clicking on ‘Search’

  3. Click ‘Site Actions’ -> ‘Site Settings’

  4. Click ‘Delete this Site’

  5. Click ‘Delete’

    You will receive the following verification that the site was deleted

Re-create your Search Center

Now that you have deleted your default search center, you need to take the steps to recreate it.

  1. Now go back to your ‘Team Site’ (http://<yoursite>/teamsite) and Click ‘Site Actions’ -> ‘Site Settings’

  2. Click ‘Go to top level site settings’

    This will take you to your Root Site’s settings page.

  3. Click ‘Site Collection Features’

  4. Locate ‘Search Server Web Parts’ and click ‘Activate’

  5. Click ‘All Site Content’

  6. Click ‘Create’

  7. Click ‘Search’ -> ‘Basic Search Center’ and then choose ‘srch’ as the URL for your new search center.

    The site that you get will look familiar but will have a very important distinction as you will soon see.

  8. Using an unauthenticated browser, try to access the search page. You will find that it is accessible to an anonymous user!

  9. Try to search for ‘wiki’. You will find no results.

  10. Now try to search for ‘contact’. You should now see the default contact-us pages and any other applicable pages that are accessible anonymously in your result set.

Disable Preferences

Anonymous users will not be able to save their preferences for your search center, so you will be better off just disabling this feature. You must modify 2 pages (Default.aspx and Results.aspx).

  1. Visit your Search Center’s default page as your authenticated user (http://<yoursite>/srch/default.aspx)
  2. Click ‘Site Actions’ -> ‘Edit Page’

  3. Within your ‘Search Box’, click the context menu -> ‘Edit Web Part’

  4. Within the Web Part Properties (Miscellaneous Section), deselect ‘Display user Preferences link’ to make sure it doesn’t appear in the web part. Then click ‘OK’

  5. Repeat steps 2-5 for your Results.aspx page (http://<yoursite>/srch/results.aspx)

     

    You will now have a working search center for anonymous users without having to deal with authentication issues

     

Creating a usable Search Link

If you are using the default Office 365 publishing features for creating simple pages, you may be wondering how you can create an easy search link within your site navigation. Follow the steps below to give users an easy way to access your search center from your home page.

  1. Visit your Home Page (http://<yoursite>/) and click ‘Member Login’

  2. Click ‘Website’

  3. Click ‘Pages’ -> ‘New Page’

  4. Select ‘General’ then click ‘Next’

  5. Type ‘Search’ for the page name, and ‘Search’ for the URL and make sure ‘Show this page in the Navigation bar’ is selected.

  6. Select and Delete the text ‘Add your content here’.

  7. Click ‘Insert’ -> ‘HTML’

  8. Within the window, insert the following text and click OK:

    <script>

    top.location = "/srch ";

    </script>

     

  9. In the upper left portion of the page, click ‘File’ -> ‘Save and Publish’

  10. Using an unauthenticated browser, visit your home page. Notice the ‘Search’ on the navigation bar. Click ‘Search’.

  11. Your site visitor is redirected to your Search Center!

Creating a Blog using Office 365 Small Business

If you want an inexpensive yet convenient way to host your own Blog, Office 365 can fit the bill. With a little bit of tweaking, you can create a publicly accessible blog. The purpose of this blog post is to guide you step-by-step and get you going.

As I described in an earlier post, Office 365 Small Business can be quite limiting because there is no out of the box way to edit Anonymous user permissions. To get a fully functional blog, you’ll need to use a workaround, but I hope you find the effort is well worth it.

Getting Started

First you’ll want to make sure you have your own Office 365 website available. Microsoft makes it easy for you by allowing you to sign up for a free trial. After you login to your own website, make your way to your Team Site.

You won’t be creating your blog under your Team Site because it doesn’t allow any access to anonymous users, however visiting your Team Site will provide an easy way to get to your root site’s settings page.

  1. Click ‘Site Actions’ -> ‘Site Settings’

    This will take you to your Team Site’s settings page.

  2. Click ‘Go to top level site settings’

    This will take you to your Root Site’s settings page.

You should now be able to see your site collection settings page which will give you access to the various galleries (Solution, Theme, List Template, Web Part, etc.) and Search settings.

Your root site collection, by default, will allow Anonymous users very limited read access to your site. To harness the full power of SharePoint, you’ll need to be able to control this.

Install Anonymous Access List Permissionator Web Part (AALP)

To be able to modify the Anonymous access permissions, you’ll need to install the AALP or something similar. You can find the WSP here, or feel free to download the source code and edit it as you like.

  1. Click ‘Solutions’

  2. Click ‘Solutions’ (this will display the proper Ribbon options)

  3. Click ‘Upload Solution’

  4. Click ‘Browse…’ and then select the AnonymousAccessListPermissionator.wsp file from your local computer.

  5. Click ‘OK’

  6. Click the check box next to the newly uploaded solution and then click ‘Activate’

  7. You will be asked to verify if you’d like to activate the solution. Click ‘Activate’ again.

Activating the solution will install a web part into your Web Part gallery. This web part, when placed on a page, will allow you to set Anonymous permissions for any list within your web site. You can read more about it here.

Create a Blog Sub-site

After installing the AALP, return to your root site collection’s site settings page (http://www.<yourwebsite>.com/_layouts/settings.aspx). From here, you will be creating a sub-site.

  1. Click ‘All Site Content’

  2. Click ‘Create’

  3. Click ‘Site’
  4. Click ‘Blog’ and give it a name and URL

By default, your sub-site will inherit the Anonymous read permissions from your root site, so you’ll have limited use of your blog. At this point, use another browser instance to check what your blog will do for the anonymous user. I usually have another browser window open (Firefox, Chrome, Opera etc.) to check my anonymous experience while my authenticated user account is logged in to Internet Explorer for configuring my blog.

Although you can see your blog’s default page, notice that clicking on the default blog post, categories, archives, links, or photos hyperlinks will prompt the user for authentication.

We’ll fix that quickly using the AALP.

Set Anonymous Permissions for your Blog lists

Your next step will be to modify the Anonymous permissions for the various SharePoint lists used by the blog sub-site. Use your browser that is logged in to your blog site.

  1. Click ‘All Site Content’

     

  2. Click ‘Create’

  3. Click ‘Library’ -> ‘Document Library’

  4. Click ‘More Options’ and then give your Document Library a Name. Under the Document Template section, choose ‘Web Part page’ for Base Document type, choose Web Part Page and click ‘Create’

    After your document library is created, you’ll be redirected to it. From here you will create a simple page that will include the AALP web part you installed earlier.

  5. Click ‘Documents’ and then click ‘New Document
  6. Name your document SetPermissions.aspx and then click ‘Create’

  7. Click ‘Add a Web Part’

  8. Select the Anonymous Access List Permissionator and click ‘Add’

  9. Click Stop Editing

    Now the Web Part is available for you to use. We will now set permissions for the various lists used by the blog sub-site.

  10. Select the ‘Posts’ list from the drop down menu.
  11. While holding down the Ctrl key, click the following permissions in the List Box: ViewListItems, ViewFormPages, Open, ViewPages.

  12. Click ‘Set Permissions’
  13. Select the ‘Photos’ list from the drop down menu.

    You’ll notice that the permissions that you selected in the previous step are already selected.

  14. Click ‘Set Permissions’
  15. Repeat previous 2 steps (12 and 13) for the following lists:
    • Links
    • Categories
    • Comments
  16. If you want to enable public comments, you’ll also need to add the ‘AddListItems’ permission to the comments list. Be careful of what permissions you grant to Anonymous users because you may be opening the door to spammers.

Using your secondary (non-authenticated) browser, visit your blog site to check the permissions.

You’ll notice that clicking on the various sections of the site will now function properly! In addition, by granting the proper read permissions to the Photos library, you will be able to use Microsoft Word to create your blog posts, place images directly into word, and then publish directly to your Office 365 SharePoint Blog site.

Create your first blog post

Now that your site is ready to go, give your new blog a whirl by creating your first post. Use your browser that is logged in to your blog site.  

  1. Navigate to your newly created blog site.
  2. Click ‘Launch blog program to post’

  3. You will be prompted to register your blog site with word. Click ‘OK’

  4. Within Microsoft Word, select a title for your blog post.

  5. Enter some text, do some formatting and add some pictures.
  6. Click ‘Insert Category’ and either select a category from the drop down list or create a new one by simply typing in the category box.

  7. Click ‘Publish’

    Publishing will make your blog post visible to the public and upload all photos for you and link them to your blog post.

If you don’t have Microsoft Word, you’ll still be able to use the SharePoint user interface to create and edit you posts.

  1. Navigate to your newly created blog site.
  2. Click ‘Create a post’

  3. Enter text into the form.

  4. Click ‘Publish’

Now visit your site using your secondary (non-authenticated) browser to view your new blog post(s)!

You’ll find that the last piece of functionality for your blog will be to enable the Search box for anonymous users (without prompting them for authentication). This will be covered in a future blog post.

Managing Anonymous User Permissions on Office 365 Small Business

I recently presented a session at SharePoint Saturday New York City about Office 365 Small Business. In preparation for the session, I was deciding on how I could best showcase what is possible with O365 and how I could use it in my daily life. Any of you have given O365 for a spin probably soon realized that the limitations to the Public Web Site are enough to sour the taste enough to consider abandoning the product. While attempting to create a public facing blog using O365, I found myself encountering issues when accessing the blog anonymously. I thought it would be easy enough to create a subsite of my public site (using a blog template) and things would just work. I was wrong. It seemed that, as an anonymous user, with every click I was presented with prompts for authentication. This made my blog almost entirely unusable. I found a very good workaround on Martin Hatch’s blog which describes how to modify the AnonPermMask64 property, but his WSP solution falls short of my needs to open up other areas of the blog such as Links and Photos, as well as opening up other areas of my public website. Never fear, the Anonymous Access List Permissionator (AALP) Web Part is here. The purpose of the web part is to provide a way to set the AnonPermMask64 permissions for any list within your SPWeb (including the RootWeb).

The AALP web part is a no-frills way to manage Anonymous Access permissions in any web on your site. After activating the WSP within your sandbox, the web part is added to your Web Part gallery. Simply add it to any page within your website. The web part will let you select from a drop down for which list in your website you want to modify permissions. After selecting the list, the existing permissions will be shown and you will be able to multi-select what your desired permissions will be for the Anonymous Users.

I started by granting the ViewListItems, ViewFormPages, Open, ViewPages permissions to the following lists:

  • Posts
  • Categories
  • Links
  • Photos
  • Comments

I also added the AddListItems to the Comments list to enable Anonymous comments to blog posts.

What this essentially allows me to do is use Microsoft Word to create and edit my blog posts as well as copy and paste photos directly into Word before publishing (I’m using it right now for this blog post). It just works the way it should! Be sure to turn on approval for the Comments list!

Now you are able to open up your limited O365 Small Business website in any way you see fit. I’ve made some quick additions to the Root site as well by allowing Anonymous Users to access the ‘Documents’ and ‘SiteImages’ libraries as well as others (such as ‘Announcements’) to create a more configurable experience. With a little elbow grease, restyling the Master Page and adding web parts will make the locked down public site more appealing as an inexpensive way to present content to the public.

The Anonymous Access List Permissionator is free for use and is available here as a WSP and full Visual Studio Source Code:

WSP: AnonymousAccessListPermissionator

ZIP: AALPSourceCode.zip

Enjoy.