問題タブ [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.

0 投票する
1 に答える
218 参照

c# - 偽装された WindowsIdentity に対する IdentityServer ClaimsIdentity

外部 ADFS サーバーに接続するための IdentityServer セットアップがあります。OAuth2 / OpenId Connect 経由でログインしてアクセス トークンを取得できます。AspNet.Core WebApi は、IIS AppPool 内で実行され、Kerberos 委任が有効になっているユーザーが使用されます (インフラストラクチャに興味がないため、チェック方法がわからないはずです)。

私が達成したいのは、WebApi の IdentityServer から取得した ClaimsIdentity が、偽装を使用してパスワードなしで WindowsIdentity に変換されることです。ユーザー名だけで十分です。実際に偽装された WindowsIdentity を使用して、データベースにログオンし、いくつかの変更を行う必要があります。

これが可能かどうかはわかりませんが、かなり長い間これに苦労してきました。

これを偽装実装のベースとして使用しました。私が持っている唯一の問題は、 が a をContext.User.Identity返さないことですが、 .WindowsIdentityClaimsIdentity

私が試した別のアプローチはvar user = new WindowsIdentity(username);、ユーザー名が UPN になる場所を使用することです。ImpersonationLevel.Identityこれにより、代わりにを使用して ID が作成されますImpersonationLevel.Impersonated。このユーザー アクセス トークンを使用して実行するWindowsIdentity.RunImpersonated()と、必要なアセンブリをロードするときに Access Denied または IOException が発生します。

最初の質問: IIS AppPool ユーザーが正しい Kerberos 委任権限を持っているかどうかを確認するにはどうすればよいですか?

2 番目の質問: ユーザー名だけでユーザーになりすますことさえ可能ですか?

0 投票する
1 に答える
278 参照

c# - 統合 Windows 認証を使用する場合の MSAL 4.16.0 の問題

MSAL ライブラリを使用してアクセス トークンを生成する dotnet コア コンソール アプリを作成しています。このリンクに記載されているすべての制約が私がいる組織によって満たされているため、統合 Windows 認証を使用しています。これは、MSAL 4.15.0 ライブラリ バージョンで正常に動作するようです。しかし、MSAL 4.16.0 バージョンの使用を開始すると、次の例外が発生します。

私が書いた簡単なコードは次のとおりです。

さらに明確にするために、これはMSAL 4.15.0まで正常に動作します。バージョンMSAL 4.16.0 以降から失敗し始めます。

理由はありますか?