Choerodon LDAP 簡介

Choerodon 豬齒魚是開源多云應用平臺挂捻,是基于 Kubernetes 的容器編排和管理能力碉纺,整合 DevOps 工具鏈、微服務和移動應用框架刻撒,來幫助企業(yè)實現(xiàn)敏捷化的應用交付和自動化的運營管理骨田,并提供 IoT、支付声怔、數(shù)據(jù)态贤、智能洞察、企業(yè)應用市場等業(yè)務組件醋火,來幫助企業(yè)聚焦于業(yè)務抵卫,加速數(shù)字化轉(zhuǎn)型。

Choerodon 可以通過配置LDAP的方式對接已有的用戶胎撇,使用LDAP的賬號和密碼即可登錄到Choerodon平臺。

LDAP用戶認證流程

什么是LDAP

LDAP是輕量級目錄訪問協(xié)議(Lightweight Directory Access Protocol)的縮寫殖氏,是一個開放的晚树,中立的,工業(yè)標準的應用協(xié)議雅采,用于與目錄服務進行交互爵憎。LDAP有許多種實現(xiàn),比如Open LDAP和微軟的Active Directory等婚瓜,類似于關(guān)系型數(shù)據(jù)庫的多種不同的實現(xiàn)宝鼓,如oracle和mysql等。

LDAP基于TCP/IP協(xié)議巴刻,使用Client/Server架構(gòu)愚铡,允許客戶端在目錄服務器中執(zhí)行各種操作,包括存儲和檢索數(shù)據(jù)胡陪,搜索與給定標準集匹配的數(shù)據(jù)沥寥,對客戶端進行身份驗證等。LDAP的標準TCP端口對于未加密的通信是389柠座,對于通過TLS加密的通道的LDAP是636邑雅,這里可以類比HTTP協(xié)議默認端口為80,HTTPS協(xié)議默認端口為443妈经。

LDAP目錄使用有層次的淮野、樹形結(jié)構(gòu)存儲數(shù)據(jù)捧书,具有優(yōu)異的查詢,瀏覽和搜索性能骤星,但寫入性能差经瓷,沒有事務處理和回滾等功能,不適合頻繁修改數(shù)據(jù)妈踊。通常用于存儲公司員工信息了嚎,用戶使用同一個賬戶和密碼就可以登錄到多個不同的服務,也可以存儲公用證書和安全密鑰廊营,公司物理設(shè)備信息等歪泳。

基本概念

Directory Servers

目錄服務器是一種存儲樹形條目信息的網(wǎng)絡(luò)數(shù)據(jù)庫,與關(guān)系型數(shù)據(jù)庫存儲行和列的關(guān)系信息不同露筒,可以被認為一種NoSQL數(shù)據(jù)庫呐伞。

Entries

LDAP entry(LDAP條目)是有關(guān)實體的信息集合,每個條目由下面三部分組成:DN慎式,屬性集合(attributes)和對象類集合(object class)伶氢。

DNs and RDNs

DN是distinguished name的縮寫,是entry的唯一標識瘪吏,同時記錄了entry所在的目錄樹層級位癣防,類似于文件系統(tǒng)的上下文路徑。

一個DN由零個或多個相對可分辨的名稱或者RDN組成掌眠。每個RDN由一個或者多個屬性-值組成(通常是一個)蕾盯。例如uid=superlee,dc=choerodon,dc=io這個DN,由3個RDN組成蓝丙,RDN的順序指定了DIT(directory information tree)中相關(guān)條目的位置级遭,從左到右以降序表示層級結(jié)構(gòu),即父目錄在偏右側(cè)渺尘,上述DN的父目錄的DN為ou=choerodon,ou=io挫鸽,uid是RDN的屬性,superlee是RDN的值鸥跟。

Root DSE是一個長度為0的字符串DN的特殊條目丢郊,每一個LDAP server 必須要有一個這樣公開的特殊條目。

Attributes

Attributes用于保存條目的數(shù)據(jù)锌雀。一個條目可以有多個attribute蚂夕,每一個attribute都有一個attribute type (屬性類型),零個或多個attribute options(屬性選項)以及一組包含實際數(shù)據(jù)的值腋逆。

屬性類型指定LDAP client和server應該如何處理該屬性婿牍,必須包含對象標識符(OID)和零個或多個名稱。

屬性選項不常用惩歉,但是可以提供一些元數(shù)據(jù)等脂,如對該屬性的值進行多語言處理俏蛮。

如圖所示,該entry包含了多個attribute

attributes

Object Classes

對象類標記條目的類型上遥,每個條目有一個結(jié)構(gòu)對象類搏屑,指明條目所代表的對象類型(person/group/device等),還有零個或多個輔助對象類粉楚,提供其他特征辣恋。

Object Identifiers (OIDs)

對象標識符,用于唯一標識LDAP協(xié)議中的各種元素模软,OID由一系列由句點分隔的數(shù)字組成(例如伟骨,“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携狭,那么服務器就是支持分頁查詢的。

其他術(shù)語

  • base DN: 基準DN回俐,通常指一個屬性結(jié)構(gòu)的頂部逛腿,如下的樹形結(jié)構(gòu)的base DN就是dc=gp,dc=gl,dc=google,dc=com
DN
  • DIT: directory information tree
  • entryUUID: 包含DIT條目的通用唯一ID(UUID)的屬性。
  • LDIF: LDAP數(shù)據(jù)交換格式仅颇。IETF術(shù)語单默,用于加載(導入)和保存(導出)條目到LDAP啟用目錄的文本格式。用于數(shù)據(jù)的導入導出忘瓦,每行都是“屬性: 值”對雕凹,見openldap ldif格式示例
  • dc: domain component冀宴,通常指域名的每個組件紊服,如www.baidu.com可以被寫成dc=www,dc=baidu,dc=com
  • cn: commonName枕荞,被廣泛用作命名某些“東西”或真實世界實體的屬性。
  • ou: organizational unit name明场,表明用戶所屬的組織單元,屬于多個組織使用逗號隔開李丰。
  • l: locality name苦锨,局部名,地方名
  • st: state or province name趴泌,州或者省份名稱
  • o: organizational name
  • c: country name
  • street: street name
  • uid: user id

Choerodon LDAP使用

Choerodon LDAP文檔

這里做一些補充說明舟舒。

Choerodon的LDAP在組織層級,即每個組織都有各自的LDAP配置嗜憔,配置好LDAP后即可同步到當前組織下秃励,用戶登錄的時候根據(jù)登錄名查詢對應的組織,然后找到對應的LDAP server去認證吉捶,認證通過則登錄成功夺鲜,否則則登錄失敗皆尔。

如果組織下的LDAP已經(jīng)被停用,則該組織下的所有LDAP用戶都不能登錄币励。

Choerodon只支持可以分頁查詢的LDAP server慷蠕。

server setting
  • 2: 主機名,即ldap server的地址食呻,需要以ldap://或者ldaps://開頭流炕。

  • 4: 這個值是每次分頁查詢用戶的數(shù)量以及發(fā)送saga事件的用戶數(shù)量。

  • 5: 查詢和連接LDAP server的超時時間仅胞,單位為秒每辟。

注意:
管理員登錄賬戶和密碼,要有在base DN上的登錄權(quán)限饼问,否則測試連接會報登錄失敗影兽。

user setting
  • 1: 用戶對象類,一般設(shè)置為person莱革,用于檢索符合這個類型的條目峻堰。支持輸入多個object class,使用逗號分隔盅视。
  • 2: 讀取entry的該屬性設(shè)置到iam_user表的login_name字段捐名,作為登錄名。
  • 6: uuid闹击,LDAP對象的唯一標識镶蹋,大多數(shù)是'entryUUID'屬性,Microsoft Active Directory可能是'objectGUID'屬性赏半,如果您的的ldap服務器確實不支持uuid贺归,使用能唯一標識對象的字段即可,比如'uid'或者'entryDN'断箫。記錄部分用戶同步失敗的uuid拂酣,方便到LDAP server查詢。
  • 7: 額外的過濾條件用于同步用戶仲义,允許為空婶熬,表達式必須以'('開始,以')'結(jié)束埃撵,語法參考ldap search syntax赵颅。

注意:
測試連接里的屬性匹配,抓取了base DN下的100個滿足已經(jīng)設(shè)置的用戶對象類和自定義篩選條件的條目暂刘,然后去校驗設(shè)置好的loginName,email等
屬性是否存在饺谬,如果不存在該屬性名就返回不匹配。

success
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谣拣,一起剝皮案震驚了整個濱河市商蕴,隨后出現(xiàn)的幾起案子叠萍,更是在濱河造成了極大的恐慌,老刑警劉巖绪商,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苛谷,死亡現(xiàn)場離奇詭異,居然都是意外死亡格郁,警方通過查閱死者的電腦和手機腹殿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來例书,“玉大人锣尉,你說我怎么就攤上這事【霾桑” “怎么了自沧?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長树瞭。 經(jīng)常有香客問我拇厢,道長,這世上最難降的妖魔是什么晒喷? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任孝偎,我火速辦了婚禮,結(jié)果婚禮上凉敲,老公的妹妹穿的比我還像新娘衣盾。我一直安慰自己,他們只是感情好爷抓,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布势决。 她就那樣靜靜地躺著,像睡著了一般蓝撇。 火紅的嫁衣襯著肌膚如雪徽龟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天唉地,我揣著相機與錄音,去河邊找鬼传透。 笑死耘沼,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的朱盐。 我是一名探鬼主播群嗤,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼兵琳!你這毒婦竟也來了狂秘?” 一聲冷哼從身側(cè)響起骇径,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎者春,沒想到半個月后破衔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡钱烟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年晰筛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拴袭。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡读第,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拥刻,到底是詐尸還是另有隱情怜瞒,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布般哼,位于F島的核電站吴汪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逝她。R本人自食惡果不足惜浇坐,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望黔宛。 院中可真熱鬧近刘,春花似錦、人聲如沸臀晃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徽惋。三九已至案淋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間险绘,已是汗流浹背踢京。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宦棺,地道東北人瓣距。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像代咸,于是被迫代替她去往敵國和親蹈丸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容