如何将现有的基于表单的身份验证替换为adfs 2.0?要添加哪个模块?如何替换FormsAuthentication类信息?

时间:2015-03-24 22:35:03

标签: c# asp.net adfs2.0 form-authentication

我已将现有的表单身份验证应用程序作为依赖方。我已将此应用程序配置为ADFS服务器上的依赖方。但ADFS网站没有表单身份验证。

我的依赖方应用程序需要更改哪些内容?

2 个答案:

答案 0 :(得分:1)

我的回答与您的问题一样好,因为您没有提供太多背景信息,例如Visual Studio版本,.NET框架版本,asp.net版本等......

如果您正在使用VS 2010和WIF,那么有一个非常方便的工具叫做联邦实用工具向导(FedUtil),可以“自动”配置您的应用程序。这个article准确描述了您的需求。

最后,您的web.config标识模型应如下所示:

<microsoft.identityModel>
    <service>
      <audienceUris>
        <add value="http://localhost:57349/ClaimsAwareWebSite2/" />
      </audienceUris>
      <federatedAuthentication>
        <wsFederation passiveRedirectEnabled="true" issuer="https://<specified STS>/FederationPassive/" realm="http://localhost:57349/ClaimsAwareWebSite2/" requireHttps="false" />
        <cookieHandler requireSsl="false" />
      </federatedAuthentication>
      <serviceCertificate>
        <certificateReference x509FindType="FindByThumbprint" findValue="48BF03FCEDA703DE09E0F1F0CEFED60BB92B3DD8" storeLocation="LocalMachine" storeName="My" />
      </serviceCertificate>
      <applicationService>
        <claimTypeRequired>
          <!--Following are the claims offered by STS 'http://<specified STS>/Trust'. Add or uncomment claims that you require by your application and then update the federation metadata of this application.-->
          <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" optional="true" />
          <claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" optional="true" />
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/claims/CommonName" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/claims/EmailAddress" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/claims/Group" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/claims/UPN" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/webpage" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/title" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/picture" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/manager" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/department" optional="true" />-->
        </claimTypeRequired>
      </applicationService>
      <issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <trustedIssuers>
          <add thumbprint="5C8885A8E3D29D6BF6C9365E00B1BEA5EB284D1E" name="CN=<specified STS>, OU=US-Federated Identity, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
        </trustedIssuers>
      </issuerNameRegistry>
    </service>
  </microsoft.identityModel>

答案 1 :(得分:0)

WIF使用WS-Trust或FedAuth将用户重定向到ADFS进行身份验证。 在使用VS 2010时,您应该安装 - WIF运行时 - .Net Framework 4.0的WIF SDK

安装上述工具将允许您使用FedUtil向导创建声明感知应用程序。

参考这些文章开始: http://blogs.msdn.com/b/distributedservices/archive/2013/05/13/create-claims-aware-wcf-service-using-wif-on-framework-4-0.aspx

http://blogs.msdn.com/b/napegadie_kones_msft_blog/archive/2015/04/03/what-do-i-need-to-build-a-claims-aware-wcf-service-in-vs-2013.aspx