我在远程服务器上运行了IdentityServer和Membership Reboot以及IdentityManager,我使用IdentityManager的Admin UI来设置用户,并添加角色&声称对用户说。
我正在开发一个将使用远程服务器进行身份验证的WebApi / SPA项目。使用fiddler我可以从远程盒子上的IdentityManagner请求令牌,并使用此令牌来对抗需要授权的本地WebApi。如果令牌有效,WebApi会像正常一样处理,如果令牌是伪造的,我会得到401.效果很好。
问题是当我想要有关用户的其他信息时,没有任何声明或身份信息发生。我不确定问题是在IdentityServer端,WebApi端,还是我在获取令牌时没有正确执行某些操作。
答案 0 :(得分:4)
我没有意识到我们需要将声明放在Scope定义中。如果其他人偶然发现了这一点我将我的范围改为以下
var scopes = new List<Scope>
{
new Scope
{
Enabled = true,
Name = "publicApi",
Description = "Access to our public API",
Type = ScopeType.Resource,
IncludeAllClaimsForUser = true, //I'll filter this down later
}
};
scopes.AddRange(StandardScopes.All);
return scopes;
可以找到更多详细信息here