This issue can be resolved by applying the roll-up 3 for ADFS 2.0 ( http://support.microsoft.com/kb/2790338)
It lists the known issues and the Hot Fix. Specific to Salesforce , we get the following issue (described in Rollup 3 );
Some relying parties require that signature certificates are applied
to the relying party for SAML requests, as signature certificates
provide a critical security validation function and are defined in the
SAML 2.0 specification. AD FS 2.0 is capable of allowing unique
signature certificates to be applied to a relying party trust, but it
only allows the same certificate to be applied to one relying party
trust per AD FS 2.0 farm. This restriction prevents multiple relying
parties from using the same signing certificate for SAML requests. AD
FS 2.0 update rollup 3 removes this restriction and allows multiple
relying parties to use the same signing certificate for SAML request.
Note: After applying update rollup 3, you will need to manually run a script(as described below) to make the fix for this issue work.
Window Internal Database:
For issue 3, this hotfix installs a PowerShell script that is named "PostReleaseSchemaChanges.ps1
" into the "%program files%\active directory federation services\sql
" folder.
If you are using Windows Internal Database (WID) as the AD FS 2.0 configuration database, then after you apply this hotfix, you must manually execute the PostReleaseSchemaChanges.ps1 PowerShell script first on the secondary federation servers in the farm, and then on the primary federation server.
Note: You might hit an error "the execution of scripts is disabled on this system." To overcome this, you can try running the following command in the powershell(for Windows Server 2008 R2):
Set-ExecutionPolicy RemoteSigned
If you still face this issue, Refer to the below StackOverflow post:
PowerShell says "execution of scripts is disabled on this system."
SQL Server:
If you are using a SQL Server database as the AD FS 2.0 configuration database, you must download and execute the RelaxedRequestSigningCertsv2.sql
script against SQL Server database.
To execute this script, run the following cmdlet by using the Sqlcmd utility:
Sqlcmd -S -i RelaxedRequestSigningCertsv2.sql
Or, follow these steps to run the cmdlet by using SQL Server Management Studio:
Connect to the SQL Server database that has the AD FS 2.0 configuration database.
Create a new SQL query.
Paste the contents of the RelaxedRequestSigningCertsv2.sql file into the query, and then execute the query.