我正在尝试创建一个通过 Shibboleth 对用户进行身份验证的浏览器扩展程序——我想知道如何将 Shibboleth 会话放入我的扩展程序中,以便它适用于所有选项卡/窗口。我没有在网上看到太多关于 Shib 的信息,所以感谢任何指导。我的问题与此类似,但身份验证可能发生在单独的选项卡中(或者应该发生在扩展窗口中??)。
这两个SO问题通常指向一些有用的扩展指南,以及一些处理安全/登录的技巧(对于Firefox和对于Chrome)。但是,它们都使用内置库(如 OAuth 或 Firefox 登录管理器)进行引用,用户在其中直接向扩展提供用户名/密码。由于我使用的是 Shibboleth,所以我的用例似乎有所不同,我不确定如何处理该过程。我最初的想法是:
- 用户单击扩展程序中的“登录”按钮。
- 用户被重定向到一个完整窗口中的登录页面,而不是在扩展程序中(如eBay或Diigo浏览器扩展程序)
- 用户使用 Shibboleth 凭据登录。
- 服务器端 Django 应用程序做一些事情......设置一个会话 cookie——但是扩展可以访问它吗?在我的测试中,这似乎不起作用(即我的应用程序仍未针对服务器进行身份验证,即使我在同一个选项卡中进行了身份验证)
- 扩展程序查找会话 cookie,如果找到,则将用户视为已通过身份验证。??
- 该扩展应该像一个书签工具(如 Diigo)——“安全会话”可以扩展到用户打开的任何选项卡/窗口吗?我的理解是否定的(因为它是特定领域的),但是扩展(如 eBay 或 Diigo)如何跨站点工作呢?
问我问题的更广泛的方法是:像 eBay 或 Diigo 这样的扩展如何处理用户会话?两者都将您定向到“全窗口”登录页面,以便登录而不是使用特定于浏览器的扩展库,但扩展适用于所有选项卡......
此外,此过程是否可以轻松跨 Safari/Firefox/Chrome 移植?
谢谢!