如何在身份服务器4 /身份验证代码流中请求访问令牌的其他声明?

时间:2017-10-27 22:57:19

标签: identityserver4

如何在身份服务器4 /身份验证代码流中请求访问令牌jwt的额外声明?我的自定义配置文件服务在我的身份验证代码流登录期间始终显示RequestedClaimTypes为0,因此生成的访问令牌jwt具有我的主题声明但没有名字,姓氏或电子邮件声明。

以下是我要求的客户范围: " TestApi openid个人资料电子邮件"

以下是我在身份服务器上的客户端定义:

 new Client {                    
                ClientId = "authorizationCodeClient2",
                ClientName = "Authorization Code Test",
                ClientSecrets = {
                                        new Secret("secret".Sha256())
                                },
                Enabled = true,
                AllowedGrantTypes = GrantTypes.Code,
                RequireConsent = true,
                AllowRememberConsent = false,
                RedirectUris =
                new List<string> {
                 "http://localhost:5436/account/oAuth2"
                },                    
                AllowedScopes = { "TestApi", "openid", "profile", "email" },
                AccessTokenType = AccessTokenType.Jwt
            }

https://github.com/bayardw/IdentityServer4.Authorization.Code用于测试客户端。

1 个答案:

答案 0 :(得分:0)

我发现身份服务器允许您选择使用用户配置文件声明标记id令牌(而不必调用userinfo端点)。您基本上为该特定客户端设置了一个布尔属性:

AlwaysIncludeUserClaimsInIdToken = true;

注意,您需要在身份验证请求中请求以下范围:( openid个人资料电子邮件)