在Chrome扩展程序中,开发人员可以使用以下内容确定用户身份:
chrome.identity.getProfileUserInfo(function callback)
Microsoft Edge似乎没有相同的功能。
是否有人知道在 Microsoft Edge 扩展中确定用户身份的方法?根据Microsoft的文档,它似乎正在考虑开发,但我希望有人找到了另一种方法来做到这一点:供参考(https://learn.microsoft.com/en-us/microsoft-edge/extensions/api-support/extension-api-roadmap(。
我们的扩展将使用服务器端 API,这意味着我们需要协调用户的身份,但它是由系统管理员自上而下地向组织中的数百个用户推出的;因此,不可能通过扩展"要求"每个用户登录。
如上所述,Microsoft Edge 尚不支持此功能。
获取用户标识的一种方法(涉及一些妥协(是要求用户使用 google.com 作为其主页,然后读取用户标识的页面源数据。然后,可以使用"选项卡"API 获取页面内容并发现登录的用户标识。
这是Chrome代码:
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.sendRequest(tab.id, {action: "getSource"}, function(source) {
alert(source);
});
});
似乎Microsoft Edge 也有一种方法可以做到这一点,但文档很模糊:
https://learn.microsoft.com/en-us/microsoft-edge/extensions/api-support/supported-apis#tabs
应该注意的是,这不是安全识别用户的好方法(例如,其他扩展程序可能会修改页面数据以伪造用户(。它不应该用作适当的身份验证令牌的替代品 - 但是,它确实可以作为一种确定谁"可能"使用该扩展的方法。在我们的例子中,我们正在构建扩展,以便为企业组织团队提供更好的用户体验。
如果更熟悉 Edge 开发人员 API 的人能够添加用于抓取页面源数据的 Edge 代码,以使此答案更完整,我们将不胜感激。
如您所知,Edge现在不支持身份。因此,我们无法使用边缘扩展 API 获取用户标识。 目前,我们没有任何棘手的获取用户身份,也不鼓励使用棘手的方法进行操作。最好且安全的方法是立即使用扩展登录。
如果 Edge 实现了标识 API,则可以将其设计为返回用户的 MSA 或 AAD 信息。但是,Edge 没有实现该 API,即使实现了,它也可能无法满足需求,因为给定的企业用户完全有可能将传统加入域的 PC 与域用户(例如 constoso\test(一起使用,但使用 MSA(例如 sample@hotmail.com(进行同步。
在大多数情况下,企业可能更乐意获取用户的域身份。现在,他们可能能够让扩展发出 WebRequest,该请求命中使用 Windows 集成身份验证质询客户端的内部 Web 服务,自动进行身份验证(因为它是内部身份验证(并返回域凭据链接令牌。