1

我有一個ASP.NET頁面託管在外部Web服務器上,該服務器嵌入在CRM Online的聯繫人窗體中的iFrame中。截至目前,iFrame中顯示的頁面可供整個網絡訪問,但我想限制只有通過CRM Online/Office 365驗證的用戶才能訪問。有沒有辦法讓我以編程方式檢查以查看是否用戶通過我的外部應用程序對CRM Online/Office 365進行身份驗證?我對在iFrame本身內實現/驗證用戶不感興趣,但我只想看看他們是否擁有有效的登錄會話,如果是,則顯示該頁面,如果不是,則隱藏它。任何反饋或方向將不勝感激。以編程方式檢查用戶是否已通過Office 365/CRM在線身份驗證

+0

也許SAML可以做到這一點? –

回答

0

在這種情況下,它可能是最容易做到以下幾點:

  1. 設置你的網頁來捕獲用戶的認證信息 - 你需要這樣做識別用戶是誰。這在很大程度上取決於您使用的身份驗證方法。例如,使用Windows身份驗證,您可以獲得用戶域名,即MyDomain\james.wood

  2. 然後通過Web服務查詢CRM,以檢查該用戶(例如基於域名)是否具有系統用戶,具有安全角色或特定權限。

這樣,您不必擔心看到他們是否實際登錄到CRM。您只需檢查用戶是否有權訪問CRM中的數據。您可以考慮添加額外的檢查,以便如果網頁在CRM iframe之外打開,則不會顯示網頁內容。此外,您可以更進一步並在任何對CRM的Web服務調用中模擬用戶。

您可能會覺得以下有用。


編輯

或者你可以看看實現單點登錄。

Implement single sign-on from an ASPX webpage or IFRAME

+0

感謝您的回覆。我已經能夠提示輸入憑據並驗證CRM Web服務的身份驗證。但是,我們希望避免重新提示憑據,而是使用現有的CRM Online/Office 365登錄會話/「令牌」,因爲用戶已經通過身份驗證。我不確定是否有辦法將會話「傳遞」到我們在iFrame內運行的應用程序,或者從我們的iFrame向令牌端點進行某種調用以確定用戶是否已通過身份驗證。也許甚至可以從瀏覽器讀取cookie? –

+0

@JoshMorton,我想你想單點登錄,看看我的編輯 –

+0

我猜你是鏈接在底部也是我的問題的答案? http://stackoverflow.com/questions/37056199/how-to-setup-an-mvc-website-to-use-the-same-sso-as-crm-online-so-that-it-can-be – Daryl

相關問題