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

cra*_*mar 6 asp.net ldap active-directory asp.net-core-mvc

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

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

谢谢

Ric*_*ick 3

http://docs.asp.net/en/latest/security/index.html下的每个身份验证和授权资源

\n\n

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

\n\n

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

\n\n

现在已经过时且麻烦的替代方案(仍然有效):

\n\n

如果您查看,User.Claims您可以看到每个用户组都存在 groupsid 键。在此基础上,您可以执行类似的操作并通过以下方式在您的方法[Authorize(Policy="FOOBAR")]中定义它Startup.ConfigureServices

\n\n
        services.AddAuthorization(\n            o => o.AddPolicy(\n                "FOOBAR",\n                p => p.RequireClaim("http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",\n                    "ENTER GROUP SID")\n                ));\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

另请注意通过此命令行魔术找出组 IDdsquery group -name \xe2\x80\x9cENTER GROUP NAME\xe2\x80\x9d | dsget group -sid

\n