如何使用Choerodon LDAP以及配置定時任務

做者:李楷文mysql

Choerodon做爲多雲管理平臺,能夠經過LDAP的方式對接企業已有的應用,經過同步用戶到Choerodon平臺,使企業用戶無需註冊就可以使用LDAP的帳戶和密碼登陸到Choerodon平臺,實現 DevOps 開發運維一體化和敏捷管理的等目標,極大地下降了企業用戶遷移負擔。git

本文將從LDAP的概念,如何使用Choerodon LDAP以及配置定時任務三個方面進行介紹。github

什麼是LDAP

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目錄使用有層次的、樹形結構存儲數據,具備優異的查詢,瀏覽和搜索性能,但寫入性能差,沒有事務處理和回滾等功能,不適合頻繁修改數據。一般用於存儲公司員工信息,用戶使用同一個帳戶和密碼就能夠登陸到多個不一樣的服務,也能夠存儲公用證書和安全密鑰,公司物理設備信息等。安全

基本概念

Directory Servers

目錄服務器是一種存儲樹形條目信息的網絡數據庫,與關係型數據庫存儲行和列的關係信息不一樣,能夠被認爲一種NoSQL數據庫。bash

Entries

LDAP entry(LDAP條目)是有關實體的信息集合,每一個條目由下面三部分組成:DN,屬性集合(attributes)和對象類集合(object class)。服務器

DNs and RDNs

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

Attributes用於保存條目的數據。一個條目能夠有多個attribute,每個attribute都有一個attribute type (屬性類型),零個或多個attribute options(屬性選項)以及一組包含實際數據的值。

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

屬性選項不經常使用,可是能夠提供一些元數據,如對該屬性的值進行多語言處理。

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

Object Classes

對象類標記條目的類型,每一個條目有一個結構對象類,指明條目所表明的對象類型(person/group/device等),還有零個或多個輔助對象類,提供其餘特徵。

Object Identifiers (OIDs)

對象標識符,用於惟一標識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,那麼服務器就是支持分頁查詢的。

其餘術語

  • base DN: 基準DN,一般指一個屬性結構的頂部,以下的樹形結構的base DN就是dc=gp,dc=gl,dc=google,dc=com

  • DIT: directory information tree
  • entryUUID: 包含DIT條目的通用惟一ID(UUID)的屬性。
  • LDIF: LDAP數據交換格式。IETF術語,用於加載(導入)和保存(導出)條目到LDAP啓用目錄的文本格式。用於數據的導入導出,每行都是「屬性: 值」對,見openldap ldif格式示例(uee.me/aVvkE)
  • dc: domain component,一般指域名的每一個組件,如www.baidu.com能夠被寫成dc=www,dc=baidu,dc=com
  • cn: common name,被普遍用做命名某些「東西」或真實世界實體的屬性。
  • ou: organizational unit name,代表用戶所屬的組織單元,屬於多個組織使用逗號隔開。
  • l: locality name,局部名,地方名
  • st: state or province name,州或者省份名稱
  • o: organizational name,組織名
  • c: country name,國家名
  • street: street name,街道名
  • uid: user id,用戶id

Choerodon LDAP使用

詳情可閱讀《Choerodon LDAP文檔》

這裏作一些補充說明。

Choerodon的LDAP在組織層級,即每一個組織都有各自的LDAP配置,配置好LDAP後便可同步到當前組織下,用戶登陸的時候根據登陸名查詢對應的組織,而後找到對應的LDAP server去認證,認證經過則登陸成功,不然則登陸失敗。

若是組織下的LDAP已經被停用,則該組織下的全部LDAP用戶都不能登陸。

Choerodon只支持能夠分頁查詢的LDAP server。

  • 2: 主機名,即ldap server的地址,必須以ldap://或者ldaps://開頭。
  • 4: 這個值是每次分頁查詢用戶的數量以及發送saga事件的用戶數量。
  • 5: 查詢和鏈接LDAP server的超時時間,單位爲秒。

注意: 管理員登陸帳戶和密碼,要有在base DN上的登陸權限,不然測試鏈接會報登陸失敗。

  • 1: 用戶對象類,通常設置爲person,用於檢索符合這個類型的條目。支持輸入多個object class,使用逗號分隔。
  • 2: 讀取entry的該屬性設置到iam_user表的login_name字段,做爲登陸名。
  • 6: uuid,LDAP對象的惟一標識,大多數是entryUUID屬性,Microsoft Active Directory多是objectGUID屬性,若是您的的ldap服務器確實不支持uuid,使用能惟一標識對象的字段便可,好比uid或者entryDN。記錄部分用戶同步失敗的uuid,方便到LDAP server查詢。
  • 7: 額外的過濾條件用於同步用戶,容許爲空,表達式必須以「(」開始,以「)」結束,語法參考ldap search syntax(uee.me/aVvmj)。

注意: 測試鏈接裏的屬性匹配,抓取了base DN下的100個知足已經設置的用戶對象類和自定義篩選條件的條目,而後去校驗設置好的loginName,email等 屬性是否存在,若是不存在該屬性名就返回不匹配。

Choerodon LDAP定時任務配置

Choerodon 支持配置LDAP同步用戶和禁用用戶定時任務,定時任務配置文檔。

組織層設置同步定時任務

首先進入組織層的任務明細界面

而後在當前界面點擊建立任務按鈕

任務支持簡單任務和cron表達式任務,這裏以簡單任務做實例,天天同步一次,執行30次。

超時策略:

  • 阻塞: 下次觸發時間若上次觸發任務未完成,則暫停定時任務,任務再也不被執行。
  • 串行: 下次觸發時間若上次觸發任務未完成,兩次任務可按照觸發時間依次被執行。
  • 並行: 下次觸發時間若上次觸發任務未完成,兩次任務能夠同時被執行。

點擊下一步選擇iam-service,Choerodon有兩個內置的定時任務,同步定時任務和禁用用戶定時任務。禁用用戶定時須要設置filterStr,用來篩選須要禁用的用戶。這個篩選表達式必須以'('開始,以')'結束,語法參考ldap search syntax。

點擊下一步選擇通知對象,以後點下一步確認信息後建立便可。

全局層設置同步定時任務

首先使用具備site層權限的帳戶登陸,而後按以下順序點擊菜單,進入任務明細界面。

而後在當前界面點擊建立任務按鈕,這裏和組織層的操做一致。

在配置執行程序時,Choerodon內置了兩個默認的LDAP相關的全局層任務。其中同步用戶須要設置組織code參數,代表同步該組織下的用戶,過濾停用用戶須要設置組織code和篩選停用用戶的條件。以後選擇下一步和須要通知的對象確認便可。

關於Choerodon豬齒魚

Choerodon豬齒魚開源多雲技術平臺,是基於開源技術Kubernetes,Istio,knative,Gitlab,Spring Cloud來實現本地和雲端環境的集成,實現企業多雲/混合雲應用環境的一致性。平臺經過提供精益敏捷、持續交付、容器環境、微服務、DevOps等能力來幫助組織團隊來完成軟件的生命週期管理,從而更快、更頻繁地交付更穩定的軟件。

你們也能夠經過如下社區途徑瞭解豬齒魚的最新動態、產品特性,以及參與社區貢獻:

相關文章
相關標籤/搜索