2010-12-03 9 views
1

いくつかのバックエンドサーバー(UNC、HTTP、SQL)を使用するWebアプリケーションがあります。この作業を行うには、IIS AppPoolを実行しているアカウントのServicePrincipalNamesを設定し、Kerberos委任をバックエンドサービスに許可する必要があります。ケルベロスの委任を自動的に設定する

私は、AD Users and Computersツールの "Delegation"タブでこれを設定する方法を知っています。

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

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

許可されたサービスの読み上げをスクリプト化して、ユーザーが正しく設定されていることを検証するにはどうしたらよいですか?

答えて

3

インターネットで大量の調査といくつかのテストを済ませた後、私は前進しています。

次のコードは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(); 
} 

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

関連する問題