2

ASP.NET Identity をデータ ストアとして使用し、ASP.NET Core で IdentityServer 4 を使用する予定です。中央認証/承認を使用するのはこれが初めてで、次の質問を解決する方法を知りたいです。

名前、役割などの要求と、これらのユーザーがハードウェア デバイスから測定値にアクセスできるようにする Web API (スコープ) を持つユーザーがいるとします。IdentityServer を使用すると、既知のユーザーを認証できますが、どのユーザーがどのデバイス データにアクセスできるかを知るアクセス制御が必要になります。

この情報はどこに保存しますか? これはスコープに固有のものであるため、IdentityServers ストアに格納するべきではないと思います。一方、スコープ独自のデータベースに保存する場合は、IdentityServers ストアで定義されたユーザーに接続する必要があります。すべてのスコープと IdentityServer に固有のユーザー ID を定義する必要がありますか?

4

2 に答える 2

2

IdentiyServer が返すユーザー ID を、スコープのデータベースで定義されているユーザーと関連付ける必要があります。

ユーザーごとに異なるログインを追跡できる User テーブルと UserLogin テーブルがあると思います。

次に、スコープのデータベースで、どのユーザーがどのデバイス データにアクセスできるかを指定できます。

于 2016-09-23T00:12:56.337 に答える
1

これは悪い考えであり、おそらくあなたがすべきではない道にあなたを導くでしょう.

これは、スコープを要求するクライアント アプリケーションが、IDP からトークンを要求する前であっても、どのユーザーがどのスコープにアクセスできるかを知る必要があることを意味します (そうしないと、トークン要求は機能しません)。むしろ、これらをユーザー クレームとしてモデル化します。次に、WebApi で、通常のクレーム ベースの承認を行うことができます。

于 2016-09-26T06:29:06.103 に答える