Follow

SharePoint FBA and Pulse

SharePoint FBA and Pulse

 

​​So there’s this nifty collaboration tool called Pulse. Maybe you’ve heard of it. I, for one, hadn’t until I joined Neudesic back in July. Since then I haven’t stopped hearing about it. All good things of course…


My first project had me diving right into Pulse with tasks to integrate everything the team was doing in SharePoint 2010 with Pulse groups (pages), tags, search, etc. In doing my due diligence I found that the Pulse team had done an awesome job integrating Pulse with SharePoint by creating multiple SharePoint web parts and making them easy to configure. I love when someone else makes my job easier. All I needed to do was install the web parts, setup the streams in Pulse and link the web parts to those streams. Piece of cake! … one caveat … our client required the SharePoint environment to run solely on Forms Based Authentication. Pulse, as some of you may know, comes with two types of authentication built in… Windows and Basic. They have a few flavors of these two types, but no FBA.


Fortunately, my fearless project manager and architect had seen fit to get with the Pulse team and figure out a solution. The architect went to the mother-ship and came home with a custom authentication provider. I took that code, modified it to synch up with our environment, made a few additions related to SharePoint FBA and plugged it in. Viola!... mostly. There was some heartache and head vs. wall, but in the end we have a custom provider for Pulse that will allow integration with SharePoint configured for FBA… Yay!


I’m not exactly sure how this code will be provided to those in need, but I’ll leave that up to the Pulse team to decide.

 


Now for the technical stuff…

 

Once you have code in hand there are several steps that are needed to get this thing working for you.

We’ll make a few assumptions that fall outside the scope of this blog post.

 

1.   SharePoint 2010 is installed and properly configured to use forms based authentication (​http://donalconlon.wordpress.com/2010/02/23/configuring-forms-base-authentication-for-sharepoint-2010-using-iis7/)

2.   Pulse is installed and setup

3.   Pulse SharePoint web parts are installed and configured

4.   You created a FBA user that you would like to use as the Pulse administrator

a.    Should be a site collection administrator or site owner at the least

 

In the Pulse Integration solution you will find 3 configuration files. You will need to merge these 3 files with the ones in your Pulse install directory (usually C:\Program Files\Neudesic\Pulse).


1.   PulseAsyncService.exe.config

a.    In the svc folder

2.   PulseConsole.exe.config

a.    In the svc folder

3.   Web.config

a.    In the web folder

 

Once that’s done you will need to edit these 3 configuration files to match your environment and admin user’s name/password.

 

web.config

 

In <system.web> add

 

<!-- Start PulseIntegration custom provider configuration -->

<roleManager enabled="true" defaultProvider="SQLRoleProvider">

<providers>

<add name="SQLRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

applicationName="/" connectionStringName="FBADB" />

</providers>

</roleManager>

<membership defaultProvider="PulseFBAProvider">

<providers>

<add name="PulseFBAProvider" type="PulseIntegration.PulseFBAProvider,  PulseIntegration" applicationName="/"

connectionStringName="FBADB" enablePasswordReset="false" enablePasswordRetrieval="false" passwordFormat="Clear"

requiresQuestionAndAnswer="false" requiresUniqueEmail="false" />

</providers>

</membership>

<!-- End PulseIntegration custom provider configuration -->

 

 

In <appSettings> add

 

<!-- Start PulseIntegration custom provider configuration -->

<add key="FBAUser" value="(FBA Admin User)" />

<add key="FBAPassword" value="(Password for Admin User)" />

<add key="ServerURL" value="(SharePoint site url)" />

<!-- i:0#.f| <your fba membership provider name from SharePoint web.config> | -->

<add key="ProviderName" value="i:0#.f|j|" />

<!-- End PulseIntegration custom provider configuration -->

 

 

In <connectionStrings> add

 

<!-- Start PulseIntegration custom provider configuration -->

<add connectionString="Server=(sql server name);Database=(aspnet fba database);User ID=(user with dbo acess to fba database);Password=" name="FBADB" />

<!-- End PulseIntegration custom provider configuration -->

 

 

PulseAsyncService.exe.config and PulseConsole.exe.config

 

Add just before </configuration>

 

<!-- Start PulseIntegration custom provider configuration -->

<connectionStrings>

<!--add name="Pulse" connectionString="data source=.\;Integrated Security=SSPI;initial catalog=Pulse" providerName="System.Data.SqlClient"/-->

<add connectionString="Server=(sql server name);Database=(aspnet fba database);User ID=(user with dbo acess to fba database);Password=" name="FBADB" />

</connectionStrings>

<system.web>

<roleManager enabled="true" defaultProvider="SQLRoleProvider">

<providers>

<add name="SQLRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

applicationName="/" connectionStringName="FBADB" />

</providers>

</roleManager>

<membership defaultProvider="PulseFBAProvider">

<providers>

<add name="PulseFBAProvider" type="PulseIntegration.PulseFBAProvider, PulseIntegration" applicationName="/"

connectionStringName="FBADB" enablePasswordReset="false" enablePasswordRetrieval="false" passwordFormat="Clear"

requiresQuestionAndAnswer="false" requiresUniqueEmail="false" />

</providers>

</membership>

</system.web>

<appSettings>

<add key="FBAUser" value="(FBA Admin User)" />

<add key="FBAPassword" value="(Password for Admin User)" />

<add key="ServerURL" value="(SharePoint site url)" />

<!-- i:0#.f| <your fba membership provider name from SharePoint web.config> | -->

<add key="ProviderName" value="i:0#.f|j|" />

</appSettings>

<!-- End PulseIntegration custom provider configuration -->

 

 

If you are building the library from solution you will need to edit the app.config in the solution to match your environment and admin user’s name/password.

 

If you are using a pre-built dll you will need to edit the PulseIntegration.dll.config file to match your environment and admin user’s name/password.

 

Copy the PulseIntegration.dll and PulseIntegration.dll.config files to these two locations

 

1.   Pulse install directory -> svc

2.   Pulse install directory -> web -> bin

 

Now it’s time to add the new provider to Pulse and watch the magic happen.

 

Login to your Pulse instance using an admin user (PulseAdmin for fresh installs) and go to Settings -> Authentication

 

 PulseSS_1.png

 

 

Click on Add a Provider and fill out the next screen EXACTLY as it looks in the screenshot below

 

 PulseSS_2.png

 

Go back to Settings then click on General. Set the Account Sync Period to something other than 0. This is how often Pulse will sync with your provider in minutes. For testing you should set it to 1.

 

Next we need to go setup groups so that Pulse knows what users you want to have access.

Go back to Settings and click on Groups. Click on Add a Group. Fill in the boxes with the name of your group and a description (optional). You’ll want to leave the Group Type as Employee for 99% of all setups.

 

 PulseSS_3.png

 

 

Start typing in the name of the new group in the provided text box and select it once it shows up. Click on Manage Group. A list of the roles from your SQL membership database should populate in the Membership tab. Choose the role that you would like to associate with this group.

 

Note: You might have to wait 1 minute for Pulse to sync groups and users (or whatever you set your sync time to in the settings).

Note: Only user assigned to roles that you associate with a Pulse group will have access to Pulse.

 

 PulseSS_4.png

 

 

You will need to sync one of the roles that your Pulse administrator (from earlier) is a member of so that you can add them to the Administrator group in Pulse.

 

Click on Settings -> Groups start typing Administrators in the text box. Click on Administrators group when it shows up and click Manage Group. Click on the Membership tab. Start typing in the name of your admin user in the text box and it should appear below. Select your admin user and click Save.

 

 PulseSS_5.png

 

 

That’s basically it.

 

You can play with setting permissions on groups and users. Once Pulse is fully synced with the FBA database any web part that you use in SharePoint should automagically use the current users information to access Pulse.


Was this article helpful?
1 out of 1 found this helpful
Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.
Powered by Zendesk