ADFS与ASP.NET 4.5和WIF覆盖NameClaimType

时间:2015-12-08 21:50:26

标签: asp.net adfs asp.net-4.5 adfs2.0 federated-identity

我试图让ADFS使用ASP.NET 4.5.2和多个域。只要ADFS服务器转换来自" upn" to" name",一切正常。但是,对于多个AD林,这是不可能的,因此我必须在Web服务器上执行转换。使用此Web.Config条目应该强制进行转换。

<securityTokenHandlers>
    <add type="System.IdentityModel.Tokens.Saml2SecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <samlSecurityTokenRequirement>
        <nameClaimType value="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" />
      </samlSecurityTokenRequirement>
    </add>
  </securityTokenHandlers>

当我调试时,我发现Thread.CurrentPrincipal.Identity.NameClaimType仍然设置为默认http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

如果我能在C#中确定正在使用哪个活动的SecurityTokenHandler,那将非常有用。

ADFS的文档不一致。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

问题在于,在我们的测试环境中,ADFS配置为返回SAML 2.0令牌和生产SAML 1.1令牌。所以Saml2SecurityTokenHandler的配置甚至没有解雇。

我尝试配置SamlSecurityTokenHandler并且转换成功后发现了这个问题。