簡體   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