1

IdentityServer4で処理される認証/認可を使用してASP.NET Core APIを構築しようとしています。 IdentityServer4は、IdentityとEntity Frameworkコアの両方によってサポートされています。私の目標はかなり標準的で使い慣れた設定です。ユーザーはAPIデベロッパーポータルにログインして、「アプリケーション」(クライアント)を追加し、クライアントIDとクライアントシークレットを生成してAPIにアクセスすることができますFacebook、GoogleなどがAPIアクセスをどのように処理するかについて説明します。ユーザーとクライアントの関連付け

私の精神的なブロックは、IdentityServerがEntity Frameworkの統合を処理する方法に伴います。それらのエンティティは、ConfigurationDbContextPersistedGrantDbContextの2つの異なるコンテキストに関連付けられています。私は、IdentityServer4.EntityFrameworkの1つ以上のClientエンティティを、自分のIDコンテキストの1つ以上のApplicationUserエンティティと関連付ける良い方法を失っています。

これはかなり一般的な使用シナリオのようですが、ドキュメンテーションは妙に静かです。私はまた、様々な雑多な検索の後にオンラインで何かを見つけることができませんでした。私は他の誰かがこの同じ設定を必要としていることを願っており、進める方法についていくつかアドバイスを与えることができます。

答えて

0

ユーザーとクライアントの間に関連はありません。 IdentityServerは、アクセスしようとしているクライアントに関係なく、ユーザーを認証します。

「どのユーザーがどのクライアントを使用することが許可されているか」のようなものを実装したい場合は、認証を超えています。これは通常、アプリケーション固有のロジックなので、アプリケーション自体に実装されます。

https://leastprivilege.com/2017/07/10/authorization-is-hard-slides-and-video-from-ndc-oslo-2017/

+0

私はあなたが何を求めているのか分かりません。私はユーザーとクライアントの間に関連がないことを知っています。それは一種のポイントです。 APIの承認は、クライアントの資格情報を介して処理されます。私は、ユーザーがAPIで作業するために作成する一連のクライアントを管理する方法を提供する必要があります。 FacebookのAPIを考えてみましょう。開発者ポータルにログインし、1つ以上の「アプリケーション」を作成します。実際には、アプリケーションはIdentityServerの用語集のクライアントにすぎません。彼らはIDと秘密を持っており、特定のFacebook APIスコープにアクセスできます。それが私が作成しようとしているものです。 –

+0

OK - 何らかのセルフサービス管理ポータルを構築したいと考えています。それはうまくいきます。IdentityServer自体はそれであなたを助けません。 – leastprivilege

+0

私は難しいとは考えていませんが、IdentityServerがそれを処理することは期待していませんでした。質問のポイントは、アイデンティティユーザーとアイデンティティサーバーの「クライアント」との間に何らかの関係を作成する最良の方法を見つけようとしていることです。コンテキストが分かれているので、私はそれをどうやって行うのか分かりませんし、私の現在の考え方のプロセスよりも少しの指導や良いアイデアを期待していました。 –

関連する問題