基于策略的授权可能是当前的最佳实践,但听起来基于角色的授权对您来说可能就足够了。
要执行基于角色的授权,您首先需要在 ADFS 中为发送角色声明类型的应用程序的依赖方信任设置声明规则“ http://schemas.microsoft.com/ws/2008/06/identity /声明/角色“。声明规则如下所示,
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> add(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/role"), query = ";tokenGroups;{0}", param = c.Value);
然后,当您的角色在这些声明中到达您的应用程序时,您将使用集成到 .NET Framework 4.5+ 中的 Windows Identity Foundation (WIF) 处理它们。我相信引用 System.Security.Claims 足以让 WIF 在您的项目中处理角色。然而,这种“处理”是由 WIF 为您完成的。
此时,您应该能够简单地装饰控制器和方法,如下所示,以执行基于角色的授权,这些角色等同于您在 Active Directory 中所属的组的名称。
[Authorize(Roles = "Administrators")]
public class AdminController : Controller
{
}