1

いくつかのバックエンド サーバー (UNC、HTTP、および SQL) を使用する Web アプリがあります。これを機能させるには、IIS AppPool を実行しているアカウントの ServicePrincipalNames を構成し、バックエンド サービスへの Kerberos 委任を許可する必要があります。

AD ユーザーとコンピューター ツールの [委任] タブでこれを構成する方法を知っています。

ただし、アプリケーションは多くの Active Directory 環境に展開される予定です。委任を手動で構成するとエラーが発生しやすく、構成ミスが原因である問題のデバッグには時間がかかります。これを実行できるインストール スクリプトまたはプログラムを作成したいと考えています。

AD内で制約付き委任をスクリプト化またはプログラムで設定する方法を知っている人はいますか?

それができない場合、ユーザーが許可されたサービスを読み取って正しくセットアップされていることを検証するにはどうすればよいですか?

4

1 に答える 1

3

OK、インターネットで多くの掘り下げといくつかのテストを行った後、私は前進する方法を手に入れました。

次のコードはc#です。ユーザーまたはコンピューターのSPNの設定は、setspnユーティリティを使用して実行できます。

または、次の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();
}

ユーザーが制約なしの委任を有効にしている場合は、制約を有効にする前にこれをオフにする必要がある場合がありますが、このシナリオを完全にテストしていません。

于 2010-12-10T12:07:53.700 に答える