【问题标题】:ADFS 2.0 and jsonpADFS 2.0 和 jsonp
【发布时间】:2012-07-31 10:55:21
【问题描述】:

我有一个使用被动联合 (ADFS 2.0) 的主网站 这个网站有 javascript 调用一个使用 jsonp 的 MVC Web API 站点。

我正在尝试让这个 WebAPI 参与单点登录(同一台机器,不同的端口)。然而,被动重定向会破坏 jsonp。 (STS 返回浏览器呈现的自己的脚本,我永远不会重定向到我的响应脚本的真实 url)

被动联合是否与 jsonp webapi 兼容? 如果没有,我如何在没有用户名/密码凭据的情况下使用 Active Federation? 即用户将在调用 webapi 之前通过主网站进行身份验证,那么我如何利用他们已经在 webapi 中登录的事实?

【问题讨论】:

    标签: javascript ajax jsonp adfs2.0 adfs


    【解决方案1】:

    在您遇到的这种情况下,被动联合协议将不起作用。

    你有两个选择:

    • 如果您的 Web api 被您的网站独占使用,您可以共享 WIF 在用户身份验证时生成的 cookie。为此,如果您使用不同的网站,则应将 WIF 配置中的 <cookieHandler> 部分配置为使用相同的域和路径并使用 FQDN(而不是机器名称),以便浏览器识别网站和 API作为同一个域。

    • 第二个选项是配置 Web API 以提取和验证 SAML 令牌(在身份验证期间生成)。您在这里要做的是保存用于身份验证的令牌(打开 WIF 配置的 <service> 元素上的 saveBootstrapToken),使用 claimsIdentity.GetBootrapToken() 扩展方法获取它并将令牌附加到作为 HTTP 标头的 JavaScript 调用,例如“授权:持有者 ...the-token ....”。在服务器端,您必须获取并验证令牌(以编程方式)。请注意,如果令牌太大,您可能会因为标头长度而在 IIS 中达到配额。

    【讨论】:

    • 谢谢! cookie 设置正是我所需要的
    猜你喜欢
    • 1970-01-01
    • 2013-01-26
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    相关资源
    最近更新 更多