2017-02-08 37 views
5

我正在嘗試IdentityServer4演示項目,並在IProfileService實現中添加用戶聲明到ProfileDataRequestContext.IssuedClaims。我注意到的一件事是,有一個context.RequestedClaimTypes集合,它在我嘗試過的任何資源/標識/範圍配置變體中總是空的。這個集合有什麼條件有數據?何時ProfileDataRequestContext.RequestedClaimTypes不爲空?

回答

-1

我已經發現它,如果你設置了client.GetClaimsFromUserInfoEndpoint = true並且額外的往返是/connect/userinfo端點,並且請求已經請求值「sub」。

7

如果您在定義ApiResources時定義了UserClaims,那麼這些將被填充到context.RequestClaimTypes中。 例如:

new ApiResource 
{ 
    Name = "TestAPI", 
    ApiSecrets = { new Secret("secret".Sha256()) }, 
    UserClaims = { 
    JwtClaimTypes.Email, 
    JwtClaimTypes.EmailVerified, 
    JwtClaimTypes.PhoneNumber, 
    JwtClaimTypes.PhoneNumberVerified, 
    JwtClaimTypes.GivenName, 
    JwtClaimTypes.FamilyName, 
    JwtClaimTypes.PreferredUserName 
        }, 
    Description = "Test API", 
    DisplayName = "Test API", 
    Enabled = true, 
    Scopes = { new Scope("testApiScore) } 
} 

然後你ProfileDataRequestContext.RequestClaimTypes將包含這些要求索賠,您的身份服務器履行你怎麼認爲合適的。

相關問題