Installing the SharePoint 2010 WCF Service

Overview

Microsoft SharePoint 2010 uses WCF for method invocation.

UNIFY have supplied a WCF service for identity management integration with Microsoft SharePoint 2010.

Installation of the service

In order to connect to SharePoint 2010, the UNIFYBroker/Microsoft SharePoint 2010 WCF Service must be installed. The UNIFYBroker/Microsoft SharePoint 2010 WCF Service file is named Unify.Connectors.SharePoint.SharePoint2010WCFService.wsp. Please contact your SharePoint administrator for details on installing the service on to the SharePoint 2010 server. Installation can be performed using the stsadm tool, using the addsolution and deploysolution flags, or using the Add-SPSolution and Install-SPSolution PowerShell commandlets.

As an example, using the PowerShell commandlets:

Add-SPSolution -LiteralPath c:\Unify.Connectors.SharePoint.SharePoint2010WCFService.wsp
Install-SPSolution -Identity Unify.Connectors.SharePoint.SharePoint2010WCFService.wsp -GACDeployment

More details on this process can be found in Microsoft's SharePoint technical reference:

You can verify the services have been correctly deployed by browsing to the /MEX extension of the web service location, which will be of the format:

  • http://MySharePointInstance/_vti_bin/unify/userprofile.svc/mex for the custom user profile service, and
  • http://MySharePointInstance/_vti_bin/unify/organizationprofile.svc/mex for the custom organization profile service.

Image 4239


where MySharePointInstance above refers to the target SharePoint instance.

Configuration of the service

In order for UNIFYBroker to successfully connect to the SharePoint instance, the following configuration must be placed in the Unify.Service.Connect.exe.config file in the %ProgramFiles%\UNIFY Solutions\Identity Broker\Services directory.

Add the following bindings to the basicHttpBinding element in the system.ServiceModel\bindings XPath:


<binding name="BasicHttpBinding_ISharePoint2010UserProfileService"
    closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00"
    sendTimeout="10:00:00" allowCookies="false" bypassProxyOnLocal="false"
    hostNameComparisonMode="StrongWildcard" maxBuffeSsize="204003200"
    maxBufferPoolSize="524288" maxReceivedMessageSize="204003200"
    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
    useDefaultWebProxy="true">
    <readerQuotas maxDepth="32" maxStringContentLength="65536000" maxArrayLength="65536000"
        maxBytesPerRead="65536000" maxNameTableCharCount="65536000" />
    <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
    </security>
</binding>
 
<binding name="BasicHttpBinding_ISharePoint2010OrganisationProfileService"
    closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00"
    sendTimeout="10:00:00" allowCookies="false" bypassProxyOnLocal="false"
    hostNameComparisonMode="StrongWildcard" maxBufferSize="204003200"
    maxBufferPoolSize="524288" maxReceivedMessageSize="204003200"
    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
    useDefaultWebProxy="true">
    <readerQuotas maxDepth="32" maxStringContentLength="65536000" maxArrayLength="65536000"
        maxBytesPerRead="65536000" maxNameTableCharCount="65536000" />
    <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
    </security>
</binding>

Add the following to the client element under the system.ServiceModel XPath (if the client element does not exist, create it):


<endpoint binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISharePoint2010UserProfileService"
    contract="UserProfileManager.ISharePoint2010UserProfileService" name="BasicHttpBinding_ISharePoint2010UserProfileService" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISharePoint2010OrganisationProfileService"
    contract="OrganizationProfileManager.ISharePoint2010OrganisationProfileService"
    name="BasicHttpBinding_ISharePoint2010OrganisationProfileService" />

Note that the address does not contain the "/MEX" extension used in the confirmation above.

Following the configuration change, the service must be restarted.

Is this article helpful for you?