Elasticsearch的LDAP統(tǒng)一認(rèn)證服務(wù)集成

      網(wǎng)友投稿 1049 2025-04-02

      ldap(Light Directory Access Portocol)是基于X.500標(biāo)準(zhǔn)的輕量級(jí)目錄訪問協(xié)議。ldap協(xié)議使用了一種樹狀的數(shù)據(jù)形式,可以很方便的定義一個(gè)組織或者公司內(nèi)的用戶結(jié)構(gòu)?;陂_放的LDAP協(xié)議的LDAP服務(wù)(如Microsoft的Active Directory)可以提供用戶身份驗(yàn)證的能力。由于LDAP的開放性,它的使用非常廣泛。而elasticsearch服務(wù),通過使用Opendistro的security插件,可以加入Active Directory作為身份驗(yàn)證后端,無縫接入到已有的LDAP服務(wù)中。本文會(huì)講解elasticsearch接入LDAP認(rèn)證的基本方式,并會(huì)講解基本原理。

      一、 security插件基礎(chǔ)

      Opendistro的security插件實(shí)現(xiàn)了ES的安全功能,包含用戶的認(rèn)證的鑒權(quán)。它包含了六個(gè)配置文件:

      config.yml

      負(fù)責(zé)配置額外后端的認(rèn)證(與內(nèi)部認(rèn)證相對(duì)應(yīng))和授權(quán),如LDAP(下文會(huì)詳述)、Kerberos、JWT等。

      Elasticsearch的LDAP統(tǒng)一認(rèn)證服務(wù)集成

      internal_users.yml

      負(fù)責(zé)配置內(nèi)部認(rèn)證的用戶和對(duì)應(yīng)的密碼.

      roles.yml

      負(fù)責(zé)配置角色和其對(duì)應(yīng)的操作權(quán)限。

      roles_mapping.yml

      負(fù)責(zé)配置角色、用戶和后端角色的映射關(guān)系。

      action_groups.yml

      負(fù)責(zé)配置各種不同的操作,包括集群級(jí)和索引級(jí)操作。

      tenants.yml

      負(fù)責(zé)配置租戶信息。

      這其中,除了config.yml這個(gè)核心的認(rèn)證授權(quán)配置,其他配置都可以通過REST API或者Kibana頁面的方式修改。想要修改config.yml,必須通過插件提供的securityadmin.sh腳本來實(shí)現(xiàn):

      # 將config.yml配置文件寫入索引并生效 securityadmin.sh -h {{ip}} -p 9300 -f ./config.yml -icl -nhnv -cacert root-ca.pem -cert kirk.all.pem -key kirk.all.pem -t config

      這個(gè)腳本會(huì)將相應(yīng)的配置存在ES的特殊索引中,以實(shí)現(xiàn)節(jié)點(diǎn)間的共享。

      也可以通過腳本來導(dǎo)出當(dāng)前的配置情況:

      # 將當(dāng)前生效的六個(gè)配置文件導(dǎo)出到temp路徑下 securityadmin.sh -r -h {{ip}} -p 9300 -cd ./temp -icl -nhnv -cacert root-ca.pem -cert kirk.all.pem -key kirk.all.pem

      二、LDAP集成

      首先打開華為云控制臺(tái)創(chuàng)建一個(gè)Windows Server的ECS(Windows Server自帶支持LDAP協(xié)議的Active Directory服務(wù)),并且創(chuàng)建一個(gè)云搜索服務(wù)CSS,這里選擇7.1.1版本,并開啟安全模式(安全模式自帶Opendistro security插件)。登錄ECS開啟Active Directory服務(wù),新建域,本例為test.ldap.com。新建以下管理員、用戶和用戶組:

      然后,修改config.yml:

      # 省略 authc: # 省略 ldap: description: "Authenticate via LDAP or Active Directory" http_enabled: true transport_enabled: true order: 5 http_authenticator: type: "basic" challenge: false authentication_backend: type: "ldap" config: enable_ssl: false enable_start_tls: false enable_ssl_client_auth: false verify_hostnames: true hosts: - "10.0.0.115:389" bind_dn: "CN=adminAD,DC=test,DC=ldap,DC=com" password: "" userbase: "OU=ITDepartment,DC=test,DC=ldap,DC=com" usersearch: "(sAMAccountName={0})" username_attribute: "uid" authz: roles_from_myldap: description: "Authorize via LDAP or Active Directory" http_enabled: true transport_enabled: true authorization_backend: type: "ldap" config: enable_ssl: false enable_start_tls: false enable_ssl_client_auth: false verify_hostnames: true hosts: - "10.0.0.115:389" bind_dn: "CN=adminAD,DC=test,DC=ldap,DC=com" password: "" rolebase: "OU=groups,DC=test,DC=ldap,DC=com" rolesearch: "(member={0})" userroleattribute: null userrolename: "disabled" rolename: "CN" resolve_nested_roles: true userbase: "OU=ITDepartment,DC=test,DC=ldap,DC=com" usersearch: "(uid={0})" roles_from_another_ldap: description: "Authorize via another Active Directory" http_enabled: false transport_enabled: false authorization_backend: type: "ldap"

      配置文件主要分為兩個(gè)部分authc和authz,其中authc(authentication, 認(rèn)證)主要起到驗(yàn)證用戶是否是其宣稱的人(驗(yàn)證密碼),authz(authorization,授權(quán))主要起到判斷當(dāng)前用戶是否具有相應(yīng)權(quán)限的作用。

      需要修改的為以下四項(xiàng):hosts、bind_dn、password、userbase

      hosts為Active Directory服務(wù)的地址,端口為389

      bind_dn相當(dāng)于LDAP的用戶名(Distinguished Name),以下為X.500目錄協(xié)議(包含LDAP)的相關(guān)定義:

      CN = Common Name

      OU = Organizational Unit

      DC = Domain Component

      必須按順序一一對(duì)應(yīng),否則無法認(rèn)證。

      userbase為es連接上Active Directory之后獲取用戶所屬的DN,本例中就會(huì)同步所有ITDepartment目錄下的用戶

      authz中沒有了userbase,變成了rolebase,獲取的對(duì)應(yīng)DN下的組,這個(gè)組會(huì)與es中的role一一對(duì)應(yīng),如下:

      一個(gè)用戶通過認(rèn)證后通過AD查詢到所屬的group,再一一對(duì)應(yīng)es中的role,role則又對(duì)應(yīng)了action groups(如create、search等)

      使用特性或者腳本將修改后的config.yml生效后,進(jìn)入kibana修改roles和role_mapping:

      接下來進(jìn)行驗(yàn)證,

      使用userGoogleInAD用戶創(chuàng)建google索引,創(chuàng)建失?。?/p>

      使用admin用戶創(chuàng)建,創(chuàng)建成功:

      使用userGoogleInAD用戶對(duì)google索引進(jìn)行查詢,查詢成功:

      使用userTwitterInAD對(duì)google索引進(jìn)行查找,查找失敗:

      注意到,如果用戶名密碼錯(cuò)誤(不滿足認(rèn)證)的話,返回與不滿足授權(quán)不同:

      Elasticsearch 云搜索服務(wù) CSS

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:在AI Studio上部署外部可以直接調(diào)用的云端服務(wù)
      下一篇:excel柱形圖做數(shù)據(jù)差的教程
      相關(guān)文章
      亚洲乱亚洲乱淫久久| 亚洲va无码va在线va天堂| 亚洲精品美女在线观看| 久久久久亚洲精品美女| 黑人精品videos亚洲人| 亚洲一区无码中文字幕| 久久久久亚洲精品天堂久久久久久 | 亚洲人成色777777老人头| 亚洲一区二区三区国产精品无码| 亚洲成A∨人片在线观看无码| 亚洲视频免费在线播放| 亚洲视频免费在线看| 亚洲剧情在线观看| 久久亚洲最大成人网4438| 亚洲中文字幕无码爆乳app| 亚洲日韩国产一区二区三区在线| 亚洲日本VA午夜在线电影| 亚洲精品第一国产综合亚AV| 亚洲av片在线观看| 成人亚洲综合天堂| 久久精品国产精品亚洲| 亚洲色无码一区二区三区| 亚洲VA中文字幕无码一二三区| 亚洲国产AV无码专区亚洲AV| 亚洲国产国产综合一区首页| 亚洲综合视频在线观看| 91丁香亚洲综合社区| 亚洲国产午夜精品理论片在线播放| 亚洲AV无码一区二区三区网址| 婷婷亚洲综合五月天小说在线| 亚洲情侣偷拍精品| 亚洲国产精品无码久久一区二区| 亚洲精品综合一二三区在线| 亚洲a级在线观看| 亚洲精品色播一区二区| 亚洲AⅤ优女AV综合久久久| 最新亚洲成av人免费看| 婷婷亚洲综合五月天小说| 亚洲欧洲日产国码www| 亚洲色偷偷偷综合网| 亚洲国产精品视频|