Foreword : Huge thanks to Todd Klindt for sending me a sneak preview chapter of his and Shane Young’s new book. Their chapter on Service Applications helped me to work through and figure out why this process was not initially working for me as it is extremely finicky and will fail if the ordering of these items is incorrect.
In Part 1 I discussed how to create a trust between farms, establish permissions, publish a service application and finally consume it from a remote farm all through
PowerShell, well mostly through PowerShell. So there are a few downsides with that, sure its easy and repeatable but to a lot of people it is not terribly friendly. There is also the fact that while it works, in situations where there are issues PowerShell will smile and let you continue blindly down the path while you might not realise that the end process is going to fail.
So with all of that in mind, how do we publish Service Applications between SharePoint 2010 farms in Central Administration” Well not all of it can be done easily through Central Administration.
The first few steps “exporting the certificates” still need to be done in PowerShell.
1. Export and copy all certificates between Farms
First off, lets do steps 1-5 from Part 1 (http://mrhodes.net/2010/05/19/publishing-service-applications-between-sharepoint-2010-farms-part-1-8/)
This should get us to the point where all certificates have been exported and are ready to be imported on their respective servers.
2. Import root certificate from PROVIDER to CONSUMER
On the CONSUMER farm:
Open up Central Administration, and browse to “Security” then click on “Manage Trust”
Click “New” on the ribbon.
A new screen should pop up labelled “Establish Trust Relationship”. Put in the name. I generally use “PROVIDER [FARM NAME]” to denote a certificate imported from a PROVIDER farm, and vice versa for CONSUMER.
Next click “Browse” and select the “Provider-root.cer” file that was exported to c:certificates
Do not tick the box for “Provide Trust Relationship” or upload another cert as this is all you need on the consumer farm.
Click “OK” and you should now have a new Consumer trust established.
2. Import Root and STS certificates from CONSUMER to PROVIDER
On the PROVIDER farm:
As per the previous steps open up Central Administration, and browse to “Security” then click on “Manage Trust”, then click “New” on the ribbon.
The “Establish Trust Relationship” screen should appear. Put in the name, this time lead with “CONSUMER [FARM NAME]”
Next click “Browse” and select the “Consumer-root.cer” file that was exported to c:certificates.
Under “Token Issuer Description” put in a description such as “CONSUMER [FARMNAME] STS”
Tick the box for “Provide Trust Relationship” and click “Browse” to upload the “Consumer-STS.cer” from c:certificates
You should now have a new trust appearing on your provider.
Note : On a farm providing services, the trust will be labelled as “Trusted Service Provider” and on a farm consuming services, the trust will be labelled as “Trusted Service Consumer”. Please note that this denotes the trust itself, not the certificates or the farm, hence why the naming may seem confusing.
3. Establish Consumer Farm permissions on Provider Farm
At this point we really need to return to PowerShell to do steps 10 and 11 from the previous blog post. It is a bit annoying, but unfortunately I don’t know of any way to establish the permissions, or even retrieve the farm ID from Central Administration.
4. Check that the permissions have been established.
On the provider farm you can check to ensure the permissions have been granted successfully by loading up Central Administration and going to “Manage Service Applications”.
Click on “Application Discovery and Load Balancer Service Application” and click “Permissions” from the ribbon.
Your farm GUID should be listed in here with full permissions.
5. Publish a Service Application
On your Provider Farm :
Browse to Service Applications, select the application you wish to publish and click “Publish” on the ribbon.
Then select the connection type, check the checkbox “Publish this service application to other farms” and be sure to copy out your Published URL to your clipboard.
6. Connect to a Service Application
On your CONSUMER farm:
Open Central Administration and browse to “Manage Service Applications”
Click on “Connect” from the ribbon and select the appropriate Service Application Proxy Type.
Paste in the URL you copied in the last step from the Provider’s Farm and Click “OK”
After a few seconds it should come back with the below screen. Select the application and click “OK”
Choose an appropriate name and click “OK”
Congratulations, your service application is connected. Click “OK”
7. Connected Service Application Properties
Now select your new service application and click “Properties” from the ribbon.
You should see a screen that depending on the service application will allow you some degree of customization. For example,this is for a Managed Metadata Service Connection :
If you can see this screen and edit the properties then you can be fairly confident the connection has worked successfully!
I personally find that the easiest way to do this on a repeatable basis is via PowerShell, however in almost all situations I will use Step 7 from this post to connect as it is just easier, and if for some reason it fails then it will actually tell you.
While none of these steps is especially difficult, putting them together in a cohesive order that works every time took a bit of juggling. I hope these posts have been helpful.