【问题标题】:Setup kerberos delegation automatically自动设置 kerberos 委派
【发布时间】:2011-05-19 16:04:37
【问题描述】:

我有一个使用一些后端服务器(UNC、HTTP 和 SQL)的 Web 应用程序。为了使这项工作正常进行,我需要为运行 IIS AppPool 的帐户配置 ServicePrincipalNames,然后允许将 kerberos 委派给后端服务。

我知道如何通过 AD 用户和计算机工具的“委托”选项卡进行配置。

但是,该应用程序将部署到多个 Active Directory 环境中。事实证明,手动配置委派很容易出错,并且调试错误配置导致的问题非常耗时。我想创建一个可以为我执行此操作的安装脚本或程序。

有谁知道如何在 AD 中编写脚本或以编程方式设置约束委派?

如果我无法编写脚本读取用户允许的服务以验证它是否已正确设置?

【问题讨论】:

    标签: installation kerberos delegation


    【解决方案1】:

    好的,在互联网上进行了大量挖掘和一些测试之后,我有一个前进的方向。

    以下代码是c#。 可以通过 setspn 实用程序为用户或计算机设置 SPN。

    或者,以下 C# 代码也可以这样做:

    DirectoryEntry de = new DirectoryEntry("LDAP://"+usersDN);
    
    if (!de.Properties["servicePrincipalName"].Contains(spnString))
    {
        de.Properties["servicePrincipalName"].Add(spnString);
        de.CommitChanges();
    }
    

    设置约束委派:

    if (!de.Properties["msDS-AllowedToDelegateTo"].Contains(backendSpnString))
    {
        de.Properties["msDS-AllowedToDelegateTo"].Add(backendSpnString);
        de.CommitChanges();
    }
    

    如果用户启用了非约束委派,您可能需要在启用约束之前将其关闭 - 但我没有完全测试此场景。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      相关资源
      最近更新 更多