ASP.NET CoreでのWindows認証:手動ログインと自動イントラネットログインおよび使用可能なグループ


9

ログインしているユーザーを識別するためにローカルイントラネットWindows認証と連携するASP.NET Core 3.0アプリケーションがあります。標準のWindows認証動作を使用して、ユーザーのWindowsIdentity問題を問題なくキャプチャできます。

ただし、ユーザーがイントラネットブラウザーの自動ログイン(つまり、パスワードダイアログなし)を使用してブラウザーにログインする方法、またはブラウザーの[パスワード]ダイアログボックスを使用して明示的にログインする方法に応じて、ユーザーのグループに異なる結果が表示されます。

以下は、フィルタリングされたグループメンバーシップリスト(組み込みアカウントを除く)を含むユーザー情報をエコーバックするAPIリクエストです。左側は手動ログイン、右側は自動ログインです。

明示的なログインでは、ユーザーが所属するすべてのカスタムグループが正しく表示されます。ただし、自動ログインの場合、これらの同じグループは表示されません。

手動ログインと自動ログインのグループの違い

また、サーバーのUserインスタンスとIdentityインスタンスを詳しく調べたところ、ユーザーのまったく同じSIDを参照しているため、グループメンバーシップに対して異なる結果が返されるのは奇妙に思われます。

同じアカウントが返されたときにグループリストが異なる理由はありますか?グループはローカルであるため、ドメインアクセスによる問題ではないことに注意してください。

注:ローカルホストでもローカルでテストしています。これをテストするために、ここでWindowsプロキシ設定を設定します。

ログイン構成

チェックボックスをオフにすると、ログインする必要があります。それらをオンにして(とにかくChromiumブラウザーで)、ブラウザーのログインダイアログに自分の資格情報を明示的に入力する必要があります。

回答:


9

ユーザーは、それらのグループに追加されてからコンピューターからログアウトしましたか?

リストされたグループは、ユーザーのログイントークンに保持されます。自動ログインはユーザーの既存のログイントークン(Windowsにログインしたときに作成されたもの)を送信するため、最後にログインしてから追加されたグループは含まれないと考えられます。

ユーザー名とパスワードを手動で入力すると、新しいログインが実行され、ログイン時にすべてのグループの新しいトークンが取得されます。新しいグループがそこに現れるでしょう。


1
いくつかの追加チェックの後、あなたは完全に正しいことがわかりました。最初は問題が表示されてからマシンを再起動したと思っていましたが、実際にログオフとログオンを強制した後、実際に再度ログインした後、グループを確認できました。ありがとう-振り返ってみると明らかでありながら、見逃しがちです。
Rick Strahl、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.