[解決済み】ASP .NET Identityにおけるクレームとは?
質問
新しいASP.NET Identity Coreのクレームメカニズムの意味について、どなたか説明してください。
見ての通り
AspNetUserLogins
テーブルがあり、その中には
UserId
,
LoginProvider
と
ProviderKey
.
しかし、どのような場合にデータが追加されるのか、まだ理解できないし、情報も得られない。
AspNetUserClaims
テーブルがどのような場面で使われるのか?
どのように解決するのですか?
<ブロッククオート新しいASP.NET Identity Coreのクレームメカニズムは何を意味するのか?
一般的な認可アプローチには、RoleとClaimに基づくものがあります。
役割ベースのセキュリティ
ユーザーは、1つまたは複数のロールに割り当てられ、そのロールを通じてアクセス権を取得します。 また、あるロールにユーザーを割り当てることで、そのユーザーはそのロールに定義されたすべてのアクセス権を即座に取得することができます。
クレーム・ベース・セキュリティ
クレームベースのIDは、クレームの集合である。クレームとは、あるエンティティ(ユーザーまたは別のアプリケーション)が、そのエンティティにつ いて行うステートメントです。 それ自身は、単なる主張です。例えば、クレームリストには、ユーザーの名前、ユーザーの電子メール、ユーザーの年齢、ある行為に対するユーザーの権限などが含まれます。 役割ベースのセキュリティでは、ユーザーはアプリケーションに直接クレデンシャルを提示します。 クレームベース モデルでは、ユーザーはアプリケーションにクレデンシャルではなく、クレームを提示します。クレームが実用的であるためには は、アプリケーションが信頼するエンティティからのものでなければならない。
以下のステップは、クレームベースのセキュリティモデルで起こる一連の流れを示しています。
- ユーザーがアクションを要求する。依拠当事者(RP)アプリケーションは、以下のことを要求する。 トークンを取得します。
- ユーザーは、RP アプリケーションが信頼する発行機関にクレデンシャルを提示する。
- 発行機関は、ユーザーの認証を行った後、クレーム付きの署名付きトークンを発行する。 のクレデンシャルを使用します。
- ユーザーは、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
関連
-
[解決済み】レスポンスのコンテンツタイプをCSVにする
-
[解決済み] ファイルまたはアセンブリ 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform' を読み込めませんでした。
-
[解決済み] Could not find a part of the path ... binroslyncsc.exe
-
[解決済み] vti_cnf」「_vti_pvt」「_vti_script」「_vti_txt」フォルダは何ですか?
-
[解決済み] System.Web.HttpException (0x80004005) のトラブルシューティング方法です。ファイルが存在しません" のトラブルシューティングは?
-
[解決済み] asp.netのページでInvalid viewstateエラーが発生する。
-
[解決済み] クライアントから危険な可能性のあるRequest.Formの値が検出された
-
[解決済み] ASP.NET Identity - HttpContextにはGetOwinContext用の拡張メソッドがありません。
-
[解決済み】ASP.NET Identityを使用する際にテーブル名を変更するには?
-
[解決済み】AspNet Core scaffoldedアプリのLoginとRegisterページはどこにありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リクエストの最大長を超えました。
-
[解決済み] "この操作にはIIS統合パイプラインモードが必要です。"
-
[解決済み] 指定されたCGIアプリケーションでエラーが発生し、サーバーがプロセスを終了した
-
[解決済み] ASP.Net - App_Data & App_Code フォルダ?
-
[解決済み] "Parser Error Message: Global.asaxの「Could not load type」。
-
[解決済み] ASP.net MVCのviewstateに相当するものは何か【終了しました
-
[解決済み] モジュール".dll "はロードされたが、エントリポイントが見つからなかった
-
[解決済み] ASP.NET セッションがタイムアウトする理由、sessionstateのタイムアウト設定
-
[解決済み] .aspx と .ashx MAIN の違いについて
-
[解決済み] IIS 7、HttpHandlerとHTTPエラー500.21