【问题标题】:ADFS 2.0, SSO and SAML 2.0ADFS 2.0、SSO 和 SAML 2.0
【发布时间】:2012-10-16 18:20:18
【问题描述】:

这是一个典型的信息太多=太多混乱的例子。 我有一个 ASP.NET Web 应用程序,它使用通常的 POST 表单身份验证并希望实现 SSO。 由于我们是 Microsoft 商店,我们将使用 ADFS 2.0。为了实施 SSO,我知道我还需要 WIF 来处理 SAML 请求? 是否将 WIF 与 ADFS 安装在同一台服务器下?

我仍然想重定向失败的 SSO 请求或非 SSO 请求以使用表单,我该如何处理?

有人可以描述一下流程吗?

谢谢!

【问题讨论】:

    标签: single-sign-on adfs2.0 saml-2.0


    【解决方案1】:

    ADFS 支持两种协议进行身份验证。 1) WS-Federation 协议 2) Web SSO SAML 协议

    *在 Ws-Federation 场景中* 用于您的应用程序和 ADFS 之间的 SSO(建立信任关系)。

    1)  Install ADFS & WIF on one server , Create some users in AD. 
    
    2) Generate Federation Metadata.xml file in ADFS, save it one place for
    future need. 
    
    3)  Use Windows Azure Access Control Service(ACS) for
    simplicity. (It will do all heavy lifting of your  authentication
    process of token coming from ADFS) 
    
    4)  Generate Federation
    Metadata.xml file in ACS and Import in your ADFS server as relying
    party. (give some claims as well) 
    

    [http://blogs.msdn.com/b/card/archive/2010/06/25/using-federation-metadata-to-establish-a-relying-party-trust-in-ad-fs- 2-0.aspx?Redirected=true][1]

    5)  Import federation metadata.xml
    file from ADFS server to ACS and Add it as Identity provider. (add
    claim processing rule) 
    
    6)  Now in your web Application use WIF
    FedUtil Tool and import ACS federation metadata.xml file.
    

    就是这样..你可以走了..

    对于 Web SSO SAML 协议,您必须手动进行编码。

    用例:

    1. 用户将点击您的应用程序。

    2. 用户未通过身份验证,因此他将转到 ACS,ACS 会将其重定向到 ADFS 登录页面。

    3. 用户输入凭据。 ADFS 向 ACS 发出令牌并带有一些声明。 ACS 将 转换传入的 ADFS 声明并将其提供给您的应用程序。

    4. 您的应用程序现已通过身份验证,因此您可以使用声明并执行 授权的东西。

    您可以使用 URL 方案来检查此请求应该转到您的表单身份验证或 ADFS 身份验证的位置。 例如。 :http://somedomain.com/formshttp://somedomain.com/ADFS

    【讨论】:

      【解决方案2】:

      所以你正在使用 SAML 到一些第 3 方 STS?

      WIF(开箱即用)不支持 SAML。

      有一个 WIF SAML 扩展,但这只是 CTP(社区技术预览)。

      WIF 与您的 ASP.NET 应用程序集成。对于 .NET 4 及更低版本,有单独的下载。对于 .NET 4.5,它是集成的。

      WIF 只是应用程序中的一组 .NET 类。

      您使用名为 FedUtil 的工具将 WIF 与您的 ASP.NET 应用程序集成,该工具是 WIF SDK 下载的一部分。 (由 VS 中的“添加 STS”调用)。

      ADFS 安装会在服务器上安装 WIF,但这与您的应用程序是分开的。

      流程是:

      .NET 应用程序 --> (WIF) --> (WS-Federation) --> ADFS --> (SAML) --> STS

      【讨论】:

      • 正确,我们的网络应用程序正在被客户端访问,所以我很清楚 - WIF 将处理网络应用程序内的 SAML,而 ADFS 只是用来重定向有效的 SSO 请求?
      • 否 - WIF 不处理 SAML - ADFS 将 WIF WS-Federation 消息转换为 SAML 并发送到您的 STS。
      • 所以使用此示例:technet.microsoft.com/en-us/library/… 我只看到“成功”场景,我在哪里以及如何处理“失败”场景 - 即 SAML 未通过身份验证。
      • 如果您无法进行身份验证,ADFS 会在登录页面上显示错误。如果您可以进行身份​​验证但没有该页面的权限,WIF 将显示“拒绝访问”。
      • 好的,谢谢。在同样的问题上 - 我在哪里定义查询以验证 SQL 服务器?我在 ADFS 2.0 管理器中看到的只是连接字符串。
      猜你喜欢
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 2015-06-11
      • 1970-01-01
      相关资源
      最近更新 更多