3

我在远程服务器上运行了身份重新启动和 IdentityManager 的 IdentityServer,我使用 IdentityManager 的管理 UI 来设置用户,并向所述用户添加角色和声明。

我正在开发一个 WebApi/SPA 项目,它将使用远程服务器进行身份验证。使用提琴手,我可以从远程盒子上的 IdentityManager 请求一个令牌,并使用这个令牌来对抗需要授权的本地 WebApi。如果令牌有效,WebApi 会像往常一样处理,如果令牌是假的,我会得到 401。效果很好。

问题是当我想要有关用户的其他信息时,没有任何声明或身份信息会出现。我不确定问题出在 IdentityServer 端、WebApi 端,还是我在获取令牌时没有正确执行某些操作。

4

1 回答 1

3

我没有意识到我们需要将声明放在范围定义中。万一其他人偶然发现这一点,我将范围更改为以下

   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;

更多细节可以在这里找到

于 2015-02-19T16:50:04.993 回答