2011-02-24 40 views
1

我們正在嘗試爲我們的案例構建最佳安全方案。WCF安全許可證方案

一家公司可以將我們的軟件安裝在多臺電腦上。一家公司可以購買可以在員工之間共享的多個許可證。每當一位員工想要使用我們的軟件時,他/她將能夠看到彈出屏幕,其中顯示了公司已購買的所有許可證。然後,如果使用許可證,員工將能夠看到誰在使用它。

  1. 爲了查看所有公司許可證,不必輸入密碼。有必要區分公司購買的許可證。

  2. 當用戶想要使用許可證(使用應用程序)時,他必須輸入自己的密碼。

WPF應用程序和服務器之間的連接將使用WCF服務完成。必須有某種令牌可以檢查每隔5分鐘是否可以連接到服務器,否則應用程序將關閉。

我們在這裏想到的是爲每個公司部署一個證書。無論何時該公司將通過證書進行身份驗證,只要應用程序啓動,我們就可以顯示公司許可證。

然後,當用戶想要打開應用程序時,他將選擇一個許可證,並提示密碼框。另一個身份驗證將使用SQLMembershipProvider完成。

是否可以實施?請告訴我們你的想法。

+0

所有這些當然都是可能的......但更大的問題是您是否願意實施這樣的系統。考慮一下您的許可證服務器或公司在短時間內(例如15分鐘,甚至)失去互聯網訪問的情況。然後會發生什麼?還有很多其他可能的情況,這只是合法的情況。 – 2011-02-24 05:02:39

回答

1

您還沒有告訴服務器託管在內部或中心位置。需要的是未命名的許可證來跟蹤併發用戶(或併發會話,即同一用戶可以使用來自多臺計算機的應用程序)。這是我爲內部部署服務器所做的概述:

  • 對於每個公司,創建一個許可證 文件。它可以像xml 文件一樣簡單,該文件包含許可證號 ,有效日期,公司 標識符(&其他信息)等數據。 重要的是使用您的私鑰加密 內容。您還應該存儲散列以檢查是否存在篡改
  • 將授予每個公司將許可證文件放置在其配置位置的服務器上。許可證交付可以是手動(電子郵件/網絡下載)或自動(提供註冊碼以下載許可證)
  • 服務器代碼將使用您的公鑰讀取許可證並應用許可規則。
  • 對於集中託管的服務器,大綱類似,但許可證存儲將在您的控制之下,因此不需要加密該數據。然而,重要的是向每個公司頒發一些標識符令牌(比如數字證書),以便您可以跟蹤正確的公司。

用戶身份驗證與此無關,您可以使用任何您需要的身份驗證方案。無論何時用戶通過身份驗證(例如使用用戶名/密碼),許可證都將被標記爲已消耗。對於中央服務器(託管服務)模型,您可以使用用戶身份驗證來驗證公司(不向其發佈單獨的數字證書)。