做者:李楷文mysql
Choerodon做爲多雲管理平臺,能夠經過LDAP的方式對接企業已有的應用,經過同步用戶到Choerodon平臺,使企業用戶無需註冊就可以使用LDAP的帳戶和密碼登陸到Choerodon平臺,實現 DevOps 開發運維一體化和敏捷管理的等目標,極大地下降了企業用戶遷移負擔。git
本文將從LDAP的概念,如何使用Choerodon LDAP以及配置定時任務三個方面進行介紹。github
LDAP是輕量級目錄訪問協議(Lightweight Directory Access Protocol)的縮寫,是一個開放的,中立的,工業標準的應用協議,用於與目錄服務進行交互。LDAP有許多種實現,好比Open LDAP和微軟的Active Directory等,相似於關係型數據庫的多種不一樣的實現,如oracle和mysql等。sql
LDAP基於TCP/IP協議,使用Client/Server架構,容許客戶端在目錄服務器中執行各類操做,包括存儲和檢索數據,搜索與給定標準集匹配的數據,對客戶端進行身份驗證等。LDAP的標準TCP端口對於未加密的通訊是389,對於經過TLS加密的通道的LDAP是636,這裏能夠類比HTTP協議默認端口爲80,HTTPS協議默認端口爲443。數據庫
LDAP目錄使用有層次的、樹形結構存儲數據,具備優異的查詢,瀏覽和搜索性能,但寫入性能差,沒有事務處理和回滾等功能,不適合頻繁修改數據。一般用於存儲公司員工信息,用戶使用同一個帳戶和密碼就能夠登陸到多個不一樣的服務,也能夠存儲公用證書和安全密鑰,公司物理設備信息等。安全
目錄服務器是一種存儲樹形條目信息的網絡數據庫,與關係型數據庫存儲行和列的關係信息不一樣,能夠被認爲一種NoSQL數據庫。bash
LDAP entry(LDAP條目)是有關實體的信息集合,每一個條目由下面三部分組成:DN,屬性集合(attributes)和對象類集合(object class)。服務器
DN是distinguished name的縮寫,是entry的惟一標識,同時記錄了entry所在的目錄樹層級位,相似於文件系統的上下文路徑。微信
一個DN由零個或多個相對可分辨的名稱或者RDN組成。每一個RDN由一個或者多個屬性-值組成(一般是一個)。例如uid=superlee,dc=choerodon,dc=io這個DN,由3個RDN組成,RDN的順序指定了DIT(directory information tree)中相關條目的位置,從左到右以降序表示層級結構,即父目錄在偏右側,上述DN的父目錄的DN爲ou=choerodon,ou=io,uid是RDN的屬性,superlee是RDN的值。網絡
Root DSE是一個長度爲0的字符串DN的特殊條目,每個LDAP server 必需要有一個這樣公開的特殊條目。
Attributes用於保存條目的數據。一個條目能夠有多個attribute,每個attribute都有一個attribute type (屬性類型),零個或多個attribute options(屬性選項)以及一組包含實際數據的值。
屬性類型指定LDAP client和server應該如何處理該屬性,必須包含對象標識符(OID)和零個或多個名稱。
屬性選項不經常使用,可是能夠提供一些元數據,如對該屬性的值進行多語言處理。
如圖所示,該entry包含了多個attribute。
對象類標記條目的類型,每一個條目有一個結構對象類,指明條目所表明的對象類型(person/group/device等),還有零個或多個輔助對象類,提供其餘特徵。
對象標識符,用於惟一標識LDAP協議中的各類元素,OID由一系列由句點分隔的數字組成(例如,「1.2.840.113556.1.4.473」是表示服務器端排序請求控件的OID)。
可使用ldapsearch命令查詢LDAP server是否支持分頁查詢。
ldapsearch -H ldap://ldap.server.address:389 -x -D "uid=superlee,dc=choerodon,dc=io" -W -b "" -s base -a always "(objectClass=*) 複製代碼
若是返回值裏包含1.2.840.113556.1.4.473,那麼服務器就是支持分頁查詢的。
詳情可閱讀《Choerodon LDAP文檔》
這裏作一些補充說明。
Choerodon的LDAP在組織層級,即每一個組織都有各自的LDAP配置,配置好LDAP後便可同步到當前組織下,用戶登陸的時候根據登陸名查詢對應的組織,而後找到對應的LDAP server去認證,認證經過則登陸成功,不然則登陸失敗。
若是組織下的LDAP已經被停用,則該組織下的全部LDAP用戶都不能登陸。
Choerodon只支持能夠分頁查詢的LDAP server。
注意: 管理員登陸帳戶和密碼,要有在base DN上的登陸權限,不然測試鏈接會報登陸失敗。
注意: 測試鏈接裏的屬性匹配,抓取了base DN下的100個知足已經設置的用戶對象類和自定義篩選條件的條目,而後去校驗設置好的loginName,email等 屬性是否存在,若是不存在該屬性名就返回不匹配。
Choerodon 支持配置LDAP同步用戶和禁用用戶定時任務,定時任務配置文檔。
首先進入組織層的任務明細界面
而後在當前界面點擊建立任務按鈕
任務支持簡單任務和cron表達式任務,這裏以簡單任務做實例,天天同步一次,執行30次。
超時策略:
點擊下一步選擇iam-service,Choerodon有兩個內置的定時任務,同步定時任務和禁用用戶定時任務。禁用用戶定時須要設置filterStr,用來篩選須要禁用的用戶。這個篩選表達式必須以'('開始,以')'結束,語法參考ldap search syntax。
點擊下一步選擇通知對象,以後點下一步確認信息後建立便可。
首先使用具備site層權限的帳戶登陸,而後按以下順序點擊菜單,進入任務明細界面。
而後在當前界面點擊建立任務按鈕,這裏和組織層的操做一致。
在配置執行程序時,Choerodon內置了兩個默認的LDAP相關的全局層任務。其中同步用戶須要設置組織code參數,代表同步該組織下的用戶,過濾停用用戶須要設置組織code和篩選停用用戶的條件。以後選擇下一步和須要通知的對象確認便可。
Choerodon豬齒魚開源多雲技術平臺,是基於開源技術Kubernetes,Istio,knative,Gitlab,Spring Cloud來實現本地和雲端環境的集成,實現企業多雲/混合雲應用環境的一致性。平臺經過提供精益敏捷、持續交付、容器環境、微服務、DevOps等能力來幫助組織團隊來完成軟件的生命週期管理,從而更快、更頻繁地交付更穩定的軟件。
你們也能夠經過如下社區途徑瞭解豬齒魚的最新動態、產品特性,以及參與社區貢獻: