Active-Directory

針對 Active Directory 進行身份驗證時使用哪個欄位?

  • September 25, 2017

Active Directory 使用者對象包括許多可以被視為標識符的欄位。下面列出了其中一些及其在 ADUC 中的標籤及其屬性名稱:

  • 全名 - cn
  • ? - 姓名
  • 使用者 sAMAccountName 登錄 - sAMAccountName
  • 使用者 UPN 登錄:userPrincipalName
  • ? - 專有名稱

我試圖讓我們的開發人員在編寫針對 AD 進行身份驗證的自定義程式碼時標準化僅使用其中之一 - 問題是我不確定哪個是“正確的”,或者不同的程式碼是否正確情況。我什至不確定是否應該使用上述任何欄位!

有沒有其他人選擇了一個一致地使用,是什麼影響了你的決定?有什麼文件可以澄清這個問題嗎?

CN(通用名)不適合登錄,因為單獨的 CN 不能唯一標識使用者。我可以有一個

CN=Ryan Ries,OU=Dallas,DC=Domain,DC=com

我也可以有一個

CN=Ryan Ries,OU=New York,DC=Domain,DC=com

使用者的 CN 也是一個 RDN(相對專有名稱)。它們具有相同的 CN,但 DN 不同。如果您的組織中有兩個名為 Ryan Ries 的人,您可能會注意到您遇到了問題,並且您必須為第二個人設置 SamAccountName,例如rries2.

DN(專有名稱)不適合登錄,因為誰想使用類似的使用者名登錄系統CN=ryan,OU=Texas,DC=brazzers,DC=com?雖然使用 DN 確實可以唯一且明確地辨識使用者,但必須輸入是很煩人的。文件系統上的相對路徑和絕對路徑是同一種概念。這也意味著您無需搜尋即可確切知道對像在目錄結構中的位置。你經常不這樣做。

這稱為歧義名稱解析 (ANR) - 當您沒有使用者的專有名稱時,在目錄中搜尋使用者。

UPN(使用者主體名稱)非常好,因為它們看起來像電子郵件地址,可以與使用者的公司電子郵件地址相同,易於記憶,並且首選登錄,因為名稱將被搜尋首先在本地域中,然後在森林中搜尋它。

微軟表示: UPN 的目的是整合電子郵件和登錄名稱空間,以便使用者只需要記住一個名稱。UPN 是 Windows 使用者的首選登錄名。使用者應該使用他們的 UPN 登錄到域。在登錄時,首先通過搜尋本地域驗證 UPN,然後搜尋全域編錄。未能在本地域或 GC 中找到 UPN 會導致 UPN 被拒絕。在創建使用者帳戶時,可以分配 UPN,但不是必需的。

在設計應用程序時,請記住最後的“不需要”位。

SamAccountName 也很好,因為 SamAccountName 需要對域中的每個人(但不是森林)都是唯一的。此外,SamAccountNames 很短。大多數人使用 SamAccountNames 登錄,即使他們沒有在 AD 林中唯一標識您,這就是為什麼您必須指定一個域名以與您的 SamAccountName 一起使用,以便系統知道您嘗試登錄的域.

以下是有關該問題的一些出色文件以供進一步閱讀:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms677605(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms680857(v=vs.85).aspx

引用自:https://serverfault.com/questions/567776