AllowedScopes に「all_claims」を設定するハイブリッド フロー クライアントを 1 つだけ使用して IdentityServer をセットアップしました。別のコンピューターには、IdSvr に接続してユーザーをログインさせる MVC アプリがあります。また/admin
、IdMgr のバインドも設定します。メイン アプリと IdMgr には問題なくログインできます。また、ユーザーのログイン後のメイン アプリでは、期待どおりにすべてのクレームを取得しますが、IdMgr では取得しません。
クレームに基づいて IdMgr にカスタム ロジックを追加しようとしています。しかし、Thread.CurrentPrincipal
IdMgr コントローラーに入ると、空です! 私が取得するのは、ロール クレームのみを持つClaimsPrincipalオブジェクトだけです。また、次のプロパティを持つClaimsIdentityオブジェクトが 1 つあります。
AuthenticationType: "Bearer"
IsAuthenticated: true
NameClaimType: "name"
RoleClaimType: "role"
それ以外はすべて null です。ユーザーの名前や ID すらありません。これはなぜですか? IdentityManager ですべてのクレームを取得するにはどうすればよいですか?
これを再現するSystem.Threading.Thread.CurrentPrincipal
には、 のGetUsersAsync
メソッドを調べるだけUsersController
です。
GitHubのこの問題へのリンク