【问题标题】:What identities are used for WCF Application running on IIS?在 IIS 上运行的 WCF 应用程序使用哪些标识?
【发布时间】:2012-06-28 22:11:21
【问题描述】:

我的网络应用程序具有以下设置..

  • 在 IIS7 上托管的 WCF 应用程序
  • 基本 HTTP 绑定 - SecurityMode = TransportCredentialOnly 和 ClientCredentialType = Windows。
  • .Net 4.0
  • 该应用使用“ApplicationPoolIdentity”在 .Net 4.0 应用程序池中运行。
  • IIS 使用“应用程序直通”身份验证连接到文件系统。
  • 客户端和服务都在 IIS 下运行 - 即客户端是网站,服务是 IIS 托管的 WCF 服务。

我想了解的是,在身份验证和使用服务的各个阶段使用了哪些用户帐户。

  • 我了解 ApplicationPoolIdentity 是为每个创建的应用程序池生成的内置 Windows 帐户 - 这是 w3wp.exe 将为网站运行的帐户吗?

  • 在客户端和服务器之间没有指定凭据 - 这是最有趣的一点。当我的客户端连接到我的 WCF 应用程序时,使用什么身份对服务进行身份验证。我假设应用程序池托管客户端网站的应用程序池标识?

  • 如果是这样,那么如果两个站点使用两个不同的应用程序池会怎样?

  • 或者该服务是否只需要机器(或域)上的有效帐户并且足以进行身份​​验证?

  • 如果我将应用程序池更改为使用特定的用户帐户,这会改变什么吗?我再次假设只要客户端通过有效的机器帐户就可以了吗?

还有,,,

  • 文件系统使用什么身份?

  • “ApplicationPoolIdentity”对机器和文件系统有什么权限。

  • 最后,在 SQL Server 集成安全性的情况下,如果我的服务与 SQL Server 数据库通信,则将什么身份传递给 SQL Server。

提前致谢。

【问题讨论】:

    标签: wcf iis windows-server-2008 application-pool


    【解决方案1】:

    我了解 ApplicationPoolIdentity 是 Windows 内置的 为每个创建的应用程序池生成的帐户 - 这是 为网站运行 w3wp.exe 的帐户?

    是的。这称为虚拟帐户,它允许 IIS 为每个定义的应用程序池创建唯一帐户,还创建一个安全标识符来表示应用程序池名称。请记住,这不是真正的用户帐户。有关它的更多信息,您可以查看以下链接:http://technet.microsoft.com/en-us/library/dd548356.aspx

    在 clent 和服务器之间没有指定凭据 - 这是 最有趣的一点。当我的客户端连接到我的 WCF 时 应用程序使用什么身份对服务进行身份验证。一世 假定应用程序池托管客户端的应用程序池身份 网站?

    是的,与使用本地服务帐户或网络服务帐户的规则相同。

    如果是这样,那么如果两个站点使用两个不同的应用程序会发生什么 游泳池?

    没有,除非您提升这些应用程序池身份的权限。

    或者该服务是否只需要机器上的有效帐户(或 域)并且足以进行身份​​验证?

    那么您将不会使用为您的应用程序池创建的默认虚拟帐户。相反,您会将这些应用程序池与现有的 Windows 帐户相关联。请记住这些 Windows/域帐户拥有什么样的权限。

    如果我将应用程序池更改为使用特定的用户帐户 这改变了什么?我再次假设,只要客户通过 有效的机器账号可以吗?

    只要这些帐户根据您的需要拥有权限,它就可以正常工作。

    文件系统使用什么身份?

    更详细地定义文件系统的含义;您是在严格引用您的应用程序目录吗?

    “ApplicationPoolIdentity”在机器上有什么权限 和文件系统。

    ApplicationPoolIdentity 是用户和 IIS_IUSRS 组的成员,因此将“继承”前面提到的组的权限。

    最后在 SQL Server 集成安全的情况下,身份是什么 如果我的服务与 SQL Server 对话,则传递到 SQL Server 数据库。

    ApplicationPoolIdentity 或您配置为供您的应用程序池使用的帐户。

    【讨论】:

    • 文件系统 - 是的应用程序目录。 ApplicationPoolIdentity 在我的 SQL 服务器中有什么访问权限?我没有分配一个特定的用户,但是当使用这个配置时,它似乎对数据库有足够的权限来执行大多数操作。
    • 那是你的SQL配置的问题。
    猜你喜欢
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    相关资源
    最近更新 更多