问题:在Visual Studio 2013中创建AD FS声明感知应用程序

时间:2015-01-22 19:02:18

标签: asp.net-mvc visual-studio-2013 web-config adfs

我是尝试使用AD FS的新手,我一直在圈子里跑。

  1. 尝试制作声明感知应用
  2. 组织处理自己的身份验证
  3. 尝试使用VS 2013
  4. 好吧所以以下是我获得我的测试应用程序来验证身份验证的唯一方法,但它似乎'错了 - 它有效,但是我用错误的方式揉搓我......就像一件羊毛T恤

    1. 在vs 2013中创建新应用程序
    2. 选择网络 - > Visual Studio 2012 ****
    3. 选择.Net Framework 4.5
    4. 选择ASP.Net MVC 4 Web应用程序
    5. 添加对System.Identity的引用
    6. 添加对System.Identity.Services的引用
    7. 编辑我的web.Config文件
    8. 配置部分中的
    9. - 添加以下内容
    10. <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

      <section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

      1. 然后添加
      2. <appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add key="ida:FederationMetadataLocation" value="https://fedtest.xxxxxxxx.com/FederationMetadata/2007-06/FederationMetadata.xml" /> <add key="ida:Realm" value="https://myappNameHere.xxxxxx.com" /> <add key="ida:AudienceUri" value="http://myappNameHere.xxxxxxx.com" /> <add key="loginUrl" value="~/Home" /> </appSettings>

        1. 然后添加

          <location path="Home"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location> <location path="Logout.html"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>

        2. 然后添加

          <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> <authorization> <deny users="?" /> </authorization> <authentication mode="None" /> </system.web>

        3. 然后添加

          <identityConfiguration> <audienceUris> <add value="http://myappName.xxxxxx.com/" /> </audienceUris>

            `<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
              <authority name="http://fedtest.xxxxxxx.com/adfs/services/trust">
                <keys>
                  <add thumbprint="12345567890asdasfsdgdfhdfgjdf123124" />
                </keys>
                <validIssuers>
                  <add name="http://fedtest.xxxxxxxx.com/adfs/services/trust" />
                </validIssuers>
              </authority>
            </issuerNameRegistry>
            <securityTokenHandlers>
              <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
              <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </securityTokenHandlers>
          
              <certificateValidation certificateValidationMode="None" />
          </identityConfiguration>
          

                                      `

        4. 为什么我认为这一切都是错的?好吧,我从以下步骤获得了所有这些web.config行...

          1. 返回步骤5并执行以下操作
          2. 在Tempalte下点击网络
          3. 选择了唯一的选项--- ASP.NET Web Application
          4. 向导出现并单击“更改身份验证”
          5. 选择组织帐户
          6. 将下拉菜单更改为“On Premises”
          7. 填写'内部管理局'
          8. 填写'App ID URI'
          9. 查看web.config
          10. 但是使用这些步骤产生的应用程序将创建一个我从未遇到过麻烦的重定向循环。

            所以 - 关于我做错了什么的建议。以标准方式生成web.config并将其粘贴到以前的版本中以使其工作是不正确的。

3 个答案:

答案 0 :(得分:1)

参考:Use the On-Premises Organizational Authentication Option (ADFS) With ASP.NET in Visual Studio 2013

就重定向循环而言。通常的原因是,对于ADFS RP,您配置了没有尾部斜杠的端点。

添加缺失的&#34; /&#34;并确保它与web.config中的字符串匹配。

答案 1 :(得分:0)

在您的应用中启用SSL,并将SSL URL设置为网络媒体资源中的默认值。

答案 2 :(得分:0)

好的 - 答案到底是什么......

1)我开始沿着这条路线走,因为我不断得到一个我认为是由web.config引起的重定向循环。

这不是web.config。

2)因此,在VS 13中创建应用程序 - 即转到c# - &gt;网络 - &gt;然后单击ASP.NET Web应用程序并设置内部部署身份验证

3)我的重定向循环是由来自AD FS

捆绑在一起的多个LDAP声明引起的

4)一次发送一条规则并且像魔术一样工作。

如果有人能说清楚为什么这应该是真的我很好奇。