Kerberos - 不同子目录上的多个帐户

时间:2018-01-09 01:00:49

标签: c# windows authentication asp.net-web-api kerberos

我试图通过Windows Integrated Auth为内部WebApi服务套件实现Kerberos。我一路上学到了很多东西,并了解SPN对Kerberos的重要性。

我面临的困难是我们有多个服务(最多30个),每个服务都有自己的服务帐户。它们托管在不同的子目录上,而不是子域。例如:

server.domain.com/reference.api
server.domain.com/client.api

似乎SPN与我的方案不兼容(默认情况下)。必须根据服务器的netbios和FQDN(server.domain.com)注册SPN,并且只能为每个主机注册一个帐户。

我有什么选择?

我能想到的几种可能性是:

  1. 使用自定义服务类(即不是HTTP),所以我正在注册一个spn:
  2. setspn -s referenceapi / server.domain.com domain / reference_api_user

    1. 使用可选的'服务名称'注册spn(https://msdn.microsoft.com/en-us/library/ms677601(v=VS.85).aspx
    2. 时的专有名称或专有名称

      这些可能性的第一阶段是注册SPN,这将是相当直接的,但我不确定我们在客户端需要做什么。由于这些服务都是内部的,我们可以完全控制每个客户。我们目前正在使用HttpClient。

      有什么建议吗?以前有人遇到过类似的问题吗?我无法相信我是第一个尝试在多个服务和帐户中实施Kerberos的人,其中每个服务都是默认网站的子目录。

1 个答案:

答案 0 :(得分:0)

您对身份验证和授权感到困惑。注册一个SPN,让用户进行身份验证并创建30个Windows组,添加用户并配置IIS以授权这些用户。