【问题标题】:OpenId withouth http redirects?OpenId 没有 http 重定向?
【发布时间】:2011-03-01 16:38:57
【问题描述】:

我想使用其中一种集中式身份验证系统,例如 OpenId、Google 或 Facebook 身份验证系统。但是,我发现他们都使用 HTTP 重定向到对应服务器的注册部分。

我的问题是,对于我的系统,我们希望提供不同的客户端,其中一些是独立的应用程序,因此 HTTP 重定向策略将不起作用,除非我在我的客户。

是否可以以编程方式进行这种联合身份验证?

谢谢,

古斯塔沃。

【问题讨论】:

    标签: security openid google-authentication


    【解决方案1】:

    这些系统的信任和安全依赖于浏览器。作为用户,我只有在浏览器告诉我我已连接到我的提供商时才输入我的凭据:通过指示安全连接并显示反网络钓鱼封条。

    您可以在您的应用程序或您的网站上向我索要我的凭据,并代表我进行整个身份验证会话,但我为什么要给您呢?您可以在您的应用程序中显示嵌入式浏览器或在您的网站上显示 iframe,但我为什么相信您不会捕获我的凭据?

    还有一个方便之处:我的浏览器有一个来自我的提供商的 cookie,所以大多数时候我什至不需要输入凭据。

    我认为独立应用程序的最佳方法是与您的应用程序服务器建立会话,然后启动浏览器将用户带到您的 Web 服务器,并使用会话标识符来验证该会话。然后告诉他们身份验证已完成,他们可能会返回应用程序。使用 cookie 或存储的密码,无论如何都比在应用程序中输入凭据要快。

    【讨论】:

    • 嘿@aaz,感谢您的回复。它真正阐明了这些系统策略的原因。我喜欢你提出的方法;从安全的角度来看这是正确的,但我认为用户的体验不会是最好的,因为必须退出应用程序才能登录。也许联合身份验证不是我系统的最佳选择。跨度>
    • @4NDR01D3 – 当然,您为应用程序建立的会话可能是永久的——用户只需通过浏览器登录一次。当用户下载它时,您甚至可以将经过身份验证的会话令牌嵌入到客户端二进制文件中。
    【解决方案2】:

    根据@aaz 的建议,根据您的应用程序在互联网上的公开程度,您可以构建一个 HttpListener 并让 return_to URL 指向您的侦听器。不过,不太可能在防火墙后工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多