ビルドした複数のアプリケーションに対して中央認証サーバーを作成する必要がありますが、その特定のアプリケーションに固有の役割とクレームは引き続きあります。マイクロソフトによるさまざまなサービスを使用した類推を説明しましょう。クライアント特有の要求クレデンシャルserver4 asp.netコアIDを使用
私はMicrosoftアカウントにサインアップするため、認証情報は中央サーバーに保存されます。今私はアカウントを使用してログインし、私はaccount.microsoft.comに着陸する新しいスタートを前提としています。今、私はmsdnをクリックしてサインインします。それは認証サーバー上のログインページと、同意画面とmsdnに戻ります私はxboxに行き、同じことをする。現在、MDSNとXBOXは2つの全く異なるアプリケーションで、それぞれ独自のApi、Webアプリケーション、モバイルアプリを持っていますが、同じ認証サーバーを使用しています。
今まで私はIdentity Frameworkを使用して独立したアプリケーションを作成していましたが、かなり快適でしたが、これまでのことよりもはるかに複雑です。私はIdentityServer4を使って中央の認証サーバーを探しており、公式のdocサイトにあるすべてのチュートリアルを完了しています。そのため、概念の基本的な考え方があります。
私が必要とするのは、各アプリケーションが他のアプリケーションに関する知識を持っていなくても独自の役割と要求を指定できるようにすることです。また、中央サーバーは外部認証を有効にします。中央サーバのコアアイデンティティ
現在のアーキテクチャ
- 中央Identity Serverの(IdentityServer4、ASP.NETコアアイデンティティ、Entity Frameworkのを使用して)、中央サーバの
- 一つの中央DB
- 複数のアプリケーションセット(API、MVCアプリケーション、Xamarinモバイルアプリ)
- つまたは複数のDB私は必要性につき
物事として各アプリケーションのための今
- デシベルに格納されているユーザの請求を取得するアイデンティティリソースをカスタマイズしますが、私は1つの役割を追加した場合、それはAPIのリソースとクライアント
- ストア私の心に、アプリケーション固有のDBにおける主張と役割を思い付いたが、私はこれらの問題
-
01直面するであろうことを推測
- まず、中央サーバからIDを取得してから、アプリケーション固有のDBから申し立てを取得する必要がありますので、authロジックを配線するには多大な労力を要します。
- どのように私がaspを使って行うことができるかわかりません。中央の認証サーバーにクライアント側
- 未使用のテーブルの上にネットアイデンティティ
- アプリケーション間で認証ロジックの重複
代替ソリューション
これらのスタックオーバーフローに関する質問は、ほとんどの最も近くを取得しますが、正確なソリューション
-
ではありません
- ASP.NET Core Identity and Identity Server 4 - [Roles, Claims and IdentityResources]
- IdentityServer, Claims and Roles
- How to add additional claims to be included in the access_token using ASP.Net Identity with IdentityServer4
正しい方向に私を取る任意のガイダンスは
EDIT#1を助ける:それは誰かがオフトピックとして、この質問にフラグを立てたように思えるので、ちょうど私が探していますことを明確にしたいですアイデンティティ・サーバー4とasp.netのコア・アイデンティティを使用し、いくつかの推奨事項ではない特定のコード/ソリューションについては、答え以外のガイダンスはより明確な理解と理解のために歓迎されますが、コードだけで十分です。コミュニティのガイドライン。
EDIT#2
@ travis.jsによって示唆されているように私は、クライアント側で認証を行ってみましたが、私はどのように私は、クライアント側の主張に[承認(役割=「管理者」)]のようなものを実装するのです理解することができません
今までに試したことと、あなたのコードでどのような問題が発生しているのかを指定する必要がありますか?詳細については、Idsrv4のマニュアルを参照することができます。 – Rohit
@Rohit私は今まで達成できることを書いています。すなわち、アイデンティティーリソースをカスタマイズしてデータベースに格納されたユーザークレームを取得しますが、それは私にAPIリソースとクライアントの数として繰り返し役割を返すことと、各アプリケーションが必要なことは、他のアプリケーションについての知識も全く持たずに、自分自身の役割と要求のセットを指定できることです公式文書のすべてのチュートリアルを完了し、githubコードファイルのすべての文書を読むことを書いた –
クライアントごとにスコープを定義しましたか?どのタイプの認証モードを使用していますか? – Rohit