2017-03-28 5 views
0

IDServer4でのAPIリソースには、https://identityserver4.readthedocs.io/en/release/configuration/resources.html#defining-api-resourcesのように2つの異なるスコープを定義したいと考えています。 1つのエンドポイントがあり、ユーザーにログインさせることなくクライアントアプリケーションをヒットさせ、残りのエンドポイントはユーザーの操作(ハイブリッドフローfwiw)で完全に保護されます。IdentityServer4と複数のスコープの使用

どちらのフローでもAPIにアクセスできるようになりました。私が混乱しているのは、上記の構成で、クライアントの資格情報フローを制限された範囲に限定する方法です。私はその流れがAPIの全面的なレベルに達することを望んでいません。ユーザーがログインすると、残りのAPIにアクセスできます... APIの別の「スコープ」...

これはネイティブ/モバイルアプリケーション用です。クライアントの資格情報のクライアントシークレットはアプリケーションに埋め込まれています。 APIの残りの部分がより良い保護を必要とする理由はこのためです。しかし、リソースの両方の許可タイプを許可するようにIdentityServer4を設定すると、誰かがそのクライアントシークレットを見つけてネイティブアプリケーションの外部で使用して、残りのAPIにアクセスすることができなくなるでしょうか?そのグラントタイプをより制限されたスコープに制限する方法...?

答えて

0

これは部分的な回答、または特定のケースで「うまくいく」回答のようですが、bottom of this pageにあります。クライアントの資格証明トークンには「サブ」クレームはありませんが、リソース所有者(と私はハイブリッドなどと仮定します)が行います。エンドポイントに必要な権限を識別する際に、この2つを区別するために使用できます。私はその場合複数のスコープを特定する価値について混乱しています。

1

リソースに独自の構成を持つ2つの異なるクライアントがそれぞれ必要です(スコープを使用)。サブクレームはユーザ識別子クレームと見ることができ、したがって、ユーザクレームフローではないので、クライアントクレデンシャルフローには場所がない。

+0

サブ(件名)の主張について理解しています。私はスコープを使ってクライアントを差別化しようとすると、実際にはスコープが単にクレームになるというどこかを読むまで混乱しました。そしてそれは理にかなっています。私はそれを与えるだろう! – DennisWelu

+0

今後の考え方...ここに記載されている2つの異なるスコープの値は何ですか:http://docs.identityserver.io/en/release/configuration/resources.html#defining-api-resourcesこれらはサービスエンドポイントでどのように「強制」されていますか? – DennisWelu

+0

私の頭の中にApiResourceクラスとClientクラスを混ぜていました。スコープの詳細については、https://leastprivilege.com/2015/12/28/validating-scopes-in-asp-net-4-and-5/を参照してください。 2人のクライアントを持つことはもう一度意味をなさない。各クライアントは、1 ApiResourceで定義された別のスコープにマップされます。進行中... – DennisWelu

関連する問題