2008-12-01 51 views
1

我們有一個從不同來源收集信息的Web應用程序(共享點)。我們希望能夠將用戶鏈接到各種來源的主要網站,並讓他們進行預先認證。 I.E.他們爲其他來源輸入他們的憑證(這些來源是LDAP,AD和家庭成員的許多不同類型),我們爲他們檢索一些信息,並記住詳細信息(可能是單一登錄以保持安全)。然後用戶可以點擊一個鏈接,在另一個已經通過認證的窗口中打開完整的應用程序。如何打開從一個Web應用程序到另一個已經通過身份驗證的鏈接?

這有可能嗎?

回答

2

Office Server具有單點登錄api作爲內置功能。你可能想看看。它使您能夠安全地註冊用戶憑證,並在運行時訪問它。

1

您需要充當網絡瀏覽器,以便在不同的網站上以本地方式存儲憑據(通常是Cookie)。因此,使用一個適當的客戶端庫與Cookie支持。這可能對大多數網站來說可能。有些站點使用HTTP身份驗證,這些站點也可以更容易地從適當的客戶端庫訪問。要求最苛刻的可以訪問SSL網站,但是現在大多數客戶端HTTP庫也覆蓋了這一點。

您現在需要的只是準備您的Web應用程序,以充當所有這些獨立Web資源的代理。在Sharepoint中究竟做了什麼,好吧,我希望其他人能夠回答這個問題......

1

Single Sign-on是一個很大的任務。維基百科介紹了幾個SSO項目的常用方法和鏈接。

如果你想要的東西較輕的,我已經在過去使用這種方法:

  • 創建一個表來存儲臨時安全令牌的地方,所有的應用程序都可以訪問。
  • 從源應用程序(您的案例中的Sharepoint),根據外部應用程序的請求,在令牌表中保存一個安全令牌(可能是guid,緊密過期和userid)。
  • 重定向到目標應用程序中的請求代理頁面/處理程序。在請求中包含請求的最終頁面和guid。
  • 在代理中,查找安全令牌。如果它存在並且沒有過期,則認證,授權並重定向到最終頁面,如果一切順利的話。如果沒有,則發送權限錯誤。

從安全角度來看,guid幾乎不可能被猜出。您可以通過讓代幣非常快地過期來縮小風險 - 調用代理程序不應超過幾秒鐘。

如果目標應用程序使用Windows身份驗證並且沒有基於角色的邏輯,則不應該做太多。只需重定向並讓你的File/UrlAuthorization來處理它。如果需要,您可以使用安全令牌數據庫處理基於角色的權限。

相關問題