2016-12-22 69 views
1

我們正在開發一個Outlook加載項,它從Active Directory請求令牌以代表流程。一旦用戶登錄到AD一次,並且有來自AD的登錄cookie,我們希望通過帶有prompt = none參數的iframe從AD請求任何進一步的令牌。在保護模式關閉的桌面客戶端上運行Outlook加載項

爲了解決保護模式,我們將託管加載項的網址添加到受信任的站點以及https://outlook.office.comhttps://login.microsoftonline.com。當加載項從Internet Explorer運行時,整個頁面將以保護模式關閉,因爲outlook.office.com位於可信站點中,所以我們的iframe可以訪問登錄時由AD設置的登錄cookie。

我們的問題是從Outlook桌面客戶端運行加載項。當iframe加載login.microsoftonline.com時,不會發送登錄cookie。我懷疑這是因爲桌面客戶端可能在保護模式下運行加載項。如果我以管理員身份運行Outlook,則會發送Cookie,並且加載項的行爲與瀏覽器中的相同。

有沒有什麼辦法讓Outlook運行帶有保護模式的加載項關閉,缺少以管理員身份運行客戶端?

回答

1

此問題與完整性機制有關。有關完整性機制和保護模式的更多信息,請參閱下面的鏈接。

https://msdn.microsoft.com/en-us/library/bb250462(v=vs.85).aspx#upm_ovwim

如果網站都在受信任的站點,它們運行保護模式之外,和餅乾都存儲在中等完整性cookie存儲。

Outlook外接程序由加載項運行時環境保護,其中包含Internet Explorer控件。當啓用UAC時,加載項運行時正在以低完整性級別運行。 Internet Explorer控件也以低完整性級別運行,並且無法從中等完整性Cookie存儲中檢索Cookie。

因此,當iframe加載站點時,不會發送登錄cookie。

要解決此問題,下面有三種方法。

  • 從IE中的可信站點中刪除站點,然後從Outlook運行加載項 。這可以將Cookie存儲在低完整性Cookie 存儲中。
  • 關閉UAC ,這使得所有程序都以高完整性 級別運行。但是,這對於IE來說並不安全。
  • 通過創建海拔策略 ,將IE代理程序提升到中等完整性級別。操作方法請參考以下鏈接。

    https://msdn.microsoft.com/en-us/library/bb250462(v=vs.85).aspx#upm_cfgpm

注:UAC的失活應該只用於測試目的來完成,如果你禁用它(永久)對生產計算機,您將創建一個嚴重的安全漏洞,請不要做