使用Web API调用跨域的安全性

时间:2015-06-03 16:48:53

标签: c# asp.net-web-api

我有一个Web API应用程序,可以在我们的网络上调用100多台服务器。其中一些服务器位于domain1中,一些位于domain2中,另一些位于domain3中。例如:serverA.domain1或serverB.domain2。

这是在用户选择的服务器上获取服务的代码:

var services = ServiceController.GetServices(serverNameWithSuffix)
    .Where(x => x.ServiceName.StartsWith(serviceStartsWith))
    .OrderBy(x => x.ServiceName);

当Web API应用程序作为默认ApplicationPoolIdentity运行时,存在权限问题。所以我将应用程序池更改为在服务帐户下运行。该应用程序然后适用于一个域中的所有内容,但不适用于其他两个域。如果我以我的用户身份运行应用程序池,一切正常。

这样的标准是什么?我是否需要创建一个可以访问所有域上所有服务器的服务帐户,然后在每个服务器上将该帐户设为管理员?

1 个答案:

答案 0 :(得分:0)

我不是系统管理员,但是我的系统管理员已经允许我使用IIS应用程序池运行的服务帐户执行此操作。我认为问题可能是您的服务帐户的组范围。将其更改为全局或通用可能会解决您的问题。您的个人用户帐户很可能已经是具有全局或通用范围的安全组的一部分,这可以解释为什么在您的凭据下运行它的原因。

Group scope