繁体   English   中英

ASP.NET 5 / MVC 6内部部署Active Directory

[英]ASP.NET 5 / MVC 6 On-Premises Active Directory

对于早期版本的.NET应用程序模板(即4.5.2),您可以创建新的Web应用程序,将身份验证更改为“工作和学校帐户”并选择“内部部署”。 在.NET 5 Web应用程序模板中,“工作和学校帐户”选项没有“内部部署”选项。

如何使用ASP.NET标识通过.NET 5中的本地Active Directory(LDAP)进行身份验证。 为了清楚起见,我不是在寻找Windows身份验证,我希望让用户输入他们的凭据并对内部部署AD处理身份验证。 IOW,用户不需要登录到Windows机器,他们可以从他们的移动设备等访问。

我搜索了几个小时但没有用,但如果答案在某处,我不会感到惊讶。 任何帮助表示赞赏!

LDAP和内部部署身份验证不是一回事,这就是为什么,恕我直言,内部部署模式它已经成为“开箱即用”选项 - 而且因为微软几乎没有推动每个人迁移到Azure云: )

内部部署模式(你可以看到这里 )是使用AD作为联合提供者(检查这一个办法SF ),如Twitter或Facebook,如果你喜欢; 您可以在本地使用ADFS(如果您的AD支持它)或在云中使用ADFS(使用Azure)。

如果您正在寻找LDAP身份验证,工作最简单的方法是使用“单个用户帐户”模式(这是像老派的窗体身份验证),并使用AD作为真理的东西,如用户认证的来源(检查 SO文章):

    using System.Security;
    using System.DirectoryServices.AccountManagement;
    public struct Credentials
    {
        public string Username;
        public string Password;
    }

    public class Domain_Authentication
    {
        public Credentials Credentials;
        public string Domain;
        public Domain_Authentication(string Username, string Password, string SDomain)
        {
            Credentials.Username = Username;
            Credentials.Password = Password;
            Domain = SDomain;
        }
        public bool IsValid()
        {
            using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain))
            {
                // validate the credentials
                return pc.ValidateCredentials(Credentials.Username, Credentials.Password);
            }
        }
    }

无论如何,如果您正在使用异构系统,如果您更喜欢使用更“安全”的东西,我建议您使用OAuth2,它作为MVC 6中的开箱即用支持。

更新

如果要将ASP.NET身份与LDAP一起使用,则可以创建个人自定义存储提供程序,如此处所述 这并不困难,但实施起来可能还很长。

由于.NET Core在发货时不支持WS-Fed,因此没有本地选项。 即使在早期版本的.NET on-permises中也没有使用LDAP,它使用WS-Fed与ADFS服务器通信。

很老版本的ASP.NET确实有一个AD成员资格提供程序,但它在安全性方面存在问题,并没有出现在ASP.NET 4.0中

您可以实现自己的成员资格提供程序,但.NET Core没有LDAP / System.DirectoryService类,因此您必须从头开始执行所有操作,包括使库通过套接字与LDAP进行通信。

TLDR:你做不到。

我不知道任何模板或任何东西,但我按照本指南设置了我自己的oAuth2和Owin的身份提供者。

http://bitoftech.net/2015/02/16/implement-oauth-json-web-tokens-authentication-in-asp-net-web-api-and-identity-2/

然后,为了对活动目录进行身份验证,我创建了自己的用户名和usermanager,并使用Directory.Masnagement程序集中的UserPrincipal和PrinipalContext类手动完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM