1. ホーム
  2. asp.net

[解決済み】ASP .NET Identityにおけるクレームとは?

2022-04-14 13:42:22

質問

新しいASP.NET Identity Coreのクレームメカニズムの意味について、どなたか説明してください。

見ての通り AspNetUserLogins テーブルがあり、その中には UserId , LoginProviderProviderKey .

しかし、どのような場合にデータが追加されるのか、まだ理解できないし、情報も得られない。 AspNetUserClaims テーブルがどのような場面で使われるのか?

どのように解決するのですか?

<ブロッククオート

新しいASP.NET Identity Coreのクレームメカニズムは何を意味するのか?

一般的な認可アプローチには、RoleとClaimに基づくものがあります。

役割ベースのセキュリティ

ユーザーは、1つまたは複数のロールに割り当てられ、そのロールを通じてアクセス権を取得します。 また、あるロールにユーザーを割り当てることで、そのユーザーはそのロールに定義されたすべてのアクセス権を即座に取得することができます。

クレーム・ベース・セキュリティ

クレームベースのIDは、クレームの集合である。クレームとは、あるエンティティ(ユーザーまたは別のアプリケーション)が、そのエンティティにつ いて行うステートメントです。 それ自身は、単なる主張です。例えば、クレームリストには、ユーザーの名前、ユーザーの電子メール、ユーザーの年齢、ある行為に対するユーザーの権限などが含まれます。 役割ベースのセキュリティでは、ユーザーはアプリケーションに直接クレデンシャルを提示します。 クレームベース モデルでは、ユーザーはアプリケーションにクレデンシャルではなく、クレームを提示します。クレームが実用的であるためには は、アプリケーションが信頼するエンティティからのものでなければならない。

以下のステップは、クレームベースのセキュリティモデルで起こる一連の流れを示しています。

  1. ユーザーがアクションを要求する。依拠当事者(RP)アプリケーションは、以下のことを要求する。 トークンを取得します。
  2. ユーザーは、RP アプリケーションが信頼する発行機関にクレデンシャルを提示する。
  3. 発行機関は、ユーザーの認証を行った後、クレーム付きの署名付きトークンを発行する。 のクレデンシャルを使用します。
  4. ユーザーは、RPアプリケーションにトークンを提示する。アプリケーションはトークンを検証する。 署名、クレームを抽出し、そのクレームに基づいて承認または拒否を行います。 リクエストに対応します。
<ブロッククオート

しかし、どのようなときにデータが発生するのか、まだ理解できていません。 は、AspNetUserClaimsに追加され、このテーブルがどのような状況で使用されるのですか?

ロールベース・セキュリティを使用せず、クレームベース・セキュリティを使用する場合。 セキュリティは、AspNetUserClaims テーブルを利用する必要があります。 ASP.NET IdentityでClaimsを使用する方法については、以下のリンクを参照してください。

http://kevin-junghans.blogspot.com/2013/12/using-claims-in-aspnet-identity.html

更新情報

どのような場合にロールベースのセキュリティを使用し、どのような場合にクレームベースのセキュリティを使用しなければならないのでしょうか? いくつかの例を書いていただけますか?

ロールベース・セキュリティとクレームベース・セキュリティのどちらを使うか、使わないか、という明確なシチュエーションはありません。

しかし、クレームベースのアクセス制御では、認可ルールとコア・ビジネス・ロジックをよりよく分離することができます。権限付与のルールが変更されても、コア・ビジネス・ロジックは影響を受けません。クレームベースアプローチを使うことを好むような状況もあるでしょう。

<ブロッククオート

クレームが必要ない場合もある。これは重要な免責事項です。 多くの内部アプリケーションを持つ企業は、統合された Windows認証で得られるメリットの多くを実現することができます。 クレーム Active Directoryは、ユーザーIDを保存するのに最適な仕事です。 また、KerberosはWindowsの一部であるため、アプリケーションは不要です。 は、多くの認証ロジックを含む必要があります。すべての 統合Windows認証が利用できるアプリケーションを構築することで は、すでにIDのユートピアに到達しているのかもしれない。しかし、多くの Windows 以外に必要な理由 の認証が必要です。Webアプリケーションを使用する場合、以下のようなことが考えられます。 Windowsドメインにアカウントを持たない人たちによる また 合併してしまったため、そのようなことが起こりうるのです。 2つのWindowsフォレストにまたがる認証に問題がある。 信頼関係がない(そしてこれからもないかもしれない)。もしかしたら、あなたは .NET Frameworkを使用していない別の会社とIDを共有します。 アプリケーション間でIDを共有する必要がある場合、または 異なるプラットフォーム(例えば、Macintosh)上で実行されている。これらは クレームベースのIDが適切な場面はほんの一例です。 を選択することができます。

詳細については、以下をご覧ください。 http://msdn.microsoft.com/en-us/library/ff359101.aspx