我们正在开发一个Outlook加载项,该加载项从Active Directory请求令牌代表流。一旦用户登录AD一次,并且具有来自AD的登录cookie,我们就想通过带有prompt = none参数的iframe从AD请求任何进一步的令牌。
为了解决受保护模式的问题,我们已将加载项的网址添加到“受信任的网站”,以及https://outlook.office.com和https://login.microsoftonline.com。当从Internet Explorer运行加载项时,整个页面以关闭保护模式运行,因为outlook.office.com位于可信站点中,因此我们的iframe可以在登录时访问AD设置的登录cookie。
我们的问题是从Outlook桌面客户端运行加载项。当iframe加载login.microsoftonline.com时,不会发送登录cookie。我怀疑这是因为桌面客户端可能正在保护模式下运行加载项。如果我以管理员身份运行Outlook,则会发送cookie,并且加载项的行为与在浏览器中的行为类似。
有没有办法让Outlook在保护模式下运行加载项,而不是以管理员身份运行客户端?
答案 0 :(得分:1)
此问题与完整性机制有关。有关完整性机制和保护模式的详细信息,请参阅以下链接。
https://msdn.microsoft.com/en-us/library/bb250462(v=vs.85).aspx#upm_ovwim
如果站点位于受信任站点中,则它们在保护模式之外运行,并且cookie存储在中型完整性Cookie存储中。
Outlook加载项由加载项运行时环境保护,其中托管Internet Explorer控件。启用UAC后,加载项运行时将以低完整性级别运行。 Internet Explorer控件也以低完整性级别运行,并且无法从中型完整性Cookie存储中检索Cookie。
因此,当iframe加载网站时,不会发送登录cookie。
要解决此问题,请遵循以下三种方法。
通过创建将IE代理进程提升到中等完整性级别 提升政策。有关How-tos的信息,请参阅以下链接。
https://msdn.microsoft.com/en-us/library/bb250462(v=vs.85).aspx#upm_cfgpm
注意:UAC的停用只能用于测试目的,如果您在生产性计算机上(永久)停用它,您将创建一个主要的安全漏洞,请不要这样做