如何在身份服务器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用于测试客户端。
答案 0 :(得分:0)
我发现身份服务器允许您选择使用用户配置文件声明标记id令牌(而不必调用userinfo端点)。您基本上为该特定客户端设置了一个布尔属性:
AlwaysIncludeUserClaimsInIdToken = true;
注意,您需要在身份验证请求中请求以下范围:( openid个人资料电子邮件)