ldap密碼加密方式
㈠ LDAP集成配置需要啟用ssl才能修改密碼
需要。
使用非加密的ldap時,只能對AD域賬號信息查詢。如果要對AD域用戶信息進行修改和新增操作,必須使用(SSL)加密方式連接AD,需滿足如下幾個條件:① AD上需要安裝證書服務。② 連接AD的主機上使用http://myhost.com/certsrv/打開瀏覽器申請證書。③ 如果連接AD的主機是Linux,需要安裝openssl包,製作CA證書
微軟官方給出的ldap修改密碼方案:密碼存儲在 Active Directory 用戶中的對象的 unicodePwd屬性。可以在有限的情況下,寫入此屬性,但無法讀取。該特性只能修改 ;不能將添加的對象的創建日期或通過搜索查詢。 若要修改此屬性 ,則客戶端必須 128 位安全套接字層 (SSL) 連接到伺服器 。為此連接成為可能,伺服器必須擁有一個 128 位的 RSA 連接的伺服器證書,客戶端必須信任生成伺服器證書的證書頒發機構 (CA) 和客戶端和伺服器必須能夠使用 128 位加密。
㈡ ldap伺服器中admin的密碼如何設置讓它永不過期
ldap添加賬戶時設置userAccountControl值 為65536。
㈢ 認證系統,如活動目錄AD、LDAP、Radius這些,究竟是做什麼用的。謝謝你。
AD、LDAP提供目錄服務,即類似於企業、人員黃頁的東西,用戶和組織的信息都被存放在上面,查找起來十分快捷,也可以理解成一種特殊的資料庫。
RADIUS是一種C/S結構的協議,它的客戶端最初就是NAS(Net Access Server)伺服器,現在任何運行RADIUS客戶端軟體的計算機都可以成為RADIUS的客戶端。RADIUS協議認證機制靈活,可以採用PAP、 CHAP或者Unix登錄認證等多種方式。RADIUS是一種可擴展的協議,它進行的全部工作都是基於Attribute-Length-Value的向量進行的。RADIUS也支持廠商擴充廠家專有屬性。用戶接入NAS,NAS向RADIUS伺服器使用Access-Require數據包提交用戶信息,包括用戶名、密碼等相關信息,其中用戶密碼是經過MD5加密的,雙方使用共享密鑰,這個密鑰不經過網路傳播;RADIUS伺服器對用戶名和密碼的合法性進行檢驗,必要時可以提出一個Challenge,要求進一步對用戶認證,也可以對NAS進行類似的認證;如果合法,給NAS返回Access-Accept數據包,允許用戶進行下一步工作,否則返回Access-Reject數據包,拒絕用戶訪問;如果允許訪問,NAS向RADIUS伺服器提出計費請求Account- Require,RADIUS伺服器響應Account-Accept,對用戶的計費開始,同時用戶可以進行自己的相關操作。
㈣ LDAP和AD域的介紹及使用
1 LDAP入門
1.1 定義
LDAP是輕量目錄訪問協議(LightweightDirectory Access Protocol)的縮寫,LDAP標准實際上是在X.500標准基礎上產生的一個簡化版本。
1.2 目錄結構
LDAP也可以說成是一種資料庫,也有client端和server端。server端是用來存放數據,client端用於操作增刪改查等操作,通常說的LDAP是指運行這個資料庫的伺服器。只不過,LDAP資料庫結構為樹結構,數據存儲在葉子節點上。
因此,在LDAP中,位置可以描述如下
因此,蘋果redApple的位置為
dn標識一條記錄,描述了數據的詳細路徑。因此,LDAP樹形資料庫如下
因此,LDAP樹形結構在存儲大量數據時,查詢效率更高,實現迅速查找,可以應用於域驗證等。
1.3 命名格式
LDAP協議中採用的命名格式常用的有如下兩種:LDAP URL 和X.500。
任何一個支持LDAP 的客戶都可以利用LDAP名通過LDAP協議訪問活動目錄,LDAP名不像普通的Internet URL名字那麼直觀,但是LDAP名往往隱藏在應用系統的內部,最終用戶很少直接使用LDAP 名。LDAP 名使用X.500 命名規 范,也稱為屬性化命名法,包括活動目錄服務所在的伺服器以及對象的屬性信息。
2 AD入門
2.1 AD定義
AD是Active Directory的縮寫,AD是LDAP的一個應用實例,而不應該是LDAP本身。比如:windows域控的用戶、許可權管理應該是微軟公司使用LDAP存儲了一些數據來解決域控這個具體問題,只是AD順便還提供了用戶介面,也可以利用ActiveDirectory當做LDAP伺服器存放一些自己的東西而已。比如LDAP是關系型資料庫,微軟自己在庫中建立了幾個表,每個表都定義好了欄位。顯然這些表和欄位都是根據微軟自己的需求定製的,而不是LDAP協議的規定。然後微軟將LDAP做了一些封裝介面,用戶可以利用這些介面寫程序操作LDAP,使得ActiveDirectory也成了一個LDAP伺服器。
2.2 作用
2.2.1 用戶服務
管理用戶的域賬號、用戶信息、企業通信錄(與電子郵箱系統集成)、用戶組管理、用戶身份認證、用戶授權管理、按需實施組管理策略等。這里不單單指某些線上的應用更多的是指真實的計算機,伺服器等。
2.2.2 計算機管理
管理伺服器及客戶端計算機賬戶、所有伺服器及客戶端計算機加入域管理並按需實施組策略。
2.2.3 資源管理
管理列印機、文件共享服務、網路資源等實施組策略。
2.2.4 應用系統的支持
對於電子郵件(Exchange)、在線及時通訊(Lync)、企業信息管理(SharePoint)、微軟CRM&ERP等業務系統提供數據認證(身份認證、數據集成、組織規則等)。這里不單是微軟產品的集成,其它的業務系統根據公用介面的方式一樣可以嵌入進來。
2.2.5 客戶端桌面管理
系統管理員可以集中的配置各種桌面配置策略,如:用戶適用域中資源許可權限制、界面功能的限制、應用程序執行特徵的限制、網路連接限制、安全配置限制等。
2.3 AD域結構常用對象
2.3.1 域(Domain)
域是AD的根,是AD的管理單位。域中包含著大量的域對象,如:組織單位(Organizational Unit),組(Group),用戶(User),計算機(Computer),聯系人(Contact),列印機,安全策略等。
可簡單理解為:公司總部。
2.3.2 組織單位(Organization Unit)
組織單位簡稱為OU是一個容器對象,可以把域中的對象組織成邏輯組,幫助網路管理員簡化管理組。組織單位可以包含下列類型的對象:用戶,計算機,工作組,列印機,安全策略,其他組織單位等。可以在組織單位基礎上部署組策略,統一管理組織單位中的域對象。
可以簡單理解為:分公司。
2.3.3 群組(Group)
群組是一批具有相同管理任務的用戶賬戶,計算機賬戶或者其他域對象的一個集合。例如公司的開發組,產品組,運維組等等。可以簡單理解為分公司的某事業部。
群組類型分為兩類:
2.3.4 用戶(User)
AD中域用戶是最小的管理單位,域用戶最容易管理又最難管理,如果賦予域用戶的許可權過大,將帶來安全隱患,如果許可權過小域用戶無法正常工作。可簡單理解成為某個工作人員。
域用戶的類型,域中常見用戶類型分為:
一個大致的AD如下所示:
總之:Active Directory =LDAP伺服器 LDAP應用(Windows域控)。ActiveDirectory先實現一個LDAP伺服器,然後自己先用這個LDAP伺服器實現了自己的一個具體應用(域控)。
3 使用LDAP操作AD域
特別注意:java操作查詢域用戶信息獲取到的數據和域管理員在電腦上操作查詢的數據可能會存在差異(同一個意思的表示欄位,兩者可能不同)。
連接ad域有兩個地址:ldap://XXXXX.com:389 和 ldap://XXXXX.com:636(SSL)。
埠389用於一般的連接,例如登錄,查詢等非密碼操作,埠636安全性較高,用戶密碼相關操作,例如修改密碼等。
域控可能有多台伺服器,之間數據同步不及時,可能會導致已經修改的數據被覆蓋掉,這個要麼域控縮短同步的時間差,要麼同時修改每一台伺服器的數據。
3.1 389登錄
3.2 636登錄驗證(需要導入證書)
3.3 查詢域用戶信息
3.4 重置用戶密碼
3.5 域賬號解鎖
總結
㈤ Java如何修改LDAP已過期的密碼
package com.ido85.party.aaaa.mgmt.ldap.domain;
import javax.naming.Name;
import lombok.Data;
import org.springframework.ldap.odm.annotations.Attribute;
import org.springframework.ldap.odm.annotations.Attribute.Type;
import org.springframework.ldap.odm.annotations.DnAttribute;
import org.springframework.ldap.odm.annotations.Entry;
import org.springframework.ldap.odm.annotations.Id;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* @author rongxj <br/>
* <p>
* objectClasses: 對象類,由多個attributetype(屬性類型)組成,每個實體屬於一個或多個對象類 <br/>
* base: basedn 基礎DN,根節點
* </p>
*/
@Data
@Entry(objectClasses = { "person", "organizationalPerson", "inetOrgPerson", "top",
"posixAccount", "shadowAccount" })
// ,base = "dc=inspur,dc=com")
public class Account {
/**
* Distinguished Name<br/>
* exp: uid=ldapuser4,ou=People,dc=inspur,dc=com
*/
@JsonIgnore
@Id
private Name dn;
/**
* 用戶組織
*/
@DnAttribute(value = "ou", index = 0)
private String ou;
/**
* uid
*/
@Attribute(name = "uid", type = Type.STRING)
@DnAttribute(value="uid", index=1)
private String uid;
/**
* commonname,
*/
@Attribute(name = "cn", type = Type.STRING)
private String name;
/**
* 姓氏
*/
@Attribute(name = "sn", type = Type.STRING)
private String surname;
/**
* mail
*/
@Attribute(name = "mail", type = Type.STRING)
private String mail;
/**
* crypt 加密
*/
@Attribute(name = "userPassword", type = Type.STRING)
private String userPassword;
/**
* crypt 加密 正確的密碼獲取方式,採用二進制
*/
@Attribute(name = "userPassword", type = Type.BINARY)
private byte[] userPassword;
/**
* 最後一次修改間隔(1970年1月1日開始),單位 天
*/
@Attribute(name = "shadowLastChange")
private int shadowLastChange;
/**
* 從上一次修改後,多長時間內不允許修改密碼
*/
@Attribute(name = "shadowMin")
private int shadowMin;
/**
* 從上一次修改後,多長時間過期
*/
@Attribute(name = "shadowMax")
private int shadowMax;
/**
* 提前多少天提醒用戶密碼過期
*/
@Attribute(name = "shadowWarning")
private int shadowWarning;
/**
* 用戶ID
*/
@Attribute(name = "uidNumber")
private int uidNumber;
/**
* 用戶組ID
*/
@Attribute(name = "gidNumber")
private int gidNumber;
/**
* 用戶主目錄<br/>
* /home/uid
*/
@Attribute(name = "homeDirectory")
private String homeDirectory;
㈥ java通過ladp修改ad用戶密碼的問題。
我覺得可能你沒有許可權修改那個節點,或者你給的密碼本身不是加密的,不符合它的要求.
像之前在 OpenLDAP 中就可以對跟密碼相關的節點設定僅允許管理器賬戶訪問.因此 AD 本身是操作系統管理,它可能有其它的完整性驗證方法來核對你的修改是否有效,本身AD伺服器有其它額外的功能,比如與其它伺服器同步數據,在多個域控制器之間交換數據,因此它會加一些額外功能,它不僅僅是 LDAP.
建議你使用 apache 網站上的 LDAP Schema editor 這個 eclipse 插件來試驗一下修改密碼是否成功,畢竟它的客戶端功能更強大,考慮得更全面,如果它不能修改密碼,那就可能是有些局限性了,畢竟 AD 在 LDAP 上應該是添加了不少額外功能,甚至有些鎖定的區域.
㈦ ldap是怎樣實現許可權控制的
JIRA與LDAP集成的工作機制是這樣的: 1. 用戶信息依舊需要在JIRA中進行管理 2. 只有密碼驗證在LDAP中完成 3. 在LDAP中不存在的用戶依舊可以通過JIRA本身的密碼驗證機制(OSUser)來進行身份校驗 4. 並非全部的LDAP用戶都具有JIRA訪問許可權 配置JIRA...