2014-03-04 93 views
2

我一直在負責創建一個小的C#(.NET 4.0),將客戶的Windows 2008 R2服務器上運行控制檯應用程序。應用程序必須「作爲」特定域用戶運行,並且還需要儘可能接近24x7運行。運行代碼作爲特權用戶 - 管理密碼更改

我能創造一個雙控制檯應用程序/ Windows服務,或者我可以使用優秀的FireDaemon運行控制檯應用程序作爲一種服務,這涵蓋了「必須運行所有的時間」方面。

然而,客戶的域名政策是密碼更改每120天 - 包括這個應用程序運行時所使用的帳戶。無法從該政策中排除帳戶。

因此,它看起來像我們將安裝應用程序(作爲服務或通過FireDaemon),帳戶上的密碼將過期,並在下一次服務器重新啓動或應用程序重新啓動時,身份驗證將失敗。

我已經習慣了有部署環境的完全控制,因此我有點難倒就如何解決這個問題。我們如何確保應用程序始終以特權用戶身份運行?

(我知道這在ServerFault的職權範圍至少一英尺)

回答

3

...該帳戶的密碼將過期,並且服務器重新啓動下一次或重新啓動應用程序,該認證將失敗

這是Managed Service Accounts and Virtual Accounts是。因爲你的目標在Windows Server 2008 R2及更高版本,此選項爲您提供:

託管服務在Windows Server 2008 R2和Windows 7的管理提供以下功能,以簡化服務管理的域帳戶帳戶

  • 自動密碼管理。
  • 簡化SPN管理,包括將管理委派給其他管理員。 Windows Server 2008 R2域功能級別提供了其他自動SPN管理。有關更多信息,請參閱本文檔中的「使用託管服務帳戶和虛擬帳戶的要求」。

虛擬賬號在Windows Server 2008 R2和Windows 7是「託管本地帳戶」提供以下功能,以簡化服務管理:需要

  • 沒有密碼的管理。
  • 能夠在域環境中使用計算機身份訪問網絡。
0

我覺得named pipes可以使用這裏。

您可以創建包含用於更新程序正在使用來驗證密碼的方法的服務合同。有一個外部程序接受新的密碼作爲你所選擇的任何形式的輸入,然後將其輸入到服務中。從服務合同中定義在服務器上的方法可以將其存儲在某個地方,然後您可以強制它使用新密碼重新進行身份驗證。