声明和角色

时间:2015-01-28 20:17:26

标签: authentication active-directory asp.net-mvc-5 adfs2.0 federated-identity

我正在将MVC5应用程序从表单身份验证迁移到联合身份验证。我正在使用ADFS联合我的应用程序,这是正常的。我已经在AD中设置了组,并认为当我使用此代码时:

if(ClaimsPrincipal.Current.IsInRole(@"MY-ROLE"))

如果AD用户实际上是“MY-ROLE”的成员,则返回True,这似乎不是这种情况。我在这里遗漏了什么? (我是联邦服务的新手,如果我错过了一些明显的东西,请原谅我)

1 个答案:

答案 0 :(得分:1)

您需要添加将群组映射到角色的声明规则。

将LDAP属性作为声明发送。

使用“令牌组 - 非限定名称”并映射到角色

即。规则语言将是:

c:[Type ==“http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname”,Issuer ==“AD AUTHORITY”]  => issue(store =“Active Directory”,types =(“http://schemas.microsoft.com/ws/2008/06/identity/claims/role”),query =“; tokenGroups; {0}”,param = c.Value);

然后,应用程序端的WIF将映射到IsInRole。