2009-02-27 93 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进行管理。

我不一定期待所有这些都很简单或容易,特别是微软很少有支持非微软语言和平台的煽动者。

相关问题