How to update multiple SSO Applications from the same deployment?

Topics: Bindings File, Settings Management and SSO
Feb 22, 2013 at 12:50 PM

We are using the BizTalk Deployment Framework for deployment of our BizTalk applications, but we have come to an issue we dont know how to solve.

For all our BizTalk applications we put name value pairs in an SSO application with the same name as the BizTalk app. We do this by using the Deployment Framework and the property <IncludeSSO>True</IncludeSSO> and with the name value pairs stored in the SettingsFileGenerator.xml. This works fine.

But for one of our BizTalk application we need to store key value pairs in different SSO applications. We have a define 8-10 key value pairs which should exist with different values for 15 different SSO apps so we really want to do this by using the BTDF.

Is it possible to deploy these values by using the BizTalk Deployment Framework without having to specify all the values as properties in .btdfproj? We still want to use the SettingsFileGenerator, but it seems to be no way to specifically set the SSO application name for the different values.

Hope you understand my problem description and that it is some hidden functionality for this that we can use :)

Feb 26, 2013 at 6:46 AM

There are a couple of tools available. One, you can call the UpdateSSOConfigItem MSBuild task to inject a key/value pair into any SSO affiliate app. Two, you can call SSOSettingsFileImport.exe to load an entire XML settings file into any SSO affiliate app.

The first option would be tedious and impractical since you are attempting to store so many settings. That leaves the second option. You can have multiple settings workbook files, and load the exported XML from each one into a different SSO app. You would have to add to your .btdfproj to 1) include the additional workbook XML files into your MSI using an AdditionalFiles ItemGroup, 2) call EnvironmentSettingsExporter.exe to export from each workbook and 3) call SSOSettingsFileImport.exe to load each one into SSO (and probably add some custom properties to hold the filenames).

There are different ways to hook into the process to do those steps. If you're on BizTalk 2009 or newer, you can add a Target in your .btdfproj and use the AfterTargets="ExportSettings" attribute to run your custom exports immediately after the default export. That's just an example for one step of the process. Or, you can add a Target named CustomSSO and do all of the custom steps in there.

There are a number of details that you'll need to work out for the deploy and undeploy on both server and dev machines, but hopefully this gives you some ideas.


Mar 4, 2013 at 9:30 AM
Edited Mar 4, 2013 at 9:30 AM

Thanks for your reply. We ended up creating one settings file for each one of the SSO apps as you suggested. In our bindingsfile we added a CustomPostDeployTarget in the end:

<Target Name="CustomPostDeployTarget">
<Exec Command="cmd.exe /c $(Hidden_CreateSSOAppPath)" />

And in ou EnvironmentSettingsExporter file we added the call command to SSOSettingsFileImport.exe with correct attributes.

This works fine for us, and problem solved. Thanks again for helping out! :)