在Chrome扩展中,开发人员可以使用以下内容来确定用户身份:
chrome.identity.getProfileUserInfo(function callback)Microsoft Edge似乎没有相同的功能。
有没有人知道在Microsoft Edge扩展中确定用户身份的方法?根据微软的文档,它看起来正在考虑开发,但我希望有人找到了另一种方法:供参考(https://docs.microsoft.com/en-us/microsoft-edge/extensions/api-support/extension-api-roadmap)。
我们的扩展将使用服务器端API,这意味着我们需要协调用户的身份,但它是由系统管理员自上而下地向组织中的数百个用户推出的;因此,不可能通过扩展“要求”每个用户登录。
发布于 2018-09-26 18:02:47
如你所知,Edge does not support identity now。因此,我们无法使用Edge扩展API获取用户身份。目前我们没有任何获得用户身份的技巧,也不鼓励使用棘手的方法来做到这一点。最好、最安全的方法就是现在用你的扩展登录。
如果Edge实现了identity API,那么它可以被设计为返回用户的MSA或AAD信息。然而,Edge并没有实现该应用程序接口,即使它实现了,它也可能无法满足需求,因为给定的企业用户完全有可能使用传统的域加入PC与域用户(例如constoso\test),但使用MSA (例如sample@hotmail.com)进行同步。
在大多数情况下,企业可能更乐于获得用户的域标识。今天,他们可以让扩展发布一个WebRequest,该the命中内部web服务,该服务使用Windows集成身份验证来挑战客户端,自动身份验证(因为它是内部的),并返回与域凭据关联的令牌。
发布于 2018-09-26 23:41:30
如上所述,Microsoft Edge尚不支持此功能。
获取用户身份的一种方法涉及一些折衷,即要求用户使用google.com作为其主页,然后读取用户身份的页面源数据。然后,您可以使用"tabs“API来获取页面内容并发现已登录的用户身份。
以下是Chrome代码:
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.sendRequest(tab.id, {action: "getSource"}, function(source) {
alert(source);
});
});似乎Microsoft Edge也有这样的方法,但文档很含糊:
https://docs.microsoft.com/en-us/microsoft-edge/extensions/api-support/supported-apis#tabs
应该注意的是,这不是一个安全地识别用户的好方法(例如,其他扩展可以修改页面数据来伪造用户)。它不应该用作适当的身份验证令牌的替代品--但是,它确实是一种确定谁“可能”正在使用该扩展的方法。在我们的情况下,我们正在构建扩展,为企业组织团队提供改进的用户体验。
如果任何更熟悉Edge developer API的人能够添加用于抓取页面源数据的Edge代码,以使此答案更加完整,将不胜感激。
https://stackoverflow.com/questions/52483650
复制相似问题