在Chrome扩展程序中,开发人员可以使用以下方法确定用户身份:
chrome.identity.getProfileUserInfo(function callback)
Microsoft Edge似乎没有相同的功能。
有人知道Microsoft Edge扩展内部的确定用户身份的方法吗?根据Microsoft的文档,它似乎正在考虑开发,但是我希望有人找到了另一种方法:供参考(https://docs.microsoft.com/en-us/microsoft-edge/extensions/api-support/extension-api-roadmap)。
我们的扩展程序将与服务器端API配合使用,这意味着我们需要协调用户的身份,但是系统管理员正在将其自顶向下部署到数百个组织中。因此,不可能通过扩展名“向”每个用户“登录”。
答案 0 :(得分:0)
如您所知,Edge does not support identity now。因此,我们无法使用Edge扩展API获得用户身份。 当前,我们没有任何棘手的方法来获取用户身份,也不鼓励使用棘手的方法来做到这一点。最好和安全的方法是立即登录您的扩展程序。
如果Edge实现了身份API,则可以将其设计为返回用户的MSA或AAD信息。但是,Edge无法实现该API,即使实现了,也可能无法满足需求,因为给定的企业用户完全有可能将传统上加入域的PC与域用户一起使用(例如constoso \ test),但使用一个MSA(例如sample@hotmail.com)进行同步。
在大多数情况下,企业可能更愿意获得用户的域身份。如今,他们可以使扩展程序发出一个WebRequest,该WebRequest命中一个内部Web服务,该服务使用Windows集成身份验证向客户端提出挑战,自动进行身份验证(因为它是内部的),并返回一个域凭据链接令牌。
答案 1 :(得分:0)
如上所述,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://docs.microsoft.com/en-us/microsoft-edge/extensions/api-support/supported-apis#tabs
请注意,这不是安全识别用户的好方法(例如,其他扩展程序可能会修改页面数据以伪造用户)。它不应替代适当的身份验证令牌,但可以用作确定谁“可能”使用了扩展名的方法。在我们的情况下,我们正在构建扩展,以为企业组织团队提供更好的用户体验。
如果更熟悉Edge开发人员API的任何人都能够添加Edge代码来获取页面源数据,以使此答案更加完整,那么将不胜感激。