データストアとしてASP.NET IDを持つASP.NETコアでIdentityServer 4を使用する予定です。IdentityServer 4とスコープ固有のユーザー設定
名前、役割などのクレームを持つユーザーと、これらのユーザーに許可するWeb API(スコープ)があるとします。このユーザーは、次の質問を解決するために、ハードウェアデバイスからの測定値へのアクセス。 IdentityServerでは既知のユーザーを認証できますが、どのユーザーがどのデバイスデータにアクセスできるかを知るアクセス制御が必要になります。
この情報はどこに保存しますか?私はそれがIdentityServersストアに格納されるべきではないと思う範囲に固有なので。一方、スコープ独自のデータベースに格納すると、IdentityServersストアで定義されたユーザーに接続する必要があります。すべてのスコープとIdentityServerに固有のユーザーIDを定義する必要がありますか?
ご回答いただきありがとうございます。私はあなたが説明している問題をかなり理解していません。私はそれがこのように動作すると仮定しました:ユーザーはブラウザをログインページに向け、資格情報を入力します。ログインページは、IdentityServerを使用してユーザーを認証し、トークンを戻し、開始ページにリダイレクトされます。開始ページはWebApi(トークンを渡す)を使用して、アクセス可能なすべてのデバイスを列挙します。このコンセプトに間違っているものは何ですか? – NicolasR
スコープとは、クライアントではなく、アクセスしたいリソースを定義するクレームです。 「どのユーザーがどのデバイスデータにアクセスできるかを知るアクセスコントロールが必要です」(わかっているとおり)は、リソースベースの認証質問に変換されます。リソース(この場合、リソースはデバイスデータ)に基づいてアクセス制御を行いたい場合 リソースベースの認証に関する公式ドキュメント: https://docs.asp.net/en/latest/security/authorization/resourcebased .html は、それについてのブログを書いています: http://lutando.net/2016/10/authorization-assertions-on-resources-in-asp-net-core/ – Lutando
グレートブログ記事!私はそれについて考える必要があります。より早く簡単な実装では、ASP.NET IDと、デバイスに関連付けられたロール(グループ)を作成しました。グループに参加していたユーザーは、関連するデバイスのデータを表示できました。しかし、そこにはユーザー、ロール、デバイス定義がすべてデータベースに入っていたので簡単でした。 – NicolasR