2017-08-24 10 views
2

でApiResourceで使用される、特許請求の範囲および範囲の間で異なっている私は、このように私のIndetityServer4なものでResourceApi作成しました:私はApiResourceを定義している何IdentityServer4

API 1と呼ばれ、直接指定すると主張 - このAPIリソースのname, subとIこのリソースを拡張してApi1.ReadApi1.Writeという2つのスコープを指定し、APIの特定の部分に必要な特定のクレームをすべてのスコープに指定しますが、ApiResourceとScopesで使用されるクレームの違いはわかりません。

ClaimsApiResourceに直接接続され、Scopeに使用されるクレームは何ですか? UserClaimsがApiResourceで定義されている理由 -

私だけsub and nameためApiResourceでUserClaimsを制限しようとしているが、私はApi1.Write請求roleにしたい場合は、それがアクセストークンに送信されていますが、Api1の定義では、唯一のname and subを指定しているのですか? documentation on ApiResource 1として

var apiResource = new ApiResource 
      { 
       Name = "Api1", 
       UserClaims = new List<string> { "name", "sub" }, 

       Scopes = new List<Scope> 
       { 
        new Scope 
        { 
         Name = "Api1.Read", 
         UserClaims = new List<string> {"sub", "name"} 
        }, 
        new Scope 
        { 
         Name = "Api1.Write", 
         UserClaims = new List<string> {"sub", "name", "role"} 
        } 
       } 
      }; 

答えて

2

ApiResourceUserClaims自体は常にアクセストークンに含まれます。あなたが複数のScopeの中でそのAPIを分割する場合、そこにリストされているUserClaimsApiResourceに指定されたUserClaimsに追加されます。

+0

あなたは正しいです、それは正しいです。 – Jenan