asp.net Identity Role声明在Thinktecture.IdentityServer.v3中

时间:2015-01-19 04:58:40

标签: asp.net-identity thinktecture-ident-server claims

我有一个示例Auth服务器设置使用Thinktecure.IdentityServer.v3,它也插入了Thinktecture.IdentityManager。我也使用asp.net身份和实体框架,所以我也连接了Thinktecture的相关插件。下面的相关NuGet包

<package id="Thinktecture.IdentityManager" version="1.0.0-beta3" targetFramework="net451" />
<package id="Thinktecture.IdentityManager.AspNetIdentity" version="1.0.0-beta3" targetFramework="net451" />
<package id="Thinktecture.IdentityModel.Core" version="1.3.0" targetFramework="net451" />
<package id="Thinktecture.IdentityServer.v3" version="1.0.0-rc" targetFramework="net451" />
<package id="Thinktecture.IdentityServer.v3.AspNetIdentity" version="1.0.0-rc" targetFramework="net451" />
<package id="Thinktecture.IdentityServer.v3.EntityFramework" version="1.0.0-rc" targetFramework="net451" />

我已根据IdentityServer样本库中包含的示例项目注册了IdentityManager和IdentityServer。

我已成功使用IdentityManager创建了一个用户,并创建了一个名为&#39; Admin&#39;的角色声明。我已将用户添加到此角色/声明中。

使用&#39; JavaScript隐式客户端&#39;从客户端示例中,我使用正确的凭据通过我的Auth服务器登录。我应该受到挑战,然后使用身份令牌成功返回到客户端应用程序。

JavaScript Implicit Client允许您查看Identity令牌的内容。没有列出的角色&#39;令牌中存在的声明......我理解这些声明是asp.net身份特定的。

我的问题是......如何在身份令牌中包含这些角色声明?

我是否需要创建一个名为&#39; roles&#39;的自定义范围,应用ClaimsRule来返回类型&#39;角色&#39;然后尝试在自定义ClaimsProvider中实现ClaimsRule?如果是这样,我还没有看到我们如何在任何文档中正确实现ClaimsRule。

事实上,在RTM之后,asp.net身份似乎是开箱即用的支持......也许有一种更简单的方法?

如果需要任何其他信息或配置样本,我可以提供:)

1 个答案:

答案 0 :(得分:4)

事实证明......有一种更简单的方法(目前提供开箱即用)

StandardScopes.Roles作为预定义范围提供。

将此添加到您的Scopes集合以及ScopeRestrictions的{​​{1}}。

现在客户端在请求id令牌时需要在scope参数中添加'roles'。

这可能是非常自我解释但我错过了它,因为它不在样本仓库(我看到)或任何文档中。希望这可以帮助任何其他新手用这个伟大的产品捅一下