認証と認可のサーバーアーキテクチャのさまざまな部分がどのように機能するかほとんどわかります。私はIdentityServerが大きなソフトウェアだと本当に思っています。IdentityServer 3 + Asp.net ID:スコープ、クレーム、およびクライアント - 明確化
私の発見を要約して、私の質問の根拠を定めることを試みています。
- IdentityServerはOpenID Connectを使用してトークンを発行します。発行されたトークンはIDトークンとアクセストークンです。
- OAuth 2.0フローを使用して、トークンがクライアントに要求されます。クライアントごとに1つのフロー。
- クライアントはスコープのコレクション(少なくとも "openid"、つまりOpenID Connectフローがアクティブ化されていることを伝えなければならないため)を要求します。
- クライアントは、聞く、質問する。 IdentityServerにEntity Frameworkプラグインを使用する場合、この情報はClientScopeテーブルに含まれています。クライアントが要求する権限がないスコープを要求すると、フローは中断されます。
- スコープにはクレームが含まれている場合があります。つまり、スコープにクレームのグループが含まれている場合、クライアントにトークンが発行されるたびに、このトークンにはすべての対応するユーザーのクレームも含まれます。たとえば、「役割」という主張を含むスコープを「役割」と呼ぶ。クライアントが承認されるとすぐに、受け取ったトークンにはすべてのユーザーの役割が(請求として)含まれます。
- 要求された各スコープは、許可されている場合、「スコープ」という名前のクレームで「翻訳」されます。つまり、クライアントが定義された "api"スコープなどを要求した場合、生成されたIDには少なくとも "scope"という値が "api"というクレームがあります。私が書いたもののすべては、より少ない正しい場合
、ここに私の質問は以下のとおりです。クレームがIdentityServerのものに接続されているasp.netのIDテーブル(すなわちAspNetUserClaims)上で定義されているか
- 。私が見たことでは、その名前に照合が行われます。この結論は正しいのでしょうか?言い換えれば、私のクライアントが(役割の範囲を求めているので)クライアントが "役割"クレームを受け取らなければならない場合、IdentityServerの "Asp.Net Identity"プラグインは、認証されたユーザー?
- "EntityFramework"プラグインテーブルを参照すると、 "ClientClaims"テーブルの意味は何ですか?クレームをクライアントに直接つなげる方法を知ることはできません...何が欠けていますか?
のは、私のリソースサーバで、私はResourceAuthorizeで保護アクションは次のように属性きたと仮定してみましょう:私はチェック私の認可マネージャ・で[ResourceAuthorize(「読む」、「受注」)]
をクレーム "order_read"またはクレーム "api"の存在。これらはAuthorizationServerで定義された2つの異なるスコープです.1つは「オーダー・リード」、もう1つは完全なAPIアクセスです。最初のものは第三者のクライアントから依頼されることがありますが、後者のクライアントは依頼されません。それはいい練習ですか?
私のクライアントがid_tokenで行うべきことを理解できません。 jsライブラリOIDCトークンマネージャを使用しているので、この問題を無視する必要がありますか?このライブラリによってセキュリティコントロールが実行されていますか?
- 最後の質問:私のアプリケーションがアクセストークンを提示するとき、どのようにClaimsIdentityが生成されますか? Identity Server上のトークンを検証した後に生成されると言うことができますか?これは、IdentityServerがアクセストークンを取得し、一連の要求でそれを変換することを意味しますか?
ご協力ありがとうございました!
マルコ
ご意見ありがとうございます。ほんとうにありがとう! 1.私は、アイデンティティ管理ライブラリに権限がないことを理解しています。私はちょうどスコープの下で定義された "要求された"クレームがAsp.netアイデンティティクレームにどのようにマッピングされているのだろうかと思っていました。私が見たことでは、このマッピングはちょうど名前で行われます。正しい? 2.私は本当にid_tokenの感覚を得ることができません...あなたは私がよく理解できる任意のリソースがありますか? 3. Ok!それは私が考えていたものです。 4.クライアントクレーム:要求されたスコープにクライアントが含まれていなくても、クライアントは常にいくつかのクレームを持ちたいと思っていますか? 5. OK! – Marconline