2017-12-15 8 views
0

アイデンティティサーバーのクイックスタートアプリケーションを使用していましたが、userinfoエンドポイントを呼び出すときに返されるロール情報を追加します。アイデンティティサーバーのuserinfoエンドポイントにロールを追加する方法

public Claim[] GetUserClaims(UserServiceProxy.Dto.User user) 

    { 
     return new Claim[] 
     { 
      new Claim(JwtClaimTypes.Name, user.Username), 
      new Claim(JwtClaimTypes.Email, user.Email), 
      new Claim(JwtClaimTypes.GivenName, user.Firstname), 
      new Claim(JwtClaimTypes.FamilyName, user.Lastname), 
      new Claim(JwtClaimTypes.Subject, user.Username), 
      new Claim(JwtClaimTypes.Role, user.Role ?? "normal"), //have added this 
     }; 
    } 

、これは私が/接続/ userinfoをエンドポイントに呼び出すと、私は(何の役割も)これを取得しない私のGetProfileDataAsync

if (context.RequestedClaimTypes.Any()) 
     { 
      var user = UserClient.FindByUserName(context.Subject.GetSubjectId()); 
      if (user != null) 
      { 
       context.AddRequestedClaims(UserClient.GetUserClaims(user.Result.User)); 
      } 
     } 

から呼び出されます。

{ "名前": "joe3"、 "given_name": "Joe"、 "family_name": "Three"、 "sub": "joe3"}

答えて

0

彼の問題は、私は必要なことだった:クライアントのAllowedScopesリストに役割スコープを追加 GetIdentityResources

public static IEnumerable<IdentityResource> GetIdentityResources() 
{ 
    return new List<IdentityResource> 
    { 
     new IdentityResources.OpenId(), 
     new IdentityResources.Profile(), 
     new IdentityResources.Email(), 
     new IdentityResource{Name = "roles", UserClaims={JwtClaimTypes.Role}} 
    }; 
} 
  • によって返されたリストに役割のための新しいアイデンティティリソースを追加します

    1. AllowedScopes = new List<string> 
            { 
             IdentityServerConstants.StandardScopes.OpenId, 
             IdentityServerConstants.StandardScopes.Profile, 
             IdentityServerConstants.StandardScopes.Email, 
             "roles", 
      
            }, 
      
    2. リクエストでは、ロールスコープのリクエストを追加します。

       "RequestedScopes": "openid profile email roles", 
      
  • +0

    はい、重要なことは、あなたの 'ConfigureServices'にあなたは何とかちょうど' ApiResources'に加えて 'IdentityResources'を追加しているということです。あなたが定義した 'IdentityResources'は、' userInfo'エンドポイントで提供されるものになります – Mashton

    関連する問題