5

我對什麼策略可用於處理跨平臺分佈式系統中的用戶認證和授權感興趣。我希望能夠將系統中的操作標記爲屬於某個用戶,並且僅允許某些用戶執行某些操作。處理跨平臺用戶認證和授權的策略

背景: 該系統目前在Windows下使用只,其中由用戶發起的動作目前只標記爲從用戶的特定機器的到來。一個行動基本上涉及使用cpu進行一些計算並返回結果。

目前沒有授權進行任何操作,也沒有用戶認證(或計算機之間)。系統作爲低權限服務運行(使用NETWORK SERVICE帳戶)。數據不敏感,並且允許本地網絡上的所有用戶使用系統來表達他們心中的內容。

該系統可以同時部署在Windows域設置中,也可以在沒有域控制器的情況下部署,也可以與不屬於該域的一羣工作計算機混合使用。

問題

爲了將功能添加到系統中,例如說收集使用統計每個用戶或顯示誰是利用有必要的計算機來跟蹤個人用戶。除此之外,如果只允許某些用戶執行某些操作(例如更改系統的某些設置),則還需要某種形式的授權。

我對Windows的這種做法有很好的理解,並且在同構Windows域設置中添加這種類型的功能可以直接使用Windows中的內置身份驗證和授權功能。這也消除了僅爲該系統分配對系統有效的特殊賬戶的需要 - 一旦用戶正常登錄,所有認證和授權都可以在不需要任何額外的用戶交互的情況下完成。

但是如果系統應該能夠在Mac OSX上運行會怎樣?還是Linux?如果它應該在一個Windows域中的某些用戶,OSX上的其他用戶以及一些運行Linux的工作站計算機的混合環境中運行? (實際的系統可以移植到所有這些系統並處理跨平臺通信等等)。我對在這些平臺上處理身份驗證和授權的方式知之甚少,並且不瞭解在平臺之間進行交互時如何實現身份驗證和授權。

在像這樣的分佈式系統中,是否有任何好的策略用於跨平臺用戶認證和授權?注意這裏「跨平臺」的雙重使用 - 既可以編譯不同平臺的程序,也可以在不同平臺之間進行交互。

我將問題標記爲C++,因爲這是系統寫入的語言,但我願意接受任何可以使用C++進行交互的東西。任何想法(包括野生建築變化)都是受歡迎的!

更新:

什麼將是有趣的,能夠達到一個例子:

用戶A登錄到機器1,這是一個Windows機器。

用戶A打開系統的管理界面,選擇機器2(Linux系統)並調整設置。系統驗證用戶A實際上是否有足夠的權限可以執行此操作。

因爲A在登錄時已經驗證了他的身份,所以希望允許他/她在不必提供額外憑證的情況下更改此設置。

+0

是否已有一箇中央用戶數據庫應該重用? – 2011-01-11 20:42:52

+0

@free_easy:不,系統目前沒有任何用戶處理。如果可能的話,我想利用現有的用戶帳戶 - 即單點登錄。 – villintehaspam 2011-01-11 21:01:45

回答