When using Claims Based authentication/authorization, then you will need to use Microsoft.IdentityModel as that is part of the Windows Identity Framework (WIF).
The System.IdentityModel claim is part of the WCF stack. It was used for Claims before WIF. From what I understand Microsoft.IdentityModel is built on top of System.IdentityModel.
WIF has a dependency on System.IdentityModel. Depending on what you are doing you might need a reference to both.
This is an example, taken from the Claim
type (that happens to be in both assemblies):
namespace Microsoft.IdentityModel.Claims
{
public class Claim
{
public Claim(string claimType, string value);
public Claim(System.IdentityModel.Claims.Claim claim, string issuer);
...
}
}
If you have the choice of using System.IdentityModel and Microsoft.IdentityModel, always use Microsoft.IdentityModel.