アイデンティティ・サーバー3およびOAuth2のスコープに関する質問があります。Identity Serverのスコープ
一般的に、スコープの理解は、リソースを「グループ化」し、スコープで定義されたリソースに必要な主張を持つことです。
ここでは、oauth2クライアントの資格情報とOIDCハイブリッドフローを使用します。 1つのクライアントはアイデンティティ・サーバーで1つのフローしか提供できないため、これらのフローに対して異なるクライアントを作成する必要があります。
クライアントクレデンシャルフローの場合、スコープにはクレームが存在しないため、「リソース」タイプが必要です。ハイブリッドフローでは、サブクレームなどと「同一性」があります。
フローごとに異なるスコープを作成する必要がありますか?私は "myservice.client"、 "myservice.hybrid"またはsthのようなスコープを見たことがないので不思議です。そうですね。私の計画は、両方のフローに対して同じスコープを作成することでしたが、異なる情報を含んでいるため、これは「正しく」ない可能性があります。
私がしたくないことは、さまざまなフローに対して異なるAPIメソッドを使用することです。ユーザがいる場合、クライアントはハイブリッドフローを介してユーザコンテキストと接続し、クライアント認証を介してそれ自体を認証する必要があります。
私のコントローラには、承認["ある範囲"]しかなければなりません。 AuthorizationPoliciesに「OR」を付けることは可能ですか?そのため、1つの名前と複数のスコープで
編集:最後の質問のために、私が見つけた:
あなたはまた、例えば、
options.AddPolicyを 請求の要件の一部として、カンマ区切りのリストを指定することもできます(「MustBeGroot "、policy => policy.RequireClaim("権限 "、"読み取り、更新 "));アクセス許可クレームに値がある場合は 承認を渡し、Readまたは 更新の場合は許可します。
右のリンクはhttp://docs.asp.net/en/latest/security/authorization/claims.htmlです。 カンマ区切りの文字列ではなく、リストを指定する必要があります。
ご回答ありがとうございます。私はAllowClientCredentialsOnlyプロパティを見逃しました。これは素晴らしいことです。スコープに関するもう1つの説明:APIにアクセスするためのスコープは、常にクライアントとハイブリッドの両方のフローのリソーススコープになります。ハイブリッドフローに必要なものは、追加のIDスコープです。私は今、それを得たと思う、ありがとう。 – Senj