如何使用ASP.Net 5(MVC6)Intranet应用程序的活动目录

时间:2015-12-30 23:15:26

标签: asp.net active-directory ldap asp.net-core-mvc

我正在开发一个Intranet应用程序,并希望使用现有组织Active Directory进行用户身份验证和基于策略的角色授权。

有人能指出我正确的方向吗?我有点困惑(实际上很困惑)。

三江源

1 个答案:

答案 0 :(得分:3)

http://docs.asp.net/en/latest/security/index.html

下的每个身份验证和自动设置资源

首先启动一个新的ASP.Net Web应用程序项目,选择Web应用程序模板,然后在右侧窗格中按"更改身份验证"按钮和选择" Windows身份验证"。

现在,您可以在类或方法上使用[Authorize]来检查基本身份验证与RC2的活动目录,您只需使用组名称ala [Authorize(Roles=@"DOMAIN\GROUP")]

现在过时且繁琐的替代方案(仍然有效):

如果查看User.Claims,您可以看到每个用户组都存在groupsid密钥。假设您可以执行[Authorize(Policy="FOOBAR")]之类的操作,并通过

Startup.ConfigureServices方法中进行定义
        services.AddAuthorization(
            o => o.AddPolicy(
                "FOOBAR",
                p => p.RequireClaim("http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
                    "ENTER GROUP SID")
                ));

请注意,RequireClaim的第二个参数是一个字符串数组,允许多个组。

还要注意通过此命令行魔术dsquery group -name “ENTER GROUP NAME” | dsget group -sid

找出组ID