私は現在、asp.netコアを使用してシステムを設計していますが、クレームベースの認証を実装したいと思いますが、1つの特定の部分が私を混乱させています。ユーザークレームを管理するにはどうすればよいですか?
クレームが作成された場合、クレームにはそのタイプと値とオプションで発行者が含まれます。ハンドラでは、この請求および発行者は、アクセスが確認される前にチェックされる。
ただし、この発行者はIDデータベースに格納されていないため、ハンドラは発行者をどのようにチェックしますか?
私はこのすべての仕組みを誤解していますか?私の理解は、あるタイプのクレームを作成し、そのクレームは一定の価値を持ち、その発行者は実際にそのユーザーの価値を持つクレームタイプのバリデーターであるということを理解しました。
ハンドラは値をチェックし、発行者をチェックすることができますが、dbがそれを格納していない場合はチェックできません。私は発行者のポイントを理解していません。
私は、これらのクレームを誰が確認するのか、そしていつでもそのクレームを確認できるように、クレームのコレクションを持たせたいと思います。
私は理解して助けてください。
私はので、これをテストしている:
- アイデンティティとasp.netのコアアプリを使用します。
- ユーザーを登録します。
- タイプ、値、発行者を含むクレームをユーザーに追加します。 (例えば、employeeNumberが、312は、マイクロソフト。
- アクセスを制限する/アクションコントローラの[承認(ポリシー=「MicrosoftEmployeesOnlyを」)]を追加します。
- 要件にStartUp.csにおけるサービスにポリシーを追加します。
- ユーザーがEmployeeNumber型の主張をチェックし、値を持ち、マイクロソフトが発行するハンドラを持つ要件コードを追加します。
- ログインとユーザークレームはdbからIDに読み込まれます
- 発行者(Microsoft)が紛失してローカル・オーソリティと表示されているため、ハンドラはユーザーの検証に失敗します。
ここで私が考えることができるのは、クレームが一旦データベースに追加されると、マイクロソフトによって検証され、現在はマイクロソフトの代わりにアプリケーション(地方局)によって保有されていると考えられます。
それはその後、本当ならば:
- なぜどのハンドラ内のすべての発行者を確認しますか?
- 申し立てを取り消すにはどうすればよいですか?
私は、発行者がクレームを取り消し/無効にすることができることを意味するために、いつでもその発行者に行き、必要なときにクレームをチェックすることができます。従業員は、マイクロソフトで従業員番号を持っていると主張し、マイクロソフトは最初にそれを検証します。その後、マイクロソフトは従業員を蹴飛ばし、システムで彼を削除します。このアプリは、ユーザーがログインしてクレームが有効かどうかを確認するたびに、マイクロソフトと確認することができます。この場合、それはもはや有効ではないでしょう。
私は少し怒っていますか?
ねえ。申し訳ありませんが、私は私の答えを修正するための十分な時間がないため、私の答えを削除しなければならなかった、それはあなたが探しているものではないように思える...私は別のユーザーが手伝いますよ。 –
Matías - とにかくおかげです。 –