2009-02-27 92 views

回答

3

如果您可以使用Keberos對PHP應用程序進行身份驗證,則可以使用Kerberos委派將憑據傳遞到輔助服務器。

Ken Schaefer有一系列關於Kerberos的博客,其中包括this article的授權。

1

必須將每個用戶單獨驗證?如果沒有,則可以將IIS設置爲模擬一個人。

+0

可能工作。但分別驗證每個用戶會更可取... – 2009-02-27 09:51:04

1

我知道如果您通過系統DSN創建它,您可以提供您想要與ODBC連接關聯的登錄名和密碼。我假設登錄un/pw可以是windows用戶帳戶。

這樣做似乎限制你一個預定的帳戶。 也許可以創建一個組,添加所需的用戶,密碼保護目錄並只允許組訪問該目錄。

雖然你沒有說你正在使用哪個數據庫。如果你使用MS Access,我知道你可以隱藏你的數據庫密碼。看我的comment on another post

0

你在PHP上運行IIS的方式是哪種?作爲獨立的CGI或ISAPI?

我的首選解決方案是在SQL Server上爲訪問提供一個單獨的用戶,而不是試圖強制IIS以模擬用戶的身份運行,這對開發機器來說很好,但稍後對於生產或甚至是升級。

但是,如果您使用的是FastCGI,則可以模擬一個用戶,該用戶使用配置文件從我記得的配置文件運行該進程,從而傳遞用戶登錄的憑據。

1

通過Kerberos模仿是最安全的答案,也是最簡單的管理方式。在訪問像數據庫這樣的資源時,單獨的「合成」用戶意味着您基本上繞過了數據庫授權的所有可能性,獲得了重複的訪問管理點,並且在數據庫級別獲得了零追蹤(您只能看到MySyntheticUser試圖訪問某些內容,而不是誰在它後面)。

話雖如此,我應該警告你,微軟的Kerberos並不總是如你所期望的那樣直截了當。在純.NET解決方案,IIS,SQL Server 2005,AD域和Internet Explorer之間,我們遇到了很大的麻煩。其中大部分是爲了完全正確地配置信任。另外,雖然我自己不是PHP開發人員,但我發現some indications可能在訪問Kerberos庫功能時遇到問題。找出你可以得到什麼支持SSPI。此外,您的PHP進程必須具有模擬用戶的必要權限,我相信這些權限可以通過IIS進行管理。

我不一定期待所有這些都很簡單或容易,特別是微軟很少有支持非微軟語言和平臺的煽動者。

相關問題