2017-05-03 8 views
0

別に動作するIdentity Server(IdentityServer3)に対して認証するための.NET MVCアプリケーションを構成しました。 OpenIdConnectAuthenticationNotifications.SecurityTokenValidate()を設定して、ユーザーのクレームをAuthenticationTicketに配置しました。すべてが期待どおりに機能しているようです。私が初めてMVCアプリケーションのページにアクセスすると、ログイン画面が表示され、ログインした後、リクエストされたページにリダイレクトされます。HttpContext.User.Identitiesに同じIDが2回あります。

しかし、(CheckAccessAsync()のオーバーライドでブレークポイントを使用して)HttpContext.Userを見ると、2つのIDがあります。もっと見ると、両方のIDが同じで、Claimsプロパティにアクセスするとすべてのクレームが2回返されることがわかります。

私が間違っていると思われるアイデアはありますか?

答えて

0

私はこの問題が何かを考え出したと思います。私は認証サーバーとMVCアプリケーションが同じクライアントを使用するように設定していましたが、これは実際に他の問題を引き起こしました。

独自のクライアントを使用するように認証サーバーを変更したとき、MVCアプリのHttpContext.Userにはまだ2つのIDがありますが、クレームコレクションは複製されません。クレームコレクションには、コレクションにアクセスしているクライアントのクレームしか含まれていないと思います。しかし、両方のクライアントが同じクレームコレクションを返すので、私は完全に確信しています。

関連する問題