問題タブ [advapi32]
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# - PowerShellでWindows API AuditEnumerateCategories関数を使用するには?
PowerShell を使用して、現在の高度なセキュリティ監査ポリシーを取得したいと考えています。を使用できますauditpol.exeが、その出力は OS 言語ごとに異なるため、解析が困難です。
設定は、のREG_NONE 値に格納されますHKEY_Local_Machine\Security\Policy\PolAdtEv。その非公式の構造テーブルを使用して、値を解析しようとすることができました。ただし、私が好むアプローチは、.NET の Windows API 関数を使用することAuditQuerySystemPolicyですadvapi32.dll。
この記事の大きな助けを借りて、次のように PowerShell で Type を作成しました。
タイプは正常に作成されましたが、すべての監査カテゴリの GUID を取得する最初のステップで失敗しました。さまざまなタイプの問題があります。私は例えば
AuditEnumerateCategoriesまた、定義出力を からIntPtrに変更しようとしましたGuid。の出力ppAuditCategoriesArrayは
GUID 構造体へのポインターの配列と構造体自体の両方を含む単一のバッファーへのポインター。
残念ながら、PowerShell でそれを処理する方法がわかりません。
kerberos - Java と Kerberos を使用して別のユーザーとしてプロセスを作成する
私は Java サーバー アプリケーション (サービスとして Windows で実行) に取り組んでおり、次のシナリオを実現したいと考えています。
- ユーザーがサーバーに POST 要求を発行します。ユーザーは Kerberos (SPNEGO、エンタープライズ環境の SSO) で認証されます。
- サービスは新しい Java プロセスを作成します。プロセスは、サービス ユーザー (偽装/委任) ではなく、認証されたユーザーとして実行する必要があります。
- 新しいプロセスは、ユーザーのセキュリティ コンテキストで実行する必要があります。Kerberos 認証を必要とする他のリモート システム (ファイル共有、他の Web サービスなど) と通信する必要があります。
実用的な概念実証:
- Kerberos 認証用のWaffleを使用した Spring Boot アプリケーション。
- 認証済みユーザーの新しいプロセスを作成します。JNAと Windows ネイティブ関数CreateProcessAsUserを使用します。
- プロセスは、認証されたユーザーとして作成されます。これは、Process Explorer ユーティリティで確認できます。
不足しているものと機能していないもの:
- プロセスは他の Kerberos チケットを要求できません (たとえば、InitializeSecurityContext() を呼び出して)。
- プロセスはネットワーク共有にアクセスできません。
- このプロセスは、Kerberos 認証を必要とする他の Web サービスと通信できません。
私の質問:
- コードに何が欠けているか、または何が間違っている可能性がありますか?
- 私が達成したいことを実装することさえ可能ですか?
サーバー - 認証 (短縮、Waffle から抽出):
サーバー - CreateProcessAsUser: