【问题标题】:User authentication in browser extension (via Shibboleth)浏览器扩展中的用户身份验证(通过 Shibboleth)
【发布时间】:2013-09-19 17:36:24
【问题描述】:

我正在尝试创建一个通过 Shibboleth 对用户进行身份验证的浏览器扩展程序——我想知道如何将 Shibboleth 会话放入我的扩展程序中,以便它可以在所有选项卡/窗口中工作。我在网上没有看到太多关于 Shib 的信息,所以感谢任何指导。我的问题类似于this,但身份验证可能发生在单独的选项卡中(或者应该发生在扩展窗口中??)。

这些two SO questions 指向一些关于一般扩展的有用指南,以及处理安全/登录的一些技巧(对于FirefoxChrome)。但是,它们都使用内置库(如 OAuth 或 Firefox 登录管理器)进行引用,用户在其中直接向扩展提供用户名/密码。由于我使用的是 Shibboleth,我的用例似乎有所不同,我不确定如何处理该过程。我最初的想法是:

  • 用户单击扩展程序中的“登录”按钮。
  • 用户被重定向到一个完整窗口中的登录页面,而不是在扩展程序中(如 eBayDiigo 浏览器扩展程序)
  • 用户使用 Shibboleth 凭据登录。
  • 服务器端 Django 应用程序做一些事情...设置会话 cookie ——但是扩展程序可以访问它吗?在我的测试中,这似乎不起作用(即,我的应用仍未针对服务器进行身份验证,即使我在同一个选项卡中进行了身份验证)
  • 扩展程序查找会话 cookie,如果找到,则将用户视为已通过身份验证。 ??
  • 该扩展应该类似于一个书签工具(如 Diigo)——“安全会话”可以扩展到用户打开的任何选项卡/窗口吗?我的理解是否定的 (because it is domain specific),但是扩展程序(如 eBay 或 Diigo)如何跨站点工作呢?

问我问题的更广泛的方法是:像 eBay 或 Diigo 这样的扩展如何处理用户会话?两者都将您引导至“全窗口”登录页面,以便登录而不是使用特定于浏览器的扩展库,但扩展适用于所有选项卡...

此外,此过程是否可以轻松跨 Safari/Firefox/Chrome 移植?

谢谢!

【问题讨论】:

    标签: django google-chrome-extension browser-extension shibboleth


    【解决方案1】:

    一旦用户在主网站上通过身份验证,您就可以开始从后台页面对网站进行 XHR 调用,从而形成我对 joomla 的体验。浏览器包含所有这些请求的身份验证 cookie。这种方法适用于 IE、Chrome、Firefox 和 Safari。

    【讨论】:

    • 感谢安德烈,您的回答。几个小时后,我发现我的问题略有不同,但你的答案是我提出的问题的正确答案。我的问题是,当清单更改时(即当我更改主机的权限时),我不知道您必须“删除”然后重新安装 Chrome 扩展程序。所以我必须包括设置我的 Shibboleth cookie 的主机,丢弃扩展,然后重新安装它......
    • 你可以使用未打包的扩展,这大大简化了这样的更改测试,你只需要重新加载扩展。
    • 由于某种原因,这似乎不起作用...我一直在使用解压扩展,但有时我只需要丢弃它并重新加载解压扩展以使更改生效(可能是我的设置)。
    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2014-09-22
    • 2012-09-06
    • 1970-01-01
    • 2015-01-22
    相关资源
    最近更新 更多