問題タブ [kerberos-delegation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#での「msDS-AllowedToActOnBehalfOfOtherIdentity」ADプロパティへのアクセス/解析
管理する必要があります(管理Kerberos Resource Based Delegation
するC#
方が簡単なのはわかっていPowershell
ますが、それは要件ではありません)。user/computer/service
アカウントの属性は ですmsDS-AllowedToActOnBehalfOfOtherIdentity
が、これは ではCOM
処理できないオブジェクトのようですC#
:
この後、a
他のプロパティとは異なり、私ができることはあまりないようです。それは何らかのCOM
オブジェクトであり、そこにあるアカウントを取得する必要があります。Powershell
このプロパティはオブジェクトを返すと報告されておりSystem.DirectoryServices.ActiveDirectorySecurity
、このクラスには AD などに格納されているバイナリ形式をデコードするための便利なメソッドがあります。しかし、これは のプロパティ呼び出しからの戻り値の型ではないようですC#
。
c# - アプリ プールがドメイン アカウントで実行されている場合、IIS の偽装が機能しない
Windows イントラネット環境で ASP.net アプリケーションを実行しています。現在ログインしているユーザーとして特定のデータベース更新を実行する必要があります。
IIS/サーバー情報:
- IIS バージョン 10
- Windows サーバー 2019
- ASP.net Web フォーム アプリケーション
- .NET 4.7
- Windows 認証が有効
- 偽装と匿名認証が無効になっています
- アプリ プールは統合されたパイプラインを使用します
- アプリ プールは、必要に応じて他のリソースにアクセスする権利を持つ、その ID の ドメイン サービス アカウントで実行されます。
その他の詳細:
- すべてのデータベース接続文字列は、統合セキュリティ = true のように設定されています
- Active Directory で、Web サーバーと SQL サーバー間の制約付き委任を構成し、MSSQLSvc : 1433およびMSSQLSvc (ポートなし)を許可する
- ドメイン サービス アカウントは、Web サーバーのローカル管理者グループのメンバーです (テスト目的のみ)。
現在ログインしているユーザーとして実行する必要があるデータベースの更新を実行すると、次のように偽装します。
これは例外をスローします -
System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
AppPoolIdentity (デフォルトのアプリ プール ID)を使用するようにアプリ プール ID を変更すると 、偽装は正しく機能します。
この偽装がAppPoolIdentityでは機能するのに、ドメイン サービス アカウントでは機能しないのはなぜですか?